汇编语言学习中的一个练习的疑问

x9897 2018-05-17 03:17:39

pop ax 执行之后为啥
2000:0006这个位置会插入了 0C 00 呢?
...全文
863 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
x9897 2018-05-18
  • 打赏
  • 举报
回复
引用 1 楼 DelphiGuy 的回复:
因为debug单步不支持硬件断点,而是使用CPU的trap功能,设置TF标志后,每条指令后进入int1,int1在16位模式下会占用当前栈6字节保存flags、cs、ip,cs:ip指向下一条待执行的指令,对你的例子分别是0549、0b3d、000c
原来是这样啊... 非常感谢 这样我又明白了 sp设置为4的时候 运行到pop ax的时候为啥程序会出错了... 原来是因为硬件断点的原因啊 感谢大大回答这么基础的问题了
  • 打赏
  • 举报
回复
因为debug单步不支持硬件断点,而是使用CPU的trap功能,设置TF标志后,每条指令后进入int1,int1在16位模式下会占用当前栈6字节保存flags、cs、ip,cs:ip指向下一条待执行的指令,对你的例子分别是0549、0b3d、000c

21,453

社区成员

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

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