关于leal和mov
最近在学习leal的时候遇到了一点非常迷惑的地方,就是leal是用来取有效地址的,但是为什么它也可以实现赋值呢?偶然发现一个博客讲的不错,遂自己记录一下
一个这样的例子
leal 7(%edx,%edx,4),%edx
如果寄存器edx里面存的值为x,我们知道这句结束之后edx里面的值会被置为5x+7,但是看起来为什么是值而不是地址呢?
实际上这之中发生了这样的步骤:
首先,edx寄存器里面的值为x
显然,这是一种基址比例变址的寻址方式,%edx+%edx*4+7,目标内存地址为5x+7
3.那么,我们假设地址为5x+7对应的值为y,由于leal取的是有效地址,所以对于值y来说,它的地址就是5x+7,故leal取5x+7
4.5x+7被赋给寄存器edx
参考来源:
https://www.jianshu.com/p/29ce0edcd975
关于leal和mov的更多相关文章
- wireshark使用简介
		
wireshark界面简介 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息.与很多其他网络工具一样,Wireshark也使 ...
 - # 20145314《信息安全系统设计基础》期中复习总结 Part B
		
20145314<信息安全系统设计基础>期中复习总结 Part B 学习知识点内容总结 复习线索:http://group.cnblogs.com/topic/73069.html 本周的 ...
 - 对lea与mov的理解
		
lea不止可以完成mov的功能,他还可以加载存储器的有效地址,即D<-&S 借鉴深度理解计算机系统里: 指令Leal实际上是movl指令的变形.他的指令形式是从存储器读数据到寄存器,但实 ...
 - linux 之 汇编语言 的mov和movl  sub 和subl add 和addl 的区别??
		
AT&T汇编语言(Assembly Language)是UNIX下惯用的汇编语言(Assembly Language)各式 l,w,b是ATT汇编语言(Assembly Language)中用 ...
 - mov 与 lea 区别
		
转自:https://blog.csdn.net/fengyuanye/article/details/85715565 https://my.oschina.net/guonaihong/blog/ ...
 - mov和ldr/str的区别
		
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令.比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就 ...
 - 汇编寄存器(内存访问)基础知识之三---mov指令
		
1 内存中字的存储 一个字型数据占2个内存单元,内存里面一个内存单元一个字节(8位),高地址单位放高8位,低地址单元放低8位. 注意:0号是地址单元,1是高地址单元(上是低地址,下面是高地址) (1 ...
 - DSO转换规则的Aggregation默认为覆盖MOV
		
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
 - 【汇编】mov [1000],bx:immediate operand not allowed
		
],bx;在目的操作数中编译器会忽略[],所以[1000]就成了立即数,出现“immediate operand not allowed”改: ;mov bx,[1000];而在源操作数中,就不会出现 ...
 
随机推荐
- [转载非常好的文章]JLink+GDBServer调试S3C6410裸板的初始化代码 For OK6410开发板
			
要调试裸板,有两种初始化方法,一个是用烧好的uboot初始化,再有就是直接用JLink+GDBServer初始化.代码参考了网上的资料,根据手头的OK6410开发板做了修改.整体代码如下: # Con ...
 - rabbitMq及安装、fanout交换机-分发(发布/订阅)
			
<dependency> <groupId>com.rabbitmq</groupId> <artifactId& ...
 - 用JavaScript+css制作下拉式菜单
			
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
 - vue环境命令
			
1.下载安装note.js用于VUE开发环境 2.VUE项目开发环境安装依赖,命令行进入项目代码目录下执行如下命令npm install 3.开发环境运行npm run dev 4.打包项目npm r ...
 - VC GDI 像素转厘米(英寸)[转发]
			
[转载]http://blog.sina.com.cn/s/blog_638dd78201018663.html 函数原型:int GetDeviceCaps(int nIndex); 常用的参数有( ...
 - MTK(android init.rc) 写一个开机启动的服务
			
在开机往往我们想要做一些初始化的操作,这时候可以使用init.rc文件来实现,当然书写一个开机启动的服务也需要规范的. 假设是C程序,则需要准备C程序的源码,在我的例程中是一个在开机完成(androi ...
 - flutter 读写文件
			
import 'package:flutter/material.dart'; import 'package:path_provider/path_provider.dart'; import 'd ...
 - kafka 控制台命令
			
后台启动:bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 & 启动生产者:bin/k ...
 - Spring中三种编程式事务的使用
			
引入事务管理器 @Autowired TransactionTemplate transactionTemplate; @Autowired PlatformTransactionManager tr ...
 - Java序列化,解决字段为null与序列化后首字母变小写问题
			
fastjson.jar package com.apt.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.se ...