0
32ビットの乗算をしようとしています。私はその問題を理解できません。答えが計算機と一致しません32ビット乗算アセンブリiApx88
[org 0x0100]
mov cx,0
mov cx,32
mov dx,[multiplier]
mov bx,[multiplier+2]
check_bit:
shr bx,1
rcr dx,1
jnc skip
mov ax,[multiplicand+6]
add [result+6],ax
mov ax,[multiplicand+4]
adc [result+4],ax
mov ax,[multiplicand+2]
adc [result+2],ax
mov ax,[multiplicand]
adc [result],ax
skip:
shl word[multiplicand+6],1
rcl word[multiplicand+4],1
rcl word[multiplicand+2],1
rcl word[multiplicand],1
dec cl
jnz check_bit
mov ax,0x4c00
int 0x21
multiplicand: dd 0x00000000 , 0x98765432
multiplier: dd 0x12345678
result: dd 0 , 0
_一致しない_は良い問題の説明ではありません。あなたの入力と予想される実際の出力は何ですか?また、デバッガを使用し、特に他の人に手助けをしたい場合はコードをコメントする方法を学んでください。 PS: 'MUL'命令を避ける理由は何ですか? – Jester
[編集]を使ってこれを[mcve] –