微型计算机原理及应用第三版 (3).ppt_第1页
微型计算机原理及应用第三版 (3).ppt_第2页
微型计算机原理及应用第三版 (3).ppt_第3页
微型计算机原理及应用第三版 (3).ppt_第4页
微型计算机原理及应用第三版 (3).ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、5.1 8086指令的寻址方式,指令:微处理器提供的某一种基本操作功能。 (*)进行什么操作(操作码) (*)对什么进行操作(操作数或操作数的来源) 操作后的结果数据可以存放到某个原来的操作数位置 指令系统: 计算机提供所有的指令的集合。 (*)指令系统随CPU的不同而不同 机器语言:采用二进制的机器码表示指令、数据和指令数据的地址等信息的。10111000 00000101 00000000,汇编语言:采用助记符表示的程序设计语言。汇编语言源程序是机器语言程序的符号表示。(编译器处理) MOV AX,O3H 汇编语言指令的格式:标号:指令助记符 操作数 ;注释 例如: LINE1: INCC

2、X;计数器加一 ADD AX, BX DAA (*)标号的命名规则 (*)指令助记符不可缺省 (*)操作数在不同的情况下可以有2个,1个或者是没有 (*)注释必须以分号开头,注释不生成目标代码 (*)四个部分可以用制表符隔开。,寻址方式:指令中给出操作数的方式 操作数的寻址,例如 MOV AX,1234H 指令的寻址, 例如 JUMP LAB 操作数的来源: 指令代码中直接给出。 MOV AX,1200H 存放在寄存器中。 MOV AX,BX 存放在指定的存储单元中。 MOV AX,3456H 1、立即寻址: 操作数直接包含在指令中,在操作码之后。, (*)不必执行总线周期访问存储器,故称之为

3、立即数。 (*)立即数可以是一个8位或16位数。 例如: MOV AL, 80H MOV AX, 1090H (*)立即数寻址方式只能用于源操作数,不能用于目的操作数。 错误:MOV 1200,AX (*)一条指令中源操作数和目的操作数可能有不同的寻址方式,2、寄存器寻址:操作数包含在CPU内的某个寄存器中,指令中直接给出该寄存器名, 16位:AX,BX,CX,DX, SI, DI, SP,BP 8位:AL,BL,CL, DL,AH,BH,CH,DH 例如:INC CX MOV AX, BX 以下介绍的几个寻址方式将针对存储器操作数而言的。若操作数在存储器中,一般位于数据段、堆栈段或附加段中,

4、这时指令中给出的是操作数所在单元的地址(EA)或产生EA的计算方式。显然执行这类指令时: CPU首先要计算出有效地址EA(EA是一个不带符号的16位数) 再由总线接口部件BIU计算出物理地址 再执行总线周期按该物理地址访问存储器并取出操作数送给EU,由EU具体执行该指令。,3、直接寻址:操作数在存储器中的16位有效地址由指令直接给出。 例如: MOV AX, 1070H MOV AL, 1070H (*)要用方括号括起地址以免与立即数寻址混淆 (*)默认是从数据段取数,如果不是数据段则要在前面加段跨越 前缀 例如:MOV BX, 2000H MOV BX, ES:2000H,4、间接寻址 (4

5、A)寄存器间接寻址:操作数的有效地址在指令中指定的某个寄存 器中。 例如:MOV AX, BX (*)可用的寄存器只有四个BX,BP,SI,DI 错误:MOV AX,DX (*)如果间址寄存器为BP则默认为是堆栈段,如果间址寄存器为 BX,SI,DI则默认为是数据段。 (*)在一条指令中,不能同时有两个存储器操作数 (避免指令过长)。错误:MOV BX,1200H,(4B)寄存器相对间接寻址: 有效地址EA等于指令所指示的寄存器中 的内容再加上指令中给定的816位的位移量。 例如: MOV AX, SI+100 MOV AX, SI+100 MOV AX, 100SI (*)寄存器相对寻址有以

6、上三种写法 (*)寄存器相对寻址可以用来寻址一维表中的数据,(4C)基址变址寻址: 基址变址寻址是操作数的有效地址EA由指令 指定的一个基址寄存器(BX或BP)和一个变址寄 存器(SI或D1)内容之和。 例如: MOV AX, BXDI MOV AX ,BX+DI (*)基址变址寻址可以用来寻址二维表中的数据 (*)要注意只能是基址和变址的组合而不能用两个基址或两个变址的组合 错误:MOV AX,SIDI MOV AX.BXBP,(4D)相对基址变址寻址: 例如: MOV AX,100BXSI MOV AX,BX+SI+100H MOV AX,100BX+SI (*)所有的存储器操作数寻址方式

