微机原理 第三章 指令系统电子教案

上传人:yulij****0329 文档编号:141712896 上传时间:2020-08-11 格式:PPT 页数:72 大小:461KB
返回 下载 相关 举报
微机原理 第三章 指令系统电子教案_第1页
第1页 / 共72页
微机原理 第三章 指令系统电子教案_第2页
第2页 / 共72页
微机原理 第三章 指令系统电子教案_第3页
第3页 / 共72页
微机原理 第三章 指令系统电子教案_第4页
第4页 / 共72页
微机原理 第三章 指令系统电子教案_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《微机原理 第三章 指令系统电子教案》由会员分享,可在线阅读,更多相关《微机原理 第三章 指令系统电子教案(72页珍藏版)》请在金锄头文库上搜索。

1、第3章 微型计算机指令系统,3.1 80X86/Pentium的寻址方式 立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、基址寻址、基址变址寻址 3.2 8086/8088指令系统 数据传送指令、算术运算指令、逻辑运算和移位指令、串操作指令、控制转移指令、处理器控制指令 *3.3 80X86/Pentium指令系统,3.1 80X86/Pentium的寻址方式,立即寻址 寄存器寻址 直接寻址 寄存器间接寻址 基址寻址 变址寻址 基址加变址寻址 *比例变址寻址 *基址加比例变址寻址 *带偏移量的基址加比例变址寻址,寻址方式,寻址方式:指CPU指令中规定的寻找操作数所在的地址的方式。 操

2、作数: MOV AL , 05H 操作码 目的操作数 , 源操作数 立即数:操作数包含在指令中 寄存器寻址:操作数包含在CPU的某个内部寄存器中 存储器寻址:操作数包含在内存的数据区 操作数引用时的字节顺序: 若存放的信息是字节,则按顺序存放 若存放的信息是字,则将字的低位字节存放在低地址,高位字节存放在高地址,寻址方式之二:寄存器寻址,操作数包含在指令规定的8位、16位寄存器中。 寄存器寻址由于无需从存储器中取操作数,故执行速度快。 MOV SS ,AX,寻址方式之三:直接寻址,寻址方式之三:直接寻址,如果操作数在DS以外的其他段(CS,SS,ES)中,指令中必须指明段寄存器(段超越) MO

3、V AX, ES:3000H,寻址方式之四:寄存器间接寻址,操作数地址的偏移量(有效地址EA)存放在寄存器中。以SI,DI, BX间接寻址,默认操作数在DS段中;以BP间接寻址,默认操作数在SS段中。 可以加段超越前缀的方法进行其他段进行寻址,寻址方式之五:基址寻址,EA=基址寄存器+偏移量 基址寄存器:BX(默认DS)和BP(默认SS)。,寻址方式之六:变址寻址,EA=变址寄存器+偏移量 变址寄存器:源变址寄存器SI、目的变址寄存器DI(默认DS)。 MOV AL,TABLESI MOV AL,SI+TABLE MOV AL,SI+TABLE,寻址方式之七:基址变址寻址,基址加变址:EA=基

4、址寄存器+变址寄存器 带偏移量的基址加变址: EA=基址寄存器+变址寄存器+偏移量,*寻址方式之八:32位机的寻址方式,比例变址寻址 EA=变址寄存器*比例因子+偏移量 MOV EAX,TABLEESI*4 基址加比例变址寻址 EA=基地址寄存器+变址寄存器*比例因子+偏移量 MOV ECX,EDX*4EAX 带偏移量的基址加比例变址寻址 EA=基地址寄存器+变址寄存器*比例因子+偏移量 MOV AX,EDI*8+ECX+40 8个32位通用寄存器均可作寄存器间接寻址、基址寄存器和变址寄存器(除ESP外),EBP、ESP缺省为SS段,其他缺省为DS段,寻址方式总结,寻址方式: 1. 立即寻址

