Table of Contents

LEA

LES


LEA

LEA是微机8086/8088系列的一条指令,取自英语Load effect address——取有效地址,也就是取偏移地址。在微机8086/8088中有20位物理地址,由16位段基址向左偏移4位再与偏移地址之和得到。   

取偏移地址指令  

指令格式如下:  

LEA reg16, mem  
lea reg16, memory

LEA指令将存储器操作数mem的4位16进制偏移地址送到指定的寄存器。这里,源操作数必须是存储器操作数,目标操作数必须是16位通用寄存器。因该寄存器常用来作为地址指针,故在此最好选用四个间址寄存器BX,BP,SI,DI之一。  LEA 取有效地址指令 (Load Effective Address )  

指令格式:LEA 目的,源  

指令功能:取源操作数地址的偏移量,并把它传送到目的操作数所在的单元。  

LEA 指令要求原操作数必须是存储单元,而且目的操作数必须是一个除段寄存器之外的16位或32位寄存器。当目的操作数是16位通用寄存器时,那么只装入有效地址的低16位。使用时要注意它与MOV指令的区别,MOV指令传送的一般是源操作数中的内容而不是地址。  


例1

假设:SI=1000H , DS=5000H, (51000H)=1234H  

执行指令 LEA BX , [SI]后,BX=1000H  

执行指令 MOV BX , [SI]后,BX=1234H  

有时,LEA指令也可用取偏移地址的MOV指令替代。  


例2

下面两条指令就是等价的,他们都取TABLE的偏移地址,然后送到BX中,

即  

LEA BX,TABLE  

MOV BX,OFFSET TABLE  

但有些时候,必须使用LEA指令来完成某些功能,不能用MOV指令来实现,必须使用下面指令:  

LEA BX, 6[DI]  

解释:某数组含20个元素,每个元素占一个字节,序号为0~19。设DI指向数组开头处,如果把序号为6的元素的偏移地址送到BX中。


LES

LES指令的功能是:把内存中指定位置的双字操作数的低位字装入指令中指定的寄存器、高位字装入ES寄存器。

les reg16, memory32

因为ds:[BX]中的低位字的内容是:0520H、高位字的内容是:4800H,

所以,指令

LES DI,[BX] 

执行后,(DI)=0520H,(ES)=4800H

这两个数不是算出来的,而是取出来的。

汇编:LEA(取偏移地址)、LES相关推荐

  1. linux汇编 lea,汇编指令LEA

    LEA是微机8086/8088系列的一条指令,取自英语Load effect address--取有效地址,也就是取偏移地址.在微机8086/8088中有20位物理地址,由16位段基址向左偏移4位再与 ...

  2. 基于8086CPU微处理器的汇编学习之段地址与偏移地址的分析

    人的记忆总是不靠谱的,早在几年前就看过汇编语言,由于没有总结下来资料,所以忘记了很多,所以重新梳理下汇编方面的知识,与君共勉. ------------------------------------ ...

  3. 王爽汇编习题 : 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 ___ 到 ____。

    1 答案 : 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为 0010H 到 1000FH . 2 解题过程: 物理地址=SA*16+EA EA的变化范围为0h~ffffh 物理地 ...

  4. 贺利坚老师汇编课程46笔记:操作符offset取得标号的偏移地址

    指路老师的博客 ;offset 标号 assume cs:codesg codesg segment start:mov ax,offset start;相当于mov ax,0;这一条是3字节指令 s ...

  5. 汇编中偏移地址的理解

    偏移地址也称为偏移量,由于8086/8088CPU内部的ALU只能进行16位(16进制的话4X4,用4位表示,0x0000-0xFFFF)的运算,而8086/8088有20(16进制的话4X5,用5位 ...

  6. 微机原理——指令系统——传送类指令(MOV、LEA、LDS、LES、LAHF、SAHF、XCHG、XLAT、PUSH、POP、PUSHF、POPF)

    博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问. [没事儿可以到我主页看看 ...

  7. 基地址和偏移地址的概念

    首先必须明白 cpu和内存的区别 cpu 中央处理器 内存是物理数据存放的地方 cpu不直接存放数据而是通过内存来存放数据 cpu和内存之间通过20条地址总线相连接,地址总线就是cpu通过地址找到对应 ...

  8. 微型计算机原理偏移地址,微机原理试卷答案(B)

    2008 -2009 学年第 一 学期闽江学院( B ) 适用年级专业:06物本 考试形式:闭卷 考试课程:微型计算机原理与应用 班级 姓名 学号 一.填空题 20% 1.8086CPU 从偶地址访问 ...

  9. 汇编重要知识点:地址编号和数据编号

    代码段的标号可以用来标记指令,段的起始地址 利用标号S 代码段的数据也可以用标号,这个例子我编译不通过,得在数据段才行 将a标号处8个字节数据累加,将结果存储在b标号处的字中 修改了一下程序放在数据段 ...

最新文章

  1. AIoT的生死局:未来的AIoT很赚钱,但目前的AI+IoT很花钱
  2. c#_可扩展标记语言XML
  3. IIS初始化(预加载),解决第一次访问慢,程序池被回收问题
  4. nginx各个版本下载地址
  5. docker always_介绍两款Docker可视化工具
  6. mysql支持UUID做外键_Mysql中以uuid为外键插入多条数据,怎样实现同一个二级分类外键关联的数据为同一个uuid的值...
  7. VTK:Filtering之TransformPolyData
  8. Facade与Mediator模式的区别
  9. MyBatis 实际使用案例-transactionManager
  10. 用cocos2d-html5做的消除类游戏《英雄爱消除》(1)——系统主菜单
  11. java B2B2C Springcloud仿淘宝电子商城系统
  12. AlphaGo Zero,造神还是开启潘多拉魔盒?【附论文下载】
  13. Python函数学习心得
  14. 台式计算机如何联络无线网,台式电脑怎样设置无线网络
  15. 绿联 蓝牙适配器 linux,绿联USB
  16. 元图地图开放平台系统概述
  17. 搞一下整车以太网技术 | 04 CBS基于信用整形
  18. execve头文件C语言,利用fork()和execve()运行程序
  19. VS Code 不止开源
  20. 角度制与弧度制的相互转换np.deg2radnp.rad2deg

热门文章

  1. Mongo Replica set的Primary 客户端不回自动重连新的primary
  2. Redis+MongoDB 极佳实践:做到读写分离
  3. HDU 1698 Just a Hook 线段树
  4. python的knn算法list_【风马一族_Python】 实施kNN算法
  5. python数据库实现注册函数_python 函数 之 用户注册register()
  6. python在编程序网站_Python的用户登录接口编制以及实现流程图
  7. html5详细的中文手册,Web前端
  8. c语言数组前缀和,关于最大子数组问题
  9. c语言定义92bit位变量,Keil C51对C语言的关键词扩展之四: bit
  10. 对于局部变量_LabVIEW小白入门——局部变量