飞翔的石牌人 发表于 2016-12-17 23:31:47

关于实验 7 里面的一个很奇怪的问题

本帖最后由 飞翔的石牌人 于 2016-12-18 16:25 编辑

直接上图

问题的重点来了, bx 和 si 寄存器的值是一样的, 那么为什么用了 bx 做偏移以后程序运行起来后就好像卡死一样, 但是用了 si 就可以运行成功, 求大神赐教。

zealstar 发表于 2016-12-18 15:54:31

本帖最后由 zealstar 于 2016-12-18 15:57 编辑

放完整代码,只看部分看不出来问题。

而且你这里不论是用bx,还是si,你后面的代码都没变

add bx,4
add si,2

这里难道没有问题?

飞翔的石牌人 发表于 2016-12-18 16:26:49

zealstar 发表于 2016-12-18 15:54
放完整代码,只看部分看不出来问题。

而且你这里不论是用bx,还是si,你后面的代码都没变


add bx, 4
add si, 2这两句是在做一个地址偏移,这里没有问题

这段代码前面没有别的什么,你就可以认为在我提问的那个问题之前 bx 和 si 的值为 0

zealstar 发表于 2016-12-18 16:44:15

飞翔的石牌人 发表于 2016-12-18 16:26
add bx, 4
add si, 2这两句是在做一个地址偏移,这里没有问题



怎么会没有关系?
你下面跟着就是一个循环跳转loop s

那么请问,在ds:和dx:[si}对应的数据:
第一次进入时bx=0,si=0,都是ds:的对应值
但是经过一次loop之后,bx=4,si=2
那么,ds:和ds:对应的数值会一样?

所以我才要你放完整代码看你之前做了什么,在进行div 指令时,对应的数据是什么,是否会触发溢出。
页: [1]
查看完整版本: 关于实验 7 里面的一个很奇怪的问题