编辑“︁
X86
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
=== 定址模式 === [[定址模式]]在16-bit的x86處理器: :<math> \begin{Bmatrix}CS:\\DS:\\SS:\\ES:\end{Bmatrix} \begin{bmatrix}\begin{Bmatrix}BX\\BP\end{Bmatrix}\end{bmatrix} + \begin{bmatrix}\begin{Bmatrix}SI\\DI\end{Bmatrix}\end{bmatrix} + \rm [displacement] </math> 32-bit定址模式在32-bit或64-bit的x86處理器: :<math> \begin{Bmatrix}CS:\\DS:\\SS:\\ES:\\FS:\\GS:\end{Bmatrix} \begin{bmatrix}\begin{Bmatrix}EAX\\EBX\\ECX\\EDX\\ESP\\EBP\\ESI\\EDI\end{Bmatrix}\end{bmatrix} + \begin{bmatrix}\begin{Bmatrix}EAX\\EBX\\ECX\\EDX\\EBP\\ESI\\EDI\end{Bmatrix}*\begin{Bmatrix}1\\2\\4\\8\end{Bmatrix}\end{bmatrix} + \rm [displacement] </math> 64-bit定址模式在64-bit的x86處理器: :<math> \begin{Bmatrix} \begin{Bmatrix}FS:\\GS:\end{Bmatrix} \begin{bmatrix}{\rm general\;register}\end{bmatrix} + \begin{bmatrix}{\rm general\;register}*\begin{Bmatrix}1\\2\\4\\8\end{Bmatrix}\end{bmatrix}\\\\ RIP \end{Bmatrix} + \rm [displacement] </math> x86汇编指令lea,是Load Effective Address的缩写,其优势是: * LEA指令具有单时钟周期,执行效率很高。 * 是CPU地址生成单元参与运算的,而不是ALU参与运算的,所以在流水线上不会与上下文的算术逻辑指令产生流水相关 * INTEL指令集中不存在很多RISC机器所具有的三操作数算术运算指令,比如像ARM的"add r0,r1,r2",而LEA指令恰好提供了同样的功能,以模拟“三元算术逻辑指令”。例如:lea ebx ,[eax+edx] * 在汇编语言程序设计中,在需要取得一个变量地址时,使用lea是很方便的。而mov指令则常常出错,因为在微软[[MASM]]汇编语法中,label和variable是不同的:addr不可前向引用,offset则能;addr可以处理局部变量而 offset则不能。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息