5、MOV AX, 1234H 2. 寄存器寻址MOV AX, BX 3. 直接寻址MOV AX, 1234H 4. 寄存器间接寻址MOV AX, BX 5. 基址寻址MOV AX, BX+100H 6. 变址寻址MOV AX, SI+100H 7. 基址加变址寻址MOV AX, BX+SI+100H 8.比例变址寻址 MOV EAX,TABLEESI*4 9.基址加比例变址寻址 MOV ECX,EDX*4EAX 10.带偏移量的基址加比例变址寻址 MOV AX,EDI*8+ECX+40,操作数的分类,立即数操作数:绿 注1:立即数只能作为源操作数,不能作为目标操作数。 注2:不能用一条指令简单地

6、将立即数传送到段寄存器。 寄存器操作数:红 注3:有些指令没有指定使用的寄存器,但实际上隐含这特定的寄存器操作数。 存储器操作数:黄 注4:不允许源操作数和目标操作数同时为存储器操作数。 注5:存储器操作数的物理地址的计算是将段基地址左移四位加上有效地址EA(偏移地址)得到的。但是段寄存器和有效地址的配对是有规定的,如表3-2(P99) 注6:执行速度:寄存器操作数 立即数操作数 存储器操作数,指令的机器码和执行时间,机器码:任何一条指令都是以特定的若干个(16)字节的代码形式存在存储器的码段中。同样的指令(如MOV)由于寻址方式和操作数的不同,机器码的长度也不同。 执行时间:指令的指令时间包

7、括取址、译码和执行的时间,跟该指令的机器码的长短没有直接关系。,3.2 8086/8088指令系统,数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 控制转移指令 处理器控制指令,数据传送指令之一:通用传送指令,(1)MOV指令 MOV dest,src ;(dest)(src) 1)源操作数可以是8/16/32位的立即数、寄存器操作数、内存操作数。目标操作数不允许为立即数,其余同源操作数。 2)源、目操作数类型必须匹配 MOV BYTE PTR BX, 12H 3) 不能向段寄存器写立即数 MOV AX, 2000 MOV DX, AX 4) 以CS为目标的一切传送指令都是非法的

8、5) 段寄存器之间不能直接传送数据,数据传送指令之一:通用传送指令,例:合法指令 MOV AL,30H ;立即数传送到寄存器 MOV AL, BL ;寄存器之间传送字节数据 MOV SI, BX+62H ;寄存器和存储器之间传送数据 例:不合法的指令 MOV 6234H,AX ;立即数不能用于目的操作数 MOV CS,AX ;CS不能用于目的操作数 MOV IP,AX ;IP不能用于目的操作数 MOV DS,4234H ;立即数不能直接传送给段寄存器 MOV AL,BX ;源操作数与目的操作数的位数必须一致 MOV BUF1,BUF2 ;不能在两个存储器单元之间传送数据 MOV DS,ES ;

9、不能在两个段寄存器之间传送数据,数据传送指令之一:通用传送指令,(2)堆栈操作指令 PUSH src ; (SP)(SP)-2 (SP)+1:(SP)(src) 进栈指令,先调整堆栈指针,再把源操作数压栈 PUSH AX POP dest ;(dest)(SP)+1:(SP) (SP)(SP)-2 出栈指令,先将栈顶2/4字节送目标操作数,再调整堆栈指针 POP AX 注:堆栈指令指对字或双字进行操作,不对字节进行操作,一般成对使用。操作数为16位寄存器、段寄存器或存储单元,数据传送指令之一:通用传送指令,PUSH AX,数据传送指令之一:通用传送指令,POP AX,低地址,高地址,12H,3

10、4H,34H,12H,AX,堆栈段,SS,SP指向栈顶,SP+1,SP+1,数据传送指令之一:通用传送指令,(3)交换指令 XCHG dest,src;(dest)(src) 交换指令,源、目不能同为内存操作数,只能在寄存器之间、寄存器和存储器之间交换,段寄存器不能作为一个操作数进行交换。 合法交换指令 XCHG AL,CL ;字节交换 XCHG BX,SI ;字交换 XCHG AX,BX+SI ;寄存器和存储器之间交换数据 非法的交换指令 XCHG AX,6234H ;寄存器与立即数之间不能交换 XCHG BUF1,BUF2 ;存储器单元与存储器单元之间不能交换 XCHG ADDR,4234

