【求助】王爽的《汇编语言》实验3的问题
assume cs:codesg
codesg segment
mov ax,2000h
mov ss,ax
mov sp,0
add sp,4
pop ax 到这里就报错我换了两台电脑都一样
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00h
int 21h
codesg ends
end
请各位前辈指点一下。这是怎么回事?谢谢!!
addsp,40 后面加个0试试 xiaosawanjava 发表于 2014-6-18 15:10 static/image/common/back.gif
addsp,40 后面加个0试试
谢谢!!如果改成40可以通过编译!但书本是他这样出题。是想告诉我们什么吗?请前辈指点:handshake skw 发表于 2014-6-18 15:57 static/image/common/back.gif
谢谢!!如果改成40可以通过编译!但书本是他这样出题。是想告诉我们什么吗?请前辈指点
这个是因为debug 执行t 命令的时候要调用中断 ,而中断要push 几个值 (好像是flag cs ip)然后你mov sp,0add sp,4这两句话执行完成以后 sp = 4 ,栈的空间只有4个字节,少了2个 所以他就报错,如果你把 sp改为6或者6以上就可以了。 xiaosawanjava 发表于 2014-6-18 16:47 static/image/common/back.gif
这个是因为debug 执行t 命令的时候要调用中断 ,而中断要push 几个值 (好像是flag cs ip)然后你m ...
谢谢!我有一点明白了。再去好好学学栈空间!{:1_1:}
页:
[1]