小甲鱼帮帮我,我用debug调试程序,执行的指令和我编译的不同
assume cs:codesgcodesg 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都是我在本机上用的,在手机上也试过,也能成功,但我在本机上就是成功不了,我因为这个重装过系统,但还是这样,这是怎么回事,求解答 我也在想是不是我CPU坏了,但我在虚拟机正常,又想过是不是系统问题,然后把系统给重装了,还是这样。也想过不是不程序问题,但是我用相同的程序,在虚拟机上运成功,在手机上成功,就是在我本机win10上调试时出现这样的问题,这是怎么回事? 给你的程序添加堆栈段
sp不应该为2
人造人 发表于 2017-1-23 20:23
给你的程序添加堆栈段
sp不应该为2
将2改成正确的入口地址,执行正确了,为什么sp的值总是会变成2?搞不懂 clhjswe 发表于 2017-1-23 21:43
将2改成正确的入口地址,执行正确了,为什么sp的值总是会变成2?搞不懂
也许是DOSBox的问题吧
xp下debug没有这样的问题 人造人 发表于 2017-1-23 22:14
也许是DOSBox的问题吧
xp下debug没有这样的问题
还真是dosbox的问题,受不了,Thankssssssssssssssssssssssssssssssssssssssssssss 不是很懂汇编,帮楼主顶一个
页:
[1]