微型计算机原理及应用第二版课件 教学课件 ppt 作者 侯晓霞 王建宇 戴跃伟 编著第02章 指令系统

上传人:w****i 文档编号:92449545 上传时间:2019-07-10 格式:PPT 页数:132 大小:793KB
返回 下载 相关 举报
微型计算机原理及应用第二版课件 教学课件 ppt 作者 侯晓霞 王建宇 戴跃伟 编著第02章 指令系统_第1页
第1页 / 共132页
微型计算机原理及应用第二版课件 教学课件 ppt 作者 侯晓霞 王建宇 戴跃伟 编著第02章 指令系统_第2页
第2页 / 共132页
微型计算机原理及应用第二版课件 教学课件 ppt 作者 侯晓霞 王建宇 戴跃伟 编著第02章 指令系统_第3页
第3页 / 共132页
微型计算机原理及应用第二版课件 教学课件 ppt 作者 侯晓霞 王建宇 戴跃伟 编著第02章 指令系统_第4页
第4页 / 共132页
微型计算机原理及应用第二版课件 教学课件 ppt 作者 侯晓霞 王建宇 戴跃伟 编著第02章 指令系统_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《微型计算机原理及应用第二版课件 教学课件 ppt 作者 侯晓霞 王建宇 戴跃伟 编著第02章 指令系统》由会员分享,可在线阅读,更多相关《微型计算机原理及应用第二版课件 教学课件 ppt 作者 侯晓霞 王建宇 戴跃伟 编著第02章 指令系统(132页珍藏版)》请在金锄头文库上搜索。

1、1,微型计算机原理及应用,2,第二章 8086/8088指令系统,3,2.1 寻址方式 2.2 8086/8088指令系统 2.2.1 数据传送指令 2.2.2 算术运算指令 2.2.3 逻辑运算和移位指令 2.2.4 程序控制指令 2.2.5 串操作指令 2.2.6 标志处理与CPU控制指令,4,2.1 8086/8088寻址方式,指令格式:,操作码 操作数,操作码:计算机所要执行的操作,或指出操作类型,是一种助记符。,操作数:操作的对象,可以是操作数本身或存放操作数的内存(I/O端口)地址或其它有关操作数的信息 。,5,汇编语言是一种符号语言,它用助记符来表示操作码,用符号或符号地址来表示

2、操作数或操作数地址,它与机器指令是一一对应的。,6,寻址方式:是指令中用于说明如何寻找操作数的方法。,计算机中操作数常存放在以下几个地方: 指令代码中,存放常量;MOV AX, 2070H 寄存器中:MOV AX, BX 内存中: MOV AX, 2000H I/O端口中(仅对IN/OUT指令): IN AL, 40H,7,80868088的基本寻址方式有六种:,寄存器寻址 ;操作数存放在寄存器中 立即寻址 ;操作数存放在内存代码段 直接寻址 ;操作数存放在内存 寄存器间接寻址;操作数存放在内存 变址寻址 ;操作数存放在内存 基址加变址寻址 ;操作数存放在内存,8,一、 寄存器寻址,操作数放在

3、CPU内部的寄存器中,可以是8位或16位寄存器,注意源操作数和目的操作数的位数应一致。,MOV AX, BX,;将 BX中的内容传送到AX中去,MOV AL, BH,;将 BH中的内容传送到AL中去,MOV CL, AX,错误! 不匹配,9,二、 立即寻址,操作数直接放在指令中,紧跟在操作码的后面,与操作码一起放在存储器的代码段中(8/16位)。,MOV AX, 2030H 对应机器码: B8H 2030H,内存偏移地址,单元内容,注意别错!,高字节 高地址 低字节 低地址,20H,30H,10,三、 直接寻址,操作数存放在内存中,在指令中给出存放单元的偏移地址,如果不加说明,操作数默认在数据

4、段。,MOV AX, 0020H,;将 数据段偏移地址为0020H的地址中的内容传送到AX中去,相当于: MOV AX, DS:0020H 注意:书写时加方括号。,物理地址: (DS)16指令中给的16位偏移地址,11,码段,堆栈段,数据段,DS:0000H,偏移地址,内存内容,MOV AX, 0020H,34,12,AX: 3412H,12,也可以指向内存中其他段的数据,这时要在相应的偏移地址前加段超越符和“ :”。,MOV AL, ES:0020H,;将 扩展段中偏移地址为0020H单元中的内容传送到AL中去,MOV SS:0100H, BX,;将 BX中的内容传送到堆栈段中偏移地址为01

