菜鸟问基础问题

xiaolei1982 2014-11-11 09:09:44
在看书发现一个基础问题:
lea esi, [ebp+111];

mov edi, dword [ebp+8]

rep move es:[edi], [esi]


我想问下,edp段基址是ss, 位移ebp+8给了esi,
为什么后面[esi] 的段基址是ds可以拿到数据呢?
es:[eid]也可以拿到数据,难道ss和ds和es的值都是一样的?


谢谢了分不多但是很困惑,感谢好心人
...全文
265 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
图灵狗 2014-11-12
  • 打赏
  • 举报
回复
参考 http://www.cppblog.com/luqingfei/archive/2010/08/06/122435.html Windows操作系统干脆为用户程序安排好了一切。具体表现在为用户程序的代码段、数据段和堆栈段全部预定义好了段描述符。这些段的起始地址为0,限长为ffffffff,所以用它们可以直接寻址全部的4GB地址空间。程序开始执行的时候,CS,DS,ES和SS都已经指向了正确的描述符,在整个程序的生命周期内,程序员不必改动这些段寄存器,也不必关心它们的值究竟是多少(实际上,想改也改不了)。
WJN92 2014-11-11
  • 打赏
  • 举报
回复
windows下面都没有了段的概念了.

21,459

社区成员

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

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