2013-07-22 29 views
0

emu8086不會在我的第二個org指令中放置代碼。如果這是一個與emu8086怪癖或是我的彙編錯誤。鏈接是帶有代碼的emu8086的屏幕截圖。emu8086多個org指令

謝謝。

http://postimg.org/image/kcgu5ndw5/

#make_bin# 

#LOAD_SEGMENT=0F000h# 
#LOAD_OFFSET=0000h# 

#CS=0F000h# 
#IP=00000h# 

#DS=04567h# 
#ES=00000h# 

#SS=04567h# 
#SP=01110h# 

#AX=0000h# 
#BX=0000h# 
#CX=0000h# 
#DX=0000h# 
#SI=0000h# 
#DI=0000h# 
#BP=0000h# 

org 0f000h 

mov ax,01211h ;0150-[11,12,13,ab,cb,22,34,16,33] 
mov [0150h],ax 

mov ax,013ABh 
mov [0152h],ax 

mov ax,022CBh 
mov [0154h],ax 

mov ax,01634h 
mov [0156h],ax 


mov al,33h 
mov [0158h],al    

jmp 0f100h 


org 0f100h 

mov ax, 0abh  
add ax, 0abh ;156h 
pop bx   ;?? 
mov bx, ax  ;156h 
mov cx, [bx] ;1634h 
push cx   ; 
jmp cx   ;?? 
mov al, 10h  ;execution not determined 



HLT 

回答

0

彙編不加載的代碼。你必須這樣做。 「org」告訴彙編器你要加載代碼的位置。如果你有多個org指令,你告訴彙編器你要加載它多個部分。我想你想要什麼,而不是第二個組織是添加填充類似的東西:

rb 0f100h - $ 
+0

謝謝。我忘記了org只是幫助程序集進行地址計算,並且不會移動代碼。移動代碼通過填充或存儲體的物理位置完成。 – jeff

+0

我需要的行: 'label_1 db(0100h - (label_1 - start))DUP(0FFh)' – jeff