push 报错

PCCYC 2015-05-12 09:21:33

mov ax,2000
mov ss,ax
mov sp,10
mov ax,1111
push ax
push ax
push ax
push ax
...
任务要求是把2000:0用push全部改成 11 11 11 ...
每次push到倒数第2个时出错,请问各位朋友为什么会出错?
如果把sp改成大点,比如16,就不会报错。这时为什么呢?
谢谢!

...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2015-05-12
  • 打赏
  • 举报
回复
你是单步运行的?单步中断也会用到堆栈,而且中断一次性需要连续的 3 个 word 的空间,若 sp 太小,即可能出错。一次运行到底试试。
zara 2015-05-12
  • 打赏
  • 举报
回复
g 命令带上 push 指令组后面一指令的地址如 g 10f 这样直接运行到 10f 处停下来
PCCYC 2015-05-12
  • 打赏
  • 举报
回复
引用 1 楼 zara 的回复:
你是单步运行的?单步中断也会用到堆栈,而且中断一次性需要连续的 3 个 word 的空间,若 sp 太小,即可能出错。一次运行到底试试。
请教如何多步运行?谢谢

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