Par exemple, j'ai le nombre 6C0000h = 7077888dImprimer numéro double mot à base 10
En divisant chaque mot par dix, puis sauver le reste sur la pile ne fonctionne pas dans ce cas, parce que la partie inférieure de la le mot double est 0000.
Tous les conseils sont appréciés.
grâce
par exemple ..
;number = 6c0000h
mov ax,word ptr number
;after this mov ax is 0000
;dividing by ten will mean dx = 0 and ax = 0 and 0 is saved on the stack
mov cx,0
repeat:
mov dx,0
div ten ;ten = 10
inc cx
push dx
cmp ax,0
ja repeat
mov ax,word ptr number+2
;after this ax is 6Ch
;i think this part is alright
repeat2:
mov dx,0
div ten
inc cx
push dx
cmp ax,0
ja repeat2
display:
pop dx
add dl,'0'
mov ah,02h
int 21h
loop display
ce code affiche: 1080 et non 7077888 qui serait le résultat attendu
108 = 6Ch et la terminaison 0 est de 0000 div 10 REMARQUE: Je dois travailler avec des registres 16 bits
Les devoirs Je suppose! –