nihility_z 发表于 2019-8-12 15:51:39

世界未解之谜啊求助大佬

ax=000c,bx=000a
div bx
为啥会错乱啊
就是直接跳转到cs:f000,ip:1026
不应该是ax=0001,dx=0002吗
而且这是循环的第二遍
第一遍都是正常的
是王爽教材里的问题10
源代码在此
求大神解答啊~
dtoc:    push ax
         push bx
         push cx
         push si
         push di
         mov di,14
         mov si,0
   again:mov ax,
         mov bx,0010
      here:div bx
         add dx,30h
         mov ,dl
         mov cx,ax
         jcxz back
         mov ah,0
         inc di
         jmp here
         
      back:add si,2
         mov cx,
         loop again
         pop di
         pop si
         pop cx
         pop bx
         pop ax
         ret

啊啊啊啊脑子快要爆炸了想了一整天l。。。

人造人 发表于 2019-8-12 16:09:41

因为计算的不是 AX / BX
计算的是 DX:AX / BX

div指令是
32位 / 16位
16位 / 8位

nihility_z 发表于 2019-8-12 16:47:29

人造人 发表于 2019-8-12 16:09
因为计算的不是 AX / BX
计算的是 DX:AX / BX



啊哦哦哦哦哦,谢谢谢谢
页: [1]
查看完整版本: 世界未解之谜啊求助大佬