0

emu8086 は、2 番目の org ディレクティブにコードを配置しません。これが emu8086 の癖であるか、私のアセンブリが間違っている場合。問題のコードを含む emu8086 のスクリーン ショットへのリンクです。

ありがとうございました。

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
4

1 に答える 1

0

アセンブラはコードをロードしません。あなたはそれをしなければなりません。「org」は、コードをロードする場所をアセンブラに伝えます。複数の org ディレクティブがある場合は、それを複数の部分に分けてロードすることをアセンブラーに伝えています。2番目の組織の代わりに必要なのは、次のようなパディングを追加することだと思います:

rb  0f100h - $
于 2013-07-22T23:34:59.210 に答える