微机原理与接口技术 教学课件 ppt 作者 李燕萍 华继钊 凌海云 03

上传人:E**** 文档编号:89183943 上传时间:2019-05-20 格式:PPT 页数:49 大小:565.01KB
返回 下载 相关 举报
微机原理与接口技术 教学课件 ppt 作者 李燕萍 华继钊 凌海云 03_第1页
第1页 / 共49页
微机原理与接口技术 教学课件 ppt 作者 李燕萍 华继钊 凌海云 03_第2页
第2页 / 共49页
微机原理与接口技术 教学课件 ppt 作者 李燕萍 华继钊 凌海云 03_第3页
第3页 / 共49页
微机原理与接口技术 教学课件 ppt 作者 李燕萍 华继钊 凌海云 03_第4页
第4页 / 共49页
微机原理与接口技术 教学课件 ppt 作者 李燕萍 华继钊 凌海云 03_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《微机原理与接口技术 教学课件 ppt 作者 李燕萍 华继钊 凌海云 03》由会员分享,可在线阅读,更多相关《微机原理与接口技术 教学课件 ppt 作者 李燕萍 华继钊 凌海云 03(49页珍藏版)》请在金锄头文库上搜索。

1、2019/5/20,1,第3章 8086的指令系统,2019/5/20,2,本章主要内容,3.1 8086的寻址方式,3.2 8086的指令系统,2019/5/20,3,3.1 8086的寻址方式,2019/5/20,4,3.1.1 操作数寻址方式,计算机的核心部件是CPU,CPU是通过执行指令序列来解决问题的,因此每种CPU都有一组指令集提供给用户使用,这组指令集就称为CPU的指令系统。每一条指令都由操作码和操作数两部分构成。8086的寻址方式较为丰富,总体来说操作数的位置可以分为三类。 (1)操作数包含在指令中,这种寻址方式称为立即寻址,这种操作数就称为立即数。 (2)操作数包含在CPU的

2、某个内部寄存器中,这种寻址方式称为寄存器寻址。 (3)操作数在内存的数据区中,在8086中任何内存的地址都是由两部分组成:段基址和偏移量。,2019/5/20,5,1立即寻址(Immediate Addressing) 当操作数就在指令中时为立即寻址,该操作数称为立即数,用data 8或data16表示。立即数可以是数值、字符,也可以是由数值和运算符构成的表达式。 2寄存器寻址(Register Addressing) 这种寻址方式的操作数放在寄存器中,用寄存器的符号来表示。对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI、SP或者BP等;对于8位操作数,则用寄存器AH、AL、

3、BH、BL、CH、CL、DH或者DL。,2019/5/20,6,3直接寻址(Direct Addressing) 操作数总是在存储器中,其有效地址EA由指令以具体数值的形式直接给出。要注意的是指令中有效地址必须加一个方括号,以便与立即数相区别。 4寄存器间接寻址(Register Indirect Addressing) 操作数的有效地址EA直接取自某一个基址寄存器或变址寄存器。可以使用BP、BX、SI和DI这个16位的寄存器作为间接寻址寄存器,并且规定使用BP寄存器时,约定访问的是由SS指示的堆栈段,而使用BX、SI和DI寄存器时,约定访问的是由DS指示的数据段。,2019/5/20,7,5

4、寄存器相对寻址(Register Relative Addressing) 操作数的有效地址是一个基址或变址寄存器的内容与指令中指定的位或16位位移量(简记为disp)之和。同样,当指令中指定的寄存器是BX、SI或DI时,段寄存器使用DS,当指定寄存器是BP时,段寄存器使用SS。 6基址变址寻址(Based Indexed Addressing) 操作数的有效地址是一个基址寄存器(BX或BP)和一个变址寄存器(SI或DI)的内容之和。在这种方式中,只要用上BP寄存器,那么默认的段寄存器就是SS;在其他情况下,默认的段寄存器均为DS。,2019/5/20,8,7基址变址相对寻址(Relative

5、 based indexed addressing) 使用基址变址寻址方式时允许带一个8位或16位的位移量disp,称为基址变址相对寻址。 例如: MOV AX,dispBXSI ;源操作数的物理地址DS10HBXSIdisp 设DS2000H,BX1500H,SI0300H,disp0200H,(21A00H)26BFH,则物理地址DS10HBXSIdisp20000H1500H0300H0200H21A00H。指令执行后,AX26BFH。,2019/5/20,9,3.1.2 转移地址的寻址方式,指令系统中有一类指令可以用来控制程序的执行顺序,从而实现分支、循环以及子程序等复杂的程序结构,这

