私のプログラムで少し問題があります。私のプログラムは、繰り返し加算を使用して、2 つの 1 バイト整数を乗算することになっています。
BITS 16 ;Set code generation to 16 bit mode
ORG 0x0100 ;Set code start address to 0100h
SEGMENT .text ;Main code segment
Main:
mov CX,[num2]
mov AX,00
Sum:
add AX,[num1]
dec CX
cmp CX,0
je Terminate
jmp Sum
Terminate:
mov DL,AL
mov AX,4C00H
int 21H
SEGMENT .data ;Initialised data segment
num1 db 4
num2 db 3
問題は、コードをデバッグすると、初期値 (num2) が CX に正常に入力されますが、num1 が AX に入力されると、num2 からのデータが残っていることです。
例えば。デバッグ
画像からわかるように、CX に入れられた値 (3) は正常に機能しますが、AX に 4 を入れる代わりに 304 を入れています。
事前にご協力いただきありがとうございます。