clhjswe 发表于 2017-1-23 19:37:59

小甲鱼帮帮我,我用debug调试程序,执行的指令和我编译的不同

assume cs:codesg
codesg segment
start:
        mov ax,1111h
        mov bx,2222h
        mov cx,3333h
        mov dx,4444h
        mov ax,0bbbbh
       
       
        mov ax,4c00h
        int 21h
codesg ends
end start

上面是代码

运行图片:

我在xp虚拟机上试过,用的编译器和debug都是我在本机上用的,在手机上也试过,也能成功,但我在本机上就是成功不了,我因为这个重装过系统,但还是这样,这是怎么回事,求解答

clhjswe 发表于 2017-1-23 19:42:53

我也在想是不是我CPU坏了,但我在虚拟机正常,又想过是不是系统问题,然后把系统给重装了,还是这样。也想过不是不程序问题,但是我用相同的程序,在虚拟机上运成功,在手机上成功,就是在我本机win10上调试时出现这样的问题,这是怎么回事?

人造人 发表于 2017-1-23 20:23:15

给你的程序添加堆栈段
sp不应该为2

clhjswe 发表于 2017-1-23 21:43:12

人造人 发表于 2017-1-23 20:23
给你的程序添加堆栈段
sp不应该为2

将2改成正确的入口地址,执行正确了,为什么sp的值总是会变成2?搞不懂

人造人 发表于 2017-1-23 22:14:50

clhjswe 发表于 2017-1-23 21:43
将2改成正确的入口地址,执行正确了,为什么sp的值总是会变成2?搞不懂

也许是DOSBox的问题吧
xp下debug没有这样的问题

clhjswe 发表于 2017-1-23 22:53:32

人造人 发表于 2017-1-23 22:14
也许是DOSBox的问题吧
xp下debug没有这样的问题

还真是dosbox的问题,受不了,Thankssssssssssssssssssssssssssssssssssssssssssss

jackche0214 发表于 2017-1-24 11:23:06

不是很懂汇编,帮楼主顶一个
页: [1]
查看完整版本: 小甲鱼帮帮我,我用debug调试程序,执行的指令和我编译的不同