5、00H、0101H的单元中去,13,四、 寄存器间接寻址,操作数存放在内存中,但其偏移地址存放在指令中给出的寄存器中。,MOV AX, BX,BX中存放操作数的偏移地址,其中,作为间接寻址的寄存器只能有4个:BX, SI, DI, BP,其他寄存器无此功能。,14,1、对DI、SI、BX间接寻址,2、对BP间接寻址,注意:用BP间接寻址,操作数默认在堆栈段,用其余3个寄存器时,操作数默认在数据段。,物理地址: (DS)16DI/SI/BX中给的16位偏移地址,物理地址: (SS)16BP中给的16位偏移地址,15,码段,堆栈段,数据段,DS:0000H,偏移地址,内存内容,MOV AX, BX

6、,00,78,AX: 0078H,MOV BX, 1100H,16,例1:MOV AX, ES:BX,;传送的操作数在附加段中,偏移地址存放在BX中。,例2:MOV BP, BX,;将BX中的内容传送到堆栈段中,其目的地的偏移地址存放在BP中。,例3: MOV CX, 2000H,;错,不能对CX间接寻址,17,五、 变址寻址,操作数在内存中,由指定的寄存器内容,加上指令中给出的8位或16位偏移量作为操作数的偏移地址,计算方法:,偏移地址寄存器内容指令中给定的偏移量,同样,作为变址的寄存器只能有4个:BX, SI, DI, BP,其他寄存器无此功能。,18,1、对DI、SI、BX变址寻址,2、

7、对BP变址寻址,物理地址: (DS)16计算出的偏移地址,物理地址: (SS)16计算出的偏移地址,注意:用BP变址寻址,操作数默认在堆栈段,用其余3个寄存器时,操作数默认在数据段。,19,MOV AX, TABDI,变址寻址可以有多种格式:,MOV AX, BX+0A00H,如:MOV AX, 0200H+BX,假设DS:3000H, BX: 1000H 则操作数所在地址:,高8位: 31201H 低8位: 31200H,MOV DH, SI+0200H,;此时传送的操作数在数据段中,其偏移地址是SI寄存器中的内容加上0200H,20,六、 基址加变址寻址,操作数存放在内存中,但其偏移地址是

8、由三部分相加而成:,基址寄存器内容变址寄存器内容偏移量,基址寄存器只有2个:BX,默认的操作数在数据段;BP,默认的操作数在堆栈段。,变址寄存器只有2个:SI和DI。 偏移量同样由指令给出。,21,1、BX作为基地址,2、BP作为基地址,物理地址: (DS)16计算出的偏移地址,物理地址: (SS)16计算出的偏移地址,22,MOV AX, VALBX+SI,MOV AX, 0200HBXSI,MOV AX, 0200HBXBP;错误,MOV AX, 0200HSIDI;错误,MOV AX, COUNTBP+SI,;欲取的数据在堆栈段,MOV AX, BX+SI+0200H,;欲传送的操作数在

9、数据段中,其偏移地址是BX寄存器中的内容加上SI寄存器中的内容加上0200H,23,DS= 2000H SS=3000H BX=1000H BP=3000H,MOV AX, BX MOV AX, 3000H MOV AX, BX MOV AL, BP MOV SI, 0002H MOV CX, BXSI MOV DL, BX+06H,AX= 1000H AX= 2010H AX= 3412H AL= 1BH SI= 0002H CX= 7856H DL= DEH,24,2.2 8086/8088指令系统,8088/8086指令系统可以分为以下六个功能组:,数据传送(Data Transter)

10、 算术运算(Arithmetic) 逻辑运算(Logic) 程序控制(Program Control) 串操作(String Menipulation) 标志处理 和CPU控制(Processor Control),25,一、数据传送指令,1. 通用数据传送指令,格式:MOV OPRD1, OPRD2 功能: (OPRD2) OPRD1 CPU内部寄存器之间数据的传送(除CS、IP) 立即数传送至CPU内部的通用寄存器组 CPU内部的寄存器(除CS、IP)与存储器(所有寻址方式)之间 能实现用立即数给存储单元赋值,26,CS,IP不能作为目的操作数 MOV CS, AX 两个段寄存器间不能直接

