2013-07-22 6 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

Смежные вопросы