以下汇编程序,用debug单步调试总出错,提示指向无效的指令,而用g命令可以正确 执行,为什么?

assumecs:codestacksegmentdw0,0stackendscodesegmentstart:movax,stackmovss,axmovsp,4mov... assume cs:code
stack segment
dw 0,0
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,4
mov ax,4240h
mov dx,000fh
mov cx,0ah
call divdw
mov ax,4c00h
int 21h
divdw:
push ax
mov ax,dx
mov dx,0
div cx
mov bx,ax
pop ax
div cx
mov cx,dx
mov dx,bx
ret
code ends
end start
展开
 我来答
阳光上的桥
2013-03-08 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65815
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
单步要用p命令,不要用t命令进入int里面了,否则永远都调试不完的。你在哪行开始出现错误了的?
更多追问追答
追问

执行到mov ax,4240h  的时候弹出对话框

不知道是不是和栈有关,因为我把

stack segment

  dw 0,0

stack ends

以及

mov ax,stack

mov ss,ax

mov sp,4

删了就不会出错了

追答
对头,你的分析正确,MOV AX,4240H语句本身不可能有错,调试时执行出错是因为没有栈
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式