1

このコードが私に間違ったo/pを与える理由を誰かが説明できますか

data segment
num1 db 35h
num2 db 39h
result db 00h
data ends
code segment
assume cs: code, ds: data
start:
            mov ax,data
            mov ds ,ax
            mov ax,0000h
            mov al,num1
            sub al,num2
            aas
            mov result,al
            int 03h
            code ends
end start 
end

出力:

-g

AX=FF06  BX=0000  CX=0024  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=146C  ES=145C  SS=146C  CS=146D  IP=0013   NV UP EI PL NZ AC PO CY
146D:0013 CC            INT     3
-d ds:0l10
146C:0000  35 39 06 00 00 00 00 00-00 00 00 00 00 00 00 00   59..............
-

AXはFF04になると思います。

私はそれを学び始めたばかりなので、可能であれば簡単な説明を使用してください。

4

1 に答える 1

3

アンパックされた BCD 06で結果-4を与えるアンパックされた命令を使用していますが、パックされたBCD を実行しており、正しい答え96を得るにはパックされたバリアントが必要です。aasdas

于 2013-02-25T16:21:45.087 に答える