8086指令系统:LES双字指针与ES寄存器
需积分: 50 169 浏览量
更新于2024-07-13
收藏 963KB PPT 举报
"这篇内容主要讨论的是8086/8088微处理器的寻址方式和LES指令的使用。LES指令用于将双字指针从内存加载到指定寄存器和ES寄存器中,是8086汇编语言编程中的一个重要概念。"
在8086/8088的指令系统中,寻址方式是决定如何访问存储器中操作数的关键部分。以下是一些常见的寻址方式:
1. **立即寻址**:操作数直接包含在指令中,例如`MOV AX, im`,其中`im`可以是8位或16位的数值。
2. **寄存器寻址**:操作数位于CPU寄存器中,如`MOV DS, AX`,这里DS被赋值为AX寄存器的值。
3. **直接寻址**:操作数的地址直接在指令中给出,例如`MOV AX, [2000H]`,或者通过符号地址如`AREA1`来访问。
4. **寄存器间接寻址**:操作数的地址在某个寄存器中,如`MOV AX, [BX]`,其中BX寄存器包含了操作数的内存地址。
5. **变址寻址**:结合寄存器和一个偏移量来访问内存,例如`MOV AX, [BX+DI]`。
6. **基址加变址寻址**:使用基址寄存器和变址寄存器的组合,如`MOV AX, [BX+SI]`。
LES(Load Effective Address)指令是8086汇编语言中的一个特定指令,它的格式为`LES r, src`,其中`r`是目标寄存器,通常为DI,`src`是源操作数,通常是一个内存地址。LES指令会将内存中指定地址的双字(32位)加载到目标寄存器`r`(16位)和ES寄存器(16位)中。例如,如果DS=0100H,BX=0020H,(01020H)=0300H,(01022H)=0500H,ES=3000H,执行`LES DI, [BX]`后,DI会被设置为0300H,而ES则变为0500H。
这种指令在处理大块数据或需要改变段寄存器的场合非常有用,因为它同时更新了数据段寄存器和一个通用寄存器。理解这些寻址方式和LES指令对于编写有效的8086汇编程序至关重要,因为它们直接影响程序的效率和正确性。在微机原理和应用的学习中,深入掌握这些基础知识对于理解和设计微处理器系统的程序至关重要。
2009-10-29 上传
2021-10-02 上传
2009-12-05 上传
点击了解资源详情
2011-04-17 上传
2021-09-17 上传
2022-11-14 上传
2022-11-26 上传
2013-05-24 上传
辰可爱啊
- 粉丝: 15
- 资源: 2万+
最新资源
- 单片机串口通信仿真与代码实现详解
- LVGL GUI-Guider工具:设计并仿真LVGL界面
- Unity3D魔幻风格游戏UI界面与按钮图标素材详解
- MFC VC++实现串口温度数据显示源代码分析
- JEE培训项目:jee-todolist深度解析
- 74LS138译码器在单片机应用中的实现方法
- Android平台的动物象棋游戏应用开发
- C++系统测试项目:毕业设计与课程实践指南
- WZYAVPlayer:一个适用于iOS的视频播放控件
- ASP实现校园学生信息在线管理系统设计与实践
- 使用node-webkit和AngularJS打造跨平台桌面应用
- C#实现递归绘制圆形的探索
- C++语言项目开发:烟花效果动画实现
- 高效子网掩码计算器:网络工具中的必备应用
- 用Django构建个人博客网站的学习之旅
- SpringBoot微服务搭建与Spring Cloud实践