11、传送 MOV SS, DS 立即数不能直接传送给段寄存器 MOV DS,2000H 内存单元间不能直接传送 MOV SI, 2000H 立即数不能作为目的操作数 MOV 1000H, AX,注意:,27,MOV BL, AX MOV 100, CX MOV SI, DI MOV CS, AX MOV SI, DI MOV BH, 2DI MOV AX, CS MOV SS, 2400H MOV BP+4, AX,错误,不匹配 错误,立即数不能赋值 正确 错误,CS不能赋值 错误,内存间不能直接传送 正确 正确 错误,段寄存器不能赋立即数 正确,28,2. 堆栈指令,堆栈是按先进后出的原则组织的

12、一段内存区域,一般作临时存储器用(仓库)。其指针SP为16位的寄存器,始终指向栈顶(货物堆放的位置)。堆栈的空间大小可用户指定。如:,SS的值为 2000H 表示堆栈从20000H处开始,20000H,假设用户定义堆栈为100个字节,则SP自动设置为0064H,20064H,100个字节,SP:0064H,29,1、格式:PUSH OPRD 功能: (OPRD)入栈,20000H,20064H,100个字节,SP,(1) SP-1SP AHSP,SP,12H,(2) SP-1SP ALSP,SP,34H,先减指针, 再压数据, 先高后低,(1) SPBL SP+1SP,(2) SPBH SP+

13、1SP,先出数据, 再加指针,先低后高,弹出低字节,弹出高字节,SP,SP,堆栈的操作有两种:入栈/出栈,例: MOV AX, 1234H PUSH AX;入栈,2、格式:POP OPRD 功能: 栈顶内容送OPRD,30,注意: 只能对16位数进行操作,一次压入弹出一个字,PUSH AH;错,必须对寄存器的内容或内存单元的内容进行操作,PUSH 2000H;错 PUSH 2000H; 对,例:设SP为0100H,SS为2000H, PUSH BX后,栈顶的物理地址是:,20100H2H=200FEH,而执行POP BX后,栈顶的物理地址是:,20100H2H=20102H,31,MOV AX

14、, 1000H PUSH AX MOV BX, AX PUSH BX POP 1002H POP BX,例:设DS 2000H SS3000H SP0064H,执行下列程序:,SP,10H,00H,BX 1000H,34H,12H,34H,12H,BX1000H,SP,SP,SP,32,3. 交换指令XCHG,格式:XCHG OPRD1, OPRD2,功能:(OPRD1) (OPRD2),完成通用寄存器之间,通用寄存器与累加器之间、与存储器之间8位,16位数据的相互交换。,例如:XCHG BL, AH,XCHG AX, BX,内存之间的数据、累加器之间不可相互交换 CS,IP不能参与交换 段寄

15、存器和立即数不能作为一个操作数,33,4. 累加器专用指令(只与AX或AL有关,与AH无关),1)输入输出指令,CPU,存储器,输入,输出,IN,OUT,AX或AL,格式:IN AL , PORT IN AX, PORT 功能:从PORT口输入数据到AL(AX)。 格式:OUT PORT , AL OUT PORT, AX 功能:将AL(AX)中的内容从PORT口输出。,34,IN AL, 40H,OUT 40H , AL,IN AX, 40H,OUT 40H , AX,8位,16位,(40H) AL (41H) AH,AL (40H) AH (41H),当端口地址大于8位(0FFH)时,要用DX间接寻址,MOV DX, 352H IN AL, DX,MOV DX, 400H OUT DX, AL,IN, OUT只能对AL, AX操作,若传送的数据为16位,则端口地址只能取偶数。,35,2) 换码(查表)指令 XLAT,将累加器AL中的内容变换为存储器(默认数据段)表格中的某一个值,常用来实现编码码制的转换。,要求:BX指向表的首地址的偏移地址,AL中的内容为表中某一项与首地址之间的偏移量。 在执行查表指令时,CPU将BX与AL的值相加作为偏移地址,将它所对应单元中的内容取出送到AL中去。,DS段,表格首地址,A

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

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

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