6、类指令属于控制转移类指令,它们通过修改指令指针IP以及代码段寄存器CS的值来实现转移。与前面所述的一般数据的寻址方式不同,转移类指令需要用一定的寻址方式指出转移的目的地址,这就是转移地址的寻址方式。,2019/5/20,10,1段内直接寻址 转向的有效地址是当前IP寄存器的内容和指令中指定的8位或16位位移量之和。 指令的汇编语言格式表示为 JMP NEAR PTR PROGIA JMP SHORT QUEST 2段内间接寻址 转移目的指令的偏移地址存放在寄存器或存储器中,而此寄存器或存储器可以用一般数据的寻址方式给出。,2019/5/20,11,3段间直接寻址 在指令中直接提供了转向段地址和

7、偏移地址,所以只要用指令中指定的偏移地址取代IP寄存器的内容,用指令中指定的段地址取代CS寄存器的内容就完成了从一个段到另一个段的转移操作。 指令的汇编语言格式可表示为 JMP FAR PTR NEXTROUTINT 其中,NEXTROUTINT为转向的符号地址,FAR PTR则是表示段间转移的操作符。,2019/5/20,12,4段间间接寻址 用存储器中两个相继字的内容来取代IP和CS寄存器中的原始内容,以达到段间转移的目的。这里,存储单元的地址是由指令指定除立即数方式和寄存器方式以外的任何一种数据寻址方式取得。 这种指令的汇编语言格式可表示为 JMP DWORD PTRINTERSBX 其

8、中INTERSBX说明数据寻址方式为直接变址寻址方式,DWORD PTR 为双字操作符,说明转向地址需取双字为段间转移指令。,2019/5/20,13,3.1.3 隐含寻址方式,除了上述常见的寻址方式以外,还有一类特殊的寻址方式,称为隐含寻址,即指令中不出现操作数,但指令本身隐含指示了操作数的来源。如串操作指令MOVS,其源操作数隐含由DS:SI寄存器间接寻址,而目的操作数则隐含由ES:DI寄存器间接寻址。,2019/5/20,14,3.2 8086的指令系统,2019/5/20,15,3.2.1 数据传送指令,1通用数据传送指令 1)MOV指令 MOV指令是形式最简单、用得最多的指令。它允许

9、在CPU的寄存器之间、存储器和寄存器之间传送字节和字数据,也可以将立即数传送到寄存器或存储器中。 格式:MOV OPRD1,OPRD2 说明:MOV是操作码,OPRD1和OPRD2分别是目的操作数和源操作数。 功能:将源操作数(字或字节)传送到目的操作数,源操作数保持不变。,2019/5/20,16,2)堆栈操作指令 堆栈是以“先进后出”方式工作的一个存储区,栈区的段地址由SS寄存器的内容确定,而栈顶位置由堆栈指针SP寄存器的内容来确定。堆栈操作指令包括入栈(PUSH)和出栈(POP)指令两类。 (1)入栈操作。 格式:PUSH OPRD ;OPRD为源操作数 (2)出栈操作。 格式:POP

10、OPRD; OPRD为目的操作数,2019/5/20,17,3)数据交换指令XCHG 格式:XCHG OPRD1, OPRD2 功能:完成数据交换。把一个字节或一个字的源操作数与目的操作数相互交换。交换能在通用寄存器与累加器之间、通用寄存器之间、通用寄存器与存储器之间进行。但段寄存器和立即数不能作为一个操作数,也不能在累加器之间进行。 4)字节转换指令XLAT 格式:XLAT 转换表 功能:用查表方式将一种代码转换(翻译)成另一种代码。XLAT指令有两种格式,第一种格式中的“转换表”为表格的首地址,一般用符号表示,以提高程序的可读性,但它也可以省略,即用第二种格式。,2019/5/20,18,

