有大佬帮我这个新萌解释下栈顶这段代码吗?

超人超级无敌 2018-02-01 09:58:14
新萌刚学汇编,想问栈顶后面的代码去哪了
...全文
714 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
邋遢飞 2018-02-28
  • 打赏
  • 举报
回复
我也是新手,在看王爽老师的汇编语言。上面段地址计算方法16是十进制的,其他都是16进制。
邋遢飞 2018-02-28
  • 打赏
  • 举报
回复
看左边的偏移地址。076A:0000 的实际地址为 076A * 16 + 0000 = 076A0H 为数据段的段地址,在程序执行Mov DS,AX“之后”DS中的值。 076A:0010 的实际地址为 076A * 16 + 0010 = 076B0H 为堆栈段的段地址,在程序执行Mov SS,AX“之后”SS中的值。 076A:0020 的实际地址为 076A * 16 + 0020 = 076C0H 为代码段的段地址,在程序开始时CS中的值。 实际上这三个段内数据在程序载入内存后就是固定的,end start指向代码段的地址;上面的两个Mov只是将DS、SS这两个寄存器指向实际的段地址而已。
  • 打赏
  • 举报
回复
076a:0000 开始的16字节是数据段 076a:0010 开始的16字节是栈段 076a:0020 开始的32个字节才是代码段(实际代码31字节)

21,458

社区成员

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

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