X86 LEA指令详解
1.SDM指令功能描述(LEA)
LEA
总体描述:
从第二个操作数(源操作数)计算有效地址,并将结果存入第一个操作数(目的操作数)。源操作数是指定了一种访存操作的内存地址,目的操作数为一个通用寄存器。地址大小和操作数大小都会影响该指令的结果,操作数大小被指令中指定的寄存器大小决定,地址大小由代码段描述符中的属性指定。如果地址位数大于操作数位数,计算结果将被截断至操作数指定的宽度并存入寄存器中;如果地址位数小于操作数位数,计算结果将被零扩展至操作数指定的宽度并存入寄存器中。此指令常被编译器用来优化一些算术运算,因为此指令占用的空间要比单独实现Base + Scale * Index + Offset要少得多。
伪代码:(u16/u32/u64)addr = effective_addr();
(u16/u32/u64)dst_reg = addr;
标志位影响:
无
相关异常:
UD:
源操作数不是一个内存地址
使用了LOCK prefix
示例代码
void test()
{struct lseg_st les;int addr;les.a = 0xffffffff;les.b = 0x08;__asm__ volatile("leal %0, %%eax\t\n"::"m"(les));printk("addr 0x%X\n", &les);
}
X86 LEA指令详解相关推荐
- X86 LSS指令详解
SDM指令功能描述(LSS) 总体描述: 用32位或48位或64位的数据加载16位SS段选择符和16或32位或64位的通用寄存器值,其中通用寄存器在目的操作数中. LSS (16or32or64)通用 ...
- #pragma comment和#pragma 预处理指令详解
该宏放置一个注释到对象文件或者可执行文件. 例如,#pragma comment(lib,"Ws2_32.lib")表示链接Ws2_32.lib这个库. 和在工程设置里写上链入 ...
- arm-linux-ld中的参数,arm-linux-ld指令详解
arm-linux-ld指令详解 我们对每个c或者汇编文件进行单独编译,但是不去连接,生成很多.o 的文件,这些.o文件首先是分散的,我们首先要考虑的如何组合起来:其次,这些.o文件存在相互调用的关系 ...
- 九爷带你了解 nginx 日志配置指令详解
nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_ ...
- movsb movsw movsd 指令详解
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u013490896/article/d ...
- java中Freemarker list指令详解
java Freemarker中list指令主要是进行迭代服务器端传递过来的List集合. 定义 <#list nameList as names> ${names} </#list ...
- C#中的预处理指令详解
这篇文章主要介绍了C#中的预处理指令详解,本文讲解了#define 和 #undef.#if.#elif.#else和#endif.#warning和#error.#region和#endregion ...
- pragma comment的使用 pragma预处理指令详解
pragma comment的使用 pragma预处理指令详解 #pragma comment( comment-type [,"commentstring"] ) 该宏放置一个注 ...
- PUSHA/PUSHAD POPA/POPAD 指令详解
PUSHA/PUSHAD POPA/POPAD 指令详解 官方文档的解释 在<Intel Architecture Software Developer's Manual Volume 2:In ...
最新文章
- weevely入手使用笔记
- 《未来架构师》的教学范例(1)
- Spring中bean的作用域
- Vue组件实现tips的总结
- python画父子关系图_将有父子关系的一维数组转换成树形结构(多维)数据
- InnoDB存储引擎详解
- idea自动下载gradle_如何在IDEA中下载Gradle项目的依赖源?
- CCNA路由综合实验配置详解
- 虚拟机查看HWADDR(即MAC)地址
- 【OpenCV 例程300篇】48. 直方图处理之彩色直方图匹配
- HDU4622: Reincarnation
- 不同颜色蔬菜代表什么营养?
- android磁盘分区,Android SD卡做磁盘分区图文教程
- 群晖设置腾讯云ddns显示认证失败的两种解决办法【实测第二种成功了】
- Apahce虚拟主机与伪静态
- 怎样卸载teams_如何在Windows 10上永久卸载Microsoft Teams
- 安卓简洁地实现点击ImageView查看大图功能
- Android组件化开发详解
- 数字电路与逻辑设计(重邮集成电路考研专业课)
- 台式机和工作站到底有什么区别?