11、2输入/输出(I/O)指令 1)输入指令IN 格式: IN AL,端口地址n ;ALn IN AX,端口地址n ;AXn1n IN AL,DX ;ALDX IN AX,DX ;AXDX1DX 功能:从I/O端口输入数据至AL或AX。允许把一个字节由一个输入端口传送到AL中,或者把一个字由一个输入端口传送到AX中。若端口地址超过256(00FFH),则必须用DX寄存器来保存该端口地址,这样用DX作端口地址时,最多可寻找64K(0000FFFFH)个端口。,2019/5/20,19,2)输出指令OUT 格式: OUT 端口地址n,AL ;ALn OUT 端口地址n,AX ;AXn1n OUT DX

12、,AL ;ALDX OUT DX,AX ;AXDX1DX 功能:将AL或AX的内容输出至I/O端口。可以将AL或AX中的内容传送到一个输出端口,端口寻址方式与IN指令相同。,2019/5/20,20,3地址目标传送指令 1)取有效地址指令LEA 格式:LEA OPRD1,OPRD2 2)双字指针送寄存器和DS指令LDS 格式:LDS OPRD1,OPRD2 3)双字指针送寄存器和ES指令LES 格式:LES OPRD1,OPRD2,2019/5/20,21,4标志传送指令 1)标志传送AH指令LAHF 这条指令的功能是将标志寄存器的低8位数据传送至AH寄存器。 2)AH送标志寄存器低字节指令S

13、AHF 这条指令与LAHF指令的操作相反,可以将寄存器AH的内容送至标志寄存器的低8位。 3)标志入栈指令PUSHF 将标志寄存器的内容压入堆栈顶部,同时修改堆栈指针,但不影响标志位。 4)标志出栈指令POPF 把当前堆栈顶部的一个字,传送到标志寄存器,同时修改堆栈指针,影响标志位。,2019/5/20,22,3.2.2 算术运算指令,1加法指令 1)加法指令ADD 格式:ADD OPRD1,OPRD2 2)带进位的加法指令ADC 格式:ADC OPRD1,OPRD2 3)增量指令INC 格式:INC OPRD,2019/5/20,23,例如: ADD AL,10H ;ALAL10H ADD

14、BX,3000H ;通用寄存器与存储单元内容相加 例如: MOV AX,7248H ;将立即数7248H送AX寄存器 ADD AX,91F9H ;(AX)0441H,且CF1 MOV BX,01 ADC BX,02 执行结果为 (AX)0441H,(BX)04 各标志位的值为:ZF0,AF1,PF1,CF1,OF0,SF0,2019/5/20,24,2减法指令 1)减法指令SUB 格式:SUB OPRD1,OPRD2 2)带借位的减法指令SBB 格式:SBB OPRD1,OPRD2 3)减量指令DEC 格式:DEC OPRD 4)取补指令NEG 5)比较指令CMP,2019/5/20,25,例

15、如: SUB CX,BX ;CX CX-BX SUB BP2,CL ;将SS段的BP2所指的单元中的值减去CL中的值,结果放在BP2所指的堆栈单元中 例如: MOV CX,2100H NEG CX MOV DX,CX DEC DX 执行结果:CX0DF00H,DX0DEFFH,SF1,CF1,ZF0,PF1,AF0,OF0。,2019/5/20,26,3乘法指令 1)无符号数乘法指令MUL 格式:MUL OPRD ;OPRD为源操作数 例如: MOV AL,FIRST MUL SECOND ;结果为AXFIRSTSECOND MOV AX,THIRD; MUL AX ;结果为 DX:AXTHIRDTHIRD MOV AL,30H CBW ;字扩展AX30H MOV BX,2000H MUL BX,2019/5/20,27,2)符号数乘法指令IMUL 格式:IMUL OPRD; OPRD 为源操作数 例如: MOV AL,0C8H MOV BL,43H IMUL BL 指令执行结果为AXF158H。,2019/5/20,28,4除法指令 1)无符号数除法指令DIV 格式:DIV OPRD 2)整数除法指令IDIV 格式:IDIV OPRD 例如: AX

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号