J'essaie de faire une multiplication 32 bits. Je ne peux pas comprendre le problème. Réponse ne correspond pas avec la calculatriceAssemblage de multiplication 32 bits 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
_ne correspond pas à la description du problème. Quelle est votre contribution et la production attendue et réelle. En outre, apprenez à utiliser un débogueur et commentez votre code, surtout si vous voulez que les autres vous aident. PS: une raison particulière pour laquelle vous évitez l'instruction 'MUL'? – Jester
Utilisez [edit] pour faire ceci a [mcve] –