微机原理与接口技术38086寻址方式与指令系统.ppt_第1页
微机原理与接口技术38086寻址方式与指令系统.ppt_第2页
微机原理与接口技术38086寻址方式与指令系统.ppt_第3页
微机原理与接口技术38086寻址方式与指令系统.ppt_第4页
微机原理与接口技术38086寻址方式与指令系统.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 第3章8086寻址方式与指令系统 第3章 3 3数据传送类指令 数据传送是计算机中最基本 最重要的一种操作 传送指令也是最常使用的一类指令传送指令把数据从一个位置传送到另一个位置除标志寄存器传送指令外 均不影响标志位重点掌握MOVXCHGXLATPUSHPOPLEA 第3章 3 3 1通用数据传送指令 提供方便灵活的通用传送操作有3条指令MOVXCHGXLAT MOV XCHG XLAT 第3章 1 传送指令MOV move 把一个字节或字的操作数从源地址传送至目的地址 MOVreg mem imm 立即数送寄存器或主存 MOVreg mem seg reg 寄存器送 段 寄存器或主存 MOVreg seg mem 主存送 段 寄存器 MOVreg mem seg 段寄存器送寄存器或主存 演示 第3章 MOV指令 立即数传送 movcl 4 cl 4 字节传送movdx 0ffh dx 00ffh 字传送movsi 200h si 0200h 字传送movbvar 0ah 字节传送 假设bvar是一个字节变量 定义如下 bvardb0movwvar 0bh 字传送 假设wvar是一个字变量 定义如下 wvardw0 明确指令是字节操作还是字操作 第3章 MOV指令 寄存器传送 movah al ah al 字节传送movbvar ch bvar ch 字节传送movax bx ax bx 字传送movds ax ds ax 字传送mov bx al bx al 字节传送 寄存器具有明确的字节和字类型 第3章 MOV指令 存储器传送 moval bx al ds bx movdx bp dx ss bp 0 movdx bp 4 dx ss bp 4 moves si es ds si 不存在存储器向存储器的传送指令 第3章 MOV指令 段寄存器传送 mov si dsmovax ds ax dsmoves ax es ax ds 对段寄存器的操作不灵活 第3章 MOV指令传送功能图解 MOV指令也并非任意传送 非法指令的主要现象 两个操作数的类型不一致无法确定是字节量还是字量操作两个操作数都是存储器段寄存器的操作有一些限制 第3章 非法指令 两个操作数类型不一致 在绝大多数双操作数指令中 目的操作数和源操作数必须具有一致的数据类型 或者同为字量 或者同为字节量 否则为非法指令MOVAL 050AH 非法指令 修正 movax 050ahMOVSI DL 非法指令 修正 movdh 0 movsi dx 第3章 非法指令 无法确定是字节量还是字量操作 当无法通过任一个操作数确定是操作类型时 需要利用汇编语言的操作符显式指明MOV BX SI 255 非法指令 修正 movbyteptr bx si 255 byteptr说明是字节操作 movwordptr bx si 255 wordptr说明是字操作 第3章 非法指令 两个操作数都是存储器 8088指令系统除串操作指令外 不允许两个操作数都是存储单元 存储器操作数 MOVbuf2 buf1 非法指令 修正 假设buf2和buf1是两个字变量 movax buf1 movbuf2 ax 假设buf2和buf1是两个字节变量 moval buf1 movbuf2 al 第3章 非法指令 段寄存器的操作有一些限制 8088指令系统中 能直接对段寄存器操作的指令只有MOV等个别传送指令 并且不灵活MOVDS ES 非法指令 修正 movax es movds axMOVDS 100H 非法指令 修正 movax 100h movds axMOVCS SI 非法指令 指令存在 但不能执行 第3章 2 交换指令XCHG exchange 把两个地方的数据进行互换 寄存器与寄存器之间对换数据寄存器与存储器之间对换数据不能在存储器与存储器之间对换数据 XCHGreg reg mem reg reg mem 演示 第3章 例2 2数据交换 movax 1199h ax 1199hxchgah al ax 9911h 等同于xchgal ahmovwvar 5566h wvar是一个字量变量xchgax wvar ax 5566h wvar 9911h 等同于xchgwvar axxchgal byteptrwvar 1 ax 5599h wvar 6611h byteptrwvar 1 强制为字节量 只取高字节与AL类型交换 否则数据类型不匹配 第3章 3 换码指令XLAT translate 将BX指定的缓冲区中 AL指定的位移处的一个字节数据取出赋给AL 换码指令执行前 在主存建立一个字节量表格 内含要转换成的目的代码表格首地址存放于BX AL存放相对表格首地址的位移量换码指令执行后 将AL寄存器的内容转换为目标代码 XLAT al ds bx al 演示 第3章 3 3 2堆栈操作指令 堆栈是一个 后进先出FILO 或说 先进后出FILO 的主存区域 位于堆栈段中 SS段寄存器记录其段地址堆栈只有一个出口 即当前栈顶 用堆栈指针寄存器SP指定堆栈只有两种基本操作 进栈和出栈 对应两条指令PUSH和POP 图示 第3章 进栈指令PUSH 进栈指令先使堆栈指针SP减2 然后把一个字操作数存入堆栈顶部 PUSHr16 m16 seg SP SP 2 SS SP r16 m16 seg 演示 pushaxpush 2000h 第3章 出栈指令POP 出栈指令把栈顶的一个字传送至指定的目的操作数 然后堆栈指针SP加2 POPr16 m16 seg r16 m16 seg SS SP SP SP 2 popaxpopwvar 演示 第3章 堆栈操作的特点 堆栈操作的单位是字 进栈和出栈只对字量字量数据从栈顶压入和弹出时 都是低地址字节送低字节 高地址字节送高字节堆栈操作遵循先进后出原则 但可用存储器寻址方式随机存取堆栈中的数据堆栈段是程序中不可或缺的一个内存区 常用来临时存放数据传递参数保存和恢复寄存器 第3章 3 3 3标志操作指令 1 标志位操作指令CLC 复位进位标志 CF 0STC 置位进位标志 CF 1CMC 求反进位标志 CF CFCLD 复位方向标志 DF 0STD 置位方向标志 DF 1CLI 复位中断标志 IF 0STI 置位中断标志 IF 12 标志寄存器低字节与AH的传送指令3 标志寄存器出入堆栈指令 将存储器操作数的有效地址送至指定的16位通用寄存器 第3章 有效地址传送指令LEA loadeffectiveaddress LEAr16 mem r16 mem的有效地址EA 例题2 5有效地址的获取movbx 400hmovsi 3chleabx bx si 0f62h BX 400H 3CH 0F62H 139EH 第3章 例2 6地址传送与内容传送 wvardw4142h 假设偏移地址为04H movax wvar 内容传送 AX 4142Hleasi wvar 地址传送 SI 0004H 等同于leasi 0004h movcx si 内容传送 CX 4142Hmovdi offsetwvar movdi 0004h 利用操作符OFFSET获取变量的有效地址movdx di 内容传送 DX 4142H 第3章 调试程序DEBUG DEBUG是常用的汇编语言级调试工具 为汇编语言程序员提供了分析指令 跟踪程序的有效手段常用命令 A汇编 U反汇编 T单步执行 G断点执行 D数据显示 R寄存器启动方法DOS下执行DEBUG EXE程序Windows9x中进入MS DOS环

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论