11、H ;存储器单元与立即数之间不能交换 XCHG CS,DATBX ;不能与CS(或IP)寄存器进行交换,数据传送指令之一:通用传送指令,(4)XLAT 查表指令 XLAT src_table;(AL)(BX)+(AL) 查表指令,用来取表中某指定数的值 执行指令前:序号 AL 表首址 BX 执行指令后:AL 表中序号对应的字节内容 TABLE DB 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 MOV BX, OFFSET TABLE MOV AL, 5 XLAT (或XLAT TABLE) 执行后AL=53,数据传送指令之二:地址传送指令,LEA reg16,

12、mem16 有效地址传送指令,源操作数为内存操作数 内存单元的有效地址目标寄存器 LEA SI, AREA1 = MOV SI,OFFSET AREA1 LDS/LES reg16,mem32 地址指针传送指令,EAreg16, EA+2DS/ES 例: TABLE DD 12345678H LDS BX,TBALE 5678BX, 1234HDS,数据传送指令之三:标志传送指令,LAHF 标志寄存器低字节AH,不影响标志位 SAHF AH 标志寄存器低字节,影响标志寄存器低8位 PUSHF:16位标志寄存器内容入栈 POPF:16位标志寄存器出栈,AH,FLAG,LAHF,SAHF,数据传送

13、指令之四:输入输出指令,完成累加器AL/AX和I/O端口之间的数据传送 IN acc,port;(acc)(port) 当端口地址小于256时,直接寻址,最多可访问256个端口 例:IN AL,60H(将60H口地址的字节送给AL) IN AX,60H(将60H口地址的字送给AX) 端口地址大于或等于256时,间接寻址,端口地址必须放在DX寄存器中,最多可访问65536个端口 例:MOV DX,3DAH IN AL,DX (将3DAH口地址的字节送给AL) OUT port,acc ;(port)(acc) 例:MOV DX,3DAH OUT DX,AX,算术运算指令之一:加法运算指令,ADD

14、 dest,src;(dest)(dest)+(src) 加法指令 例 不带进位加法指令 ADD CL,20H ;(CL)(CL)+20H ADD AX,SI ;(AX)(AX)+(SI) ADD DATA BX,AL ;(BX)+DATA)(BX)+DATA)+(AL) ADD DX,BX+SI ;(DX)(DX)+(BX)+(SI) ADC dest,src;(dest)(dest)+(src)+(CF) 带进位位加法 例 带进位加法指令 ADC AX,SI ;(AX)(AX)+(SI)+CF ADC BX,3000H ;(BX)(BX)+3000H+CF ADC AX,DATSI ;(A

15、X)(AX)+(SI+DAT)+CF 以上两条指令影响A,C,O,P,S,Z 6个标志位。注意带进位位加法中的进位位的值是上一条运算指令产生的结果(P105),算术运算指令之一:加法运算指令,ADC指令用于多字节加法运算 例:有两个4字节的无符号数相加: 2C56F8AC+309E47BE=? 设被加数、加数分别存放在DS:0000及DS:0004开始的两个存储区内,结果放回DS:0000 MOV AX,0004 ADD 0000,AX ;低字相加 MOV AX,0006 ADC 0002,AX ;高字相加,包括低字的进位,算术运算指令之一:加法运算指令,INC dest;(dest)(des

16、t)+1 加1指令 例 加1指令 INC BX ;(BX)(BX)+1 INC BYTE PTR DI+100H ;将(DI)100H所指的;字节单元内容加1 影响A,O,P,S,Z 5个标志位,对CF无影响 操作数为寄存器或内存,算术运算指令之一:加法运算指令,AAA 加法的ASCII调整指令 对在AL中的由两个非压缩的BCD码相加的结果进行校正,结果仍以非压缩BCD码的形式存放,各位在AL,十位在AH。 DAA 加法的十进制调整指令 对在AL中的由两个压缩的BCD码相加的结果进行校正,产生一个正确的BCD码的和。,算术运算指令之一:加法运算指令,例 两个非压缩BCD码的加法运算,设(AH)=0

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

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

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