7、都支持段跨越前缀。 (*)使用BP寄存器做间接寻址时注意默认的段。,测试题一: 写出下列指令中源操作数的寻址方式: (1)MOV SI,1000 (2)MOV BH,AL (3)MOV AX, SIBX (4)MOV BP,BX (5)MOV DI,2130H (6)MOV DL,BX十SI十20H (7)MOV DI,BX十100 测试题二: 指出下列指令的错误之处 (1)MOV 1000H,AX (2)MOV AX,DX (3)MOV AX,SIDI (4)MOV BX,SI (5)MOV BP,AL,测试题三: 设有关寄存器及有关存储单元的内容如下: (DS)2000H, (BX)010

8、0H, (SI)0002H, (20100H)=12H (20101H)34H, (20102H)56H, (20103H)=78H (21200H)2AH, (21201H)4CH, (21202H)0B7H (21203H)65H 试说明下列各条指令执行后AX寄存器的内容 (1)MOV AX,1200H (2)MOV AX,BX (3)MOV AX,1200H (4)MOV AX,BX (5)MOV AX,1100BX (6)MOV AX,BX+SI,5.2 8086指令系统,8086/8088指令系统共包含133条基本指令,按功能可分为六类 (1)数据传送类指令 (4)字符串处理指令 (

9、2) 算术运算类指令 (5)控制转移类指令 (3)逻辑运算与移位类指令 (6)处理器控制类指令,一、传送指令,1、通用数据传送指令 (一) MOV数据传送 指令格式:MOV OPD,OPS 例如:MOV AX,1234H MOV AX,BX MOV BX,SI MOV SI,DS MOV DS,AX MOV DS,BX MOV 1234H,1234H (*) 源和目的操作数不能同为存储器操作数,如需要传送应通过 寄存器转送。 (*) 不能用CS和IP作目的操作数。 (*) 不允许在段寄存器间直接传送数据。 (*) 类型要匹配。 (*) 传送指令一般不影响标志寄存器。 (*) 不允许直接向段寄存

10、器传送立即数,如果需要,则应通过通 用寄存器转送。,(二)PUSH, POP堆栈操作 指令格式:PUSH OPS POP OPD 例如:PUSH AX PUSH DS PUSH 1234H (*)源操作数OPS和目的操作数OPD可以为16位通用寄存器、段寄存器或存储单元中的字数据,但不能是立即数,CS不能是目的操作数。 (*)PUSH是 先移后入 POP是 先出后移 (*)要符合先入后出的原则. 例题:(AX)=1234H (BX)=7890H (SP)=0056H请画出以下四条指令 执行时这三个寄存器的内容变化和堆栈段内容的变化。 PUSH AX PUSH BX POP AX POP BX,

11、(三)XCHG交换指令 指令格式: XCHG OPD,OPS 例如: XCHG AX.BX XCHG AX,SI+3 (*)不能同时为存储器操作数。段寄存器也不能作为操作数。 (四)XLAT换码指令 指令格式: XLAT (*) XLAT相当于MOV AL,BX+(AL) 转换步骤为:建立转换表 待转换码放入AL中 执行XLAT 例题:将十六进制数0F转换为ASCII码。 TABLE DB 30H,31H, ,39H,41H, ,45H,2、目标地址传送指令 (一) LEA取有效地址指令 指令格式:LEA OPD,OPS (*)该指令传送的内容是地址 (*)源操作数必须是存储器操作数,目的操作

12、数必须是除段寄存器之外的16位通用寄存器。 例题: 设(S1)3000H,(4000H)7788,求下两条指令执行完后 BX和SP的值。 LEA BX,SI十1000H MOV SP,4000H,(二) LDS(LES)将双字地址指针送DS(ES)和一个寄存器 指令格式: LDS OPD,OPS (*)从源操作数指示的存储单元地址开始,将连续4个字节单元中的内容分别 送入OPD和DS(ES)中, (*)即前二个字节单元中的内容送OPD指示的寄存器中,后两个字节单元中的内容送入DS (ES) 。 (*)作用是取内存中存放的地址指针 例题:设DS3200H,(33550H)3A78H,(33552H)1998H 求执行指令LDS SI,33550H 后SI和DS中的值,3、标志位传送指令 1、LAHF 标志寄存器低8位送AH指令 指令格式:LAHF 2、SAHF 累加器AH送标志寄存器低8位指令 指令格式: SAHF 3、PUSHF 标志寄存器人栈指令 指令格式: PUSHF 4、POPF 标志出栈指令 指令格式: POPF,4、输入/输出数据传送指令 IO指令可有两种格式: 直接寻址I/O指令:当I/O端口地址值小于256时用

温馨提示

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

评论

0/150

提交评论