DOSBox上的8086汇编:带有idiv指令的Bug?
我帮助我的一个朋友调试他的程序,我们把它缩小到一个甚至在这里发生的问题:
.MODEL small.STACK 16.CODEstart: mov ax, 044c0h mov bl, 85 idiv blexit: mov ax, 4c00h int 21hend start
用tasm 4.1组装它,然后在DOSBox 0.74上运行它,它进入一个无限循环。当涡轮调试器检查它人们可以看到它之后发生idiv
的指令,这对于一些原因,修改cs
和ip
登记,并经过两次看似随意指令恢复它们指向idiv
线,再次执行它循环往复。
有没有人对此有任何解释?
Qyouu