汇编的问题好奇怪啊x86
;将a段中的前8个字逆序送到b中,下面是我的代码,执行到cx是三时候,add bx,2这条指令就报错退出了。我试了在其他机器上一样的问题,怎么回事?assume cs:code
a segment
dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends
b segment
dw 0,0,0,0,0,0,0,0
b ends
code segment
main:
mov ax,a
mov ds,ax ;data
mov ax,b
mov ss,ax ;stack
mov sp,16 ;这里是16而不是8,切忌
mov cx,8 ;8次循环入栈
mov bx,0
x: push
add bx,2
loop x
mov ax,4c00h
int 21h
code ends
end main 听别人说,X86汇编都是疯子玩的……{:titter:} 人家所谓的疯子是高手的意思。sb 不懂装什么j吧 看楼主不像是来请教的。 解决了,不管别人怎么说,还是要把问题共享一下
由于windows自带的debug程序通过硬件中断来实现调试,所以自己程序里的栈空间会被用到并被更改,
我的程序问题在于栈的大小不够用,所以debug无法满足,把栈空间调大就ok了 51_jiaduoW~W 发表于 2012-8-15 10:22 static/image/common/back.gif
人家所谓的疯子是高手的意思。sb
LZ,二楼也是玩笑罢了,你何必当真呢? 和二楼说声“对不起啊”,额,我有点冲动了当时。希望原谅,也感谢楼上给我指出来。
页:
[1]