微型计算机原理与接口技术ppt课件 第3章.ppt
《微型计算机原理与接口技术ppt课件 第3章.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术ppt课件 第3章.ppt(190页珍藏版)》请在三一办公上搜索。
1、1,第3章 指令系统,2,主要内容:,指令系统的一般概念对操作数的寻址方式六大类指令的操作原理:,操作码的含义指令对操作数的要求指令执行的结果,3,3.1 概述,4,了解:,指令及指令系统;指令的格式;指令中的操作数类型;指令字长与机器字长;指令的执行时间CISC和RISC指令系统,5,一、指令与指令系统,指令:控制计算机完成某种操作的命令指令系统:处理器所能识别的所有指令的集合指令的兼容性:同一系列机的指令都是兼容的。,6,二、指令格式,指令中应包含的信息:,运算数据的来源运算结果的去向执行的操作,7,指令格式,操作码 操作数,操作数,执行何种操作,目标操作数,源操作数,参加操作的数据或数据
2、存放的地址,8,指令格式:,零操作数指令: 操作码 单操作数指令: 操作码 操作数双操作数指令: 操作码 操作数,操作数多操作数指令: 三操作数及以上,9,三、指令中的操作数,立即数寄存器存储器,表征参加操作的数据本身,表征数据存放的地址,10,立即数操作数,立即数本身是参加操作的数据,可以是8位或16位,只能作为源操作数。 例: MOV AX,1234H MOV BL,22H立即数无法作为目标操作数立即数可以是无符号或带符号数,其数值应在可取值范围内。,11,寄存器操作数:,参加运算的数存放在指令给出的寄存器中,可以是16位或8位。例:MOV AX,BXMOV DL,CH,12,存储器操作数
3、,参加运算的数存放在存储器的某一个或某两个单元中。表现形式: ,立即数或寄存器, 中的内容是存放所寻找数据的单元的偏移地址,13,存储器操作数例,例: MOV AX,1200H MOV AL,1200H,22H,11H,1200H,偏移地址,AH AL,14,四、指令字长,指令字长:由操作码的长度、操作数地址长度、操作数个数决定。,15,五、指令的执行速度,指令的字长影响指令的执行速度对不同的操作数,指令执行的时间不同: 存储器,快!,立即数,寄存器,16,六、CISC和RISC指令系统,CISC(complex instruction set computer)指令的功能强,种类多,常用指令
4、用硬件实现;指令系统复杂,难使用。RISC指令系统指令功能较弱,种类少,格式简单;多数指令在一个计算机周期内完成;对存储器的结构和存取速度要求较高。,17,3.2 寻址方式,18,寻址方式,寻找操作数所在地址的方法 寻找转移地址的方法,本节,19,寻址方式,操作数可能的来源或存放处:由指令直接给出寄存器内存单元寻找操作数所在地址的方法可以有三种大类型指令直接给出的方式存放于寄存器中的寻址方式存放于存储器中的寻址方式,20,一、立即寻址,指令中的源操作数是立即数,即源操作数是参加操作的数据本身例:MOV AX,1200H,12H,00H,AH AL,MOV,代码段,立即寻址仅适合于源操作数,21
5、,二、寄存器寻址,参加操作的操作数在CPU的通用寄存器中。例:MOV AX,BX,AX,BX,22,三、直接寻址,指令中直接给出操作数的偏移地址默认在数据段例:MOV AX,1200H,22H,11H,1200H,偏移地址,数据段,AH AL,23,直接寻址,直接寻址方式下,操作数的段地址默认为数据段,但允许段重设,即由指令定义段。例:MOV AX,ES:1200H,24,四、寄存器间接寻址,参与操作的操作数存放在内存中,其偏移地址为指令中的寄存器的内容。,25,寄存器间接寻址例,例:MOV AX,BX 设BX=1200H,22H,11H,1200H,偏移地址,AH AL,11 22,数据段,
6、代码段,MOV,26,寄存器间接寻址,由寄存器间接给出操作数的偏移地址;存放偏移地址的寄存器称为间址寄存器,它们是:BX,BP,SI,DI操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器: BX,SI,DI BP,默认在数据段,默认在堆栈段,27,寄存器间接寻址,寄存器间接寻址,基址寻址(间址寄存器为基址寄存 器BX,BP)变址寻址(间址寄存器为变址寄存 器SI,DI),28,五、寄存器相对寻址,操作数的偏移地址为寄存器的内容加上一个位移量例:MOV AX,BX+DATA 设:DS=2000H,BX=0220H,DATA=05H 则:AX=20225H,29,六、基址、变址寻址,操作
7、数的偏移地址为一个基址寄存器的内容 + 一个变址寄存器的内容;操作数的段地址由选择的基址寄存器决定基址寄存器为BX,默认在数据段基址寄存器为BP,默认在堆栈段基址变址寻址方式与相对寻址方式一样,主要用于一维数组操作。,30,例:,执行下列指令:MOV SI,1100HMOV BX,SIMOV AX,SI+BX,22H,11H,2200H,偏移地址,AH AL,11 22,数据段,31,七、基址、变址、相对寻址,操作数的偏移地址为:基址寄存器内容+变址寄存器内容+位移量操作数的段地址由选择的基址寄存器决定。基址变址相对寻址方式主要用于二维表格操作。,32,例:,执行以下程序段:MOV DI,11
8、00HMOV BP,DIMOV AL,BPDI5,22H,11H,2205H,偏移地址,AL,22,堆栈段,33,八、隐含寻址,指令中隐含了一个或两个操作数的地址,即操作数在默认的地址中。例: MUL BL指令执行:ALBL,AX,34,3.3 8086指令系统,35,掌握:,指令码的含义指令对操作数的要求指令的对标志位的影响指令的功能,36,8086指令系统,从功能上包括六大类:,数据传送算术运算逻辑运算和移位串操作程序控制处理器控制,37,数据传送指令,通用数据传送输入输出地址传送标志位操作,38,一、通用数据传送,一般数据传送指令堆栈操作指令交换指令查表转换指令字位扩展指令,特点:该类指
9、令的执行对标志位不产生影响,39,1. 一般数据传送指令,一般数据传送指令 MOV格式:MOV dest,src操作:src例: MOV AL,BL,dest,40,一般数据传送指令,注意点:两操作数字长必须相同;两操作数不允许同时为存储器操作数;两操作数不允许同时为段寄存器;在源操作数是立即数时,目标操作数不能是段寄存器;IP和CS不作为目标操作数,FLAGS一般也不作为操作数在指令中出现。,41,一般数据传送指令例,判断下列指令的正确性:MOV AL,BXMOV AX,SI05HMOV BXBP,BXMOV DS,1000HMOV DX,09HMOV 1200,SI,42,一般数据传送指令
10、应用例,将(*)的ASCII码2AH送入内存数据段1000H开始的100个单元中。题目分析:确定首地址确定数据长度写一次数据修改单元地址修改长度值判断写完否?未完继续写入,否则结束,1063H,100B,1000H,2AH,数据段,2AH,2AH,2AH,43,一般数据传送指令应用例,程序段: MOV DI,1000H MOV CX,64H MOV AL,2AHAGAIN:MOV DI,AL INC DI ;DI+1 DEC CX ;CX-1 JNZ AGAIN ;CX0则继续 HLT,44,上段程序在代码段中的存放形式,設CS=109EH,IP=0100H,则各条指令在代码段中的存放地址如下
11、: CS : IP 机器指令 汇编指令 109E:0100 B80010 MOV DI,1000H 109E:0103 . MOV CX,64H 109E:0105 . MOV AL,2AH 109E:0107 . MOV DI,AL 109E:0109 INC DI 109E:010A DEC CX 109E:010B JNZ 0107H 109E:010D HLT,45,数据段中的分布,送上2AH后数据段中相应存储单元的内容改变如下:DS:1000 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1010 2A 2A 2A 2A 2A
12、2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1020 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1030 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2ADS:1040 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1050 2A 2A 2A 2A 2A 2A 2A 2A-2A 2A 2A 2A 2A 2A 2A 2A DS:1060 2A 2A 2A 2A 00 00 00 00 00 00 00 00
13、00 00 00 00,偏移地址DI,46,2. 堆栈操作指令,掌握:有关堆栈的概念栈顶、栈首、栈底堆栈指令的操作原理执行过程,执行结果,47,堆栈操作的原则,先进后出以字为单位,48,堆栈操作指令,压栈指令 PUSH 格式: PUSH OPRD出栈指令 POP 格式: POP OPRD,16位寄存器或存储器两单元,16位寄存器或存储器两单元,49,压栈指令 PUSH,指令执行过程:SP - 2 SP操作数高字节 SP+1操作数低字节 SP,SP,堆栈段,SP,高8位,低8位,50,压栈指令的操作,设AX=1234H,SP=1200H执行 PUSH AX 指令后堆栈区的状态:,1200H,堆栈
14、段,SP-2=11FEH,12H,34H,1200H,堆栈段,12H 34H,AX,入栈后,入栈前,51,出栈指令POP,指令执行过程: SP SP+1 SP SP+2,操作数低字节,操作数高字节,SP,堆栈段,SP,高8位,低8位,52,出栈指令的操作,执行 POP AX,12H,34H,11FEH,堆栈段,代码段,PUSH,12 34,AX,SP+2,1200H,出栈后,出栈前,53,堆栈操作指令说明,指令的操作数必须是16位的;操作数可以是寄存器或存储器两单元,但不能是立即数;不能从栈顶弹出一个字给CS;PUSH和POP指令在程序中一般成对出现;PUSH指令的操作方向是从高地址向低地址,
15、而POP指令的操作正好相反。,54,堆栈操作指令例,MOV AX,1234HMOV SP,AXMOV BX,5678HMOV BX,AHMOV BX+1,BLPUSH AXPUSH BXPUSH WORD PTRBX POP WORD PTRBXPOP AXPOP BX,如此,会使AX和BX的内容互换,55,3. 交换指令,格式: XCHG REG,MEM/REG注:两操作数必须有一个是寄存器操作数不允许使用段寄存器。例: XCHGAX,BXXCHG2000,CL,56,4. 查表指令,格式: XLAT说明:用BX的内容代表表格首地址,AL内容为表内位移量,BX+AL得到要查找元素的偏移地址操
16、作:将BX+AL所指单元的内容送AL,57,查表指令例,数据段中存放有一张ASCII码转换表,设首地址为2000H,现欲查出表中第11个代码的ASCII码,30,31,32,.,39,41,42,.,45,46,2000H+0,2000H+11,0,1,2,9,A,B,E,F,58,查表指令例,可用如下指令实现:MOV BX,2000H ;BX表首地址MOV AL,0BH ;AL序号XLAT ;查表转换执行后:AL = 42H还可用其他方法实现,如:MOV BX,2000HMOV AL,BX+0BH,59,5. 字位扩展指令,将符号数的符号位扩展到高位;指令为零操作数指令,采用隐含寻址,隐含的
17、操作数为AX及AX,DX无符号数的扩展规则为在高位补0,60,字节到字的扩展指令,格式:CBW操作:将AL内容扩展到AX规则:若最高位=1,则执行后AH=FFH若最高位=0,则执行后AH=00H,61,字到双字的扩展指令,格式:CWD操作:将AX内容扩展到DX AX规则:若最高位=1,则执行后DX=FFFFH若最高位=0,则执行后DX=0000H,62,字位扩展指令例,判断以下指令执行结果: MOV AL,44H CBW MOV AX,0AFDEH CWD MOV AL,86H CBW,63,二、输入输出指令,掌握:指令的格式及操作指令的两种寻址方式指令对操作数的要求,64,输入输出指令,专门
18、面向I/O端口操作的指令指令格式:输入指令: IN acc,PORT输出指令 :OUT PORT,acc,端口地址,65,指令寻址方式,根据端口地址码的长度,指令具有两种不同的端口地址表现形式。直接寻址端口地址为8位时,指令中直接给出8位端口地址;寻址256个端口。间接寻址端口地址为16位时,指令中的端口地址必须由DX指定;可寻址64K个端口。,66,I/O指令例,IN AX,80HMOV DX,2400HIN AL,DXOUT 35H ,AXOUT AX,35H,67,三、地址传送指令,取偏移地址指令LEA*LDS指令*LES指令,68,取偏移地址指令LEA,操作:将变量的16位偏移地址取出
19、送目标寄存器当程序中用符号地址表示内存偏移地址时,须使用该指令。格式: LEA REG,MEM 指令要求:源操作数必须是一个存储器操作数,目标操作数通常是间址寄存器。,符号地址,69,LEA指令,比较下列指令: MOV SI,DATA1 LEA SI,DATA1 MOV BX,BX LEA BX,BX,DATA1,符号地址,12H,34H,1100H,88H,77H,BX=1100H,执行结果:SI=1234H,执行结果:SI=DATA1,执行结果:BX=7788H,执行结果:BX=1100H,70,LEA指令在程序中的应用,将数据段中首地址为MEM1 的50个字节的数据传送到同一逻辑段首地址
20、为MEM2的区域存放。编写相应的程序段 。,71,LEA指令在程序中的应用,开 始,取源地址,取目标地址,送数据块长度到CL,传送一个字节,修改地址指针,修改计数值,计数值=0?,结 束,N,Y,72,LEA指令在程序中的应用,LEA SI,MEM1 LEA DI,MEM2 MOV CL,50NEXT: MOV AL,SI MOV DI,AL INC SI INC DI DEC CL JNZ NEXT HLT,73,四、标志位操作指令,LAHFSAHFPUSHFPOPF,隐含操作数AH,隐含操作数FLAGS,74,1. LAHF,SAHF,LAHF 操作:将FLAGS的低8位装入AH,CF,P
21、F,AF,ZF,CF,.,AH,FLAGS,D15,D0,D7,D0,SAHF,执行与LAHF相反的操作,75,2. PUSHF,POPF,针对FLAGS的堆栈操作指令 将标志寄存器压栈或从堆栈弹出,76,算术运算类指令,77,算术运算类指令,加法运算指令减法运算指令乘法指令除法指令,算术运算指令的执行大多对状态标志位会产生影响,78,一、加法指令,普通加法指令ADD 带进位位的加法指令ADC 加1指令INC,加法指令对操作数的要求与MOV指令相同,79,1. ADD指令,格式: ADD OPRD1,OPRD2操作: OPRD1+OPRD2,ADD指令的执行对全部6个状态标志位都产生影响,OP
22、RD1,80,ADD指令例,MOV AL,78H ADD AL,99H指令执行后6个状态标志位的状态,81,ADD指令例,01111000 + 10011001 00010001,1,标志位状态: CF= SF= AF= ZF= PF= OF=,1,0,1,0,1,0,82,2. ADC指令,指令格式、对操作数的要求、对标志位的影响与ADD指令完全一样指令的操作: OPRD1+OPRD2+CF OPRD1ADC指令多用于多字节数相加,使用前要先将CF清零。,83,ADC指令应用例求两个20B数的和,LEA SI,M1LEA DI,M2MOV CX,20CLC ;使CF=0NEXT : MOV
23、AL,SI ADC DI,ALINC SIINC DIDEC CX JNZ NEXTHLT,84,3. INC指令,格式: INC OPRD操作: OPRD+1 OPRD,常用于在程序中修改地址指针,不能是段寄存器或立即数,85,二、减法指令,普通减法指令SUB考虑借位的减法指令SBB减1指令DEC比较指令CMP求补指令NEG,减法指令对操作数的要求与对应的加法指令相同,86,1. SUB指令,格式:SUB OPRD1,OPRD2操作:OPRD1- OPRD2 OPRD1对标志位的影响与ADD指令同,87,2. SBB指令,指令格式、对操作数的要求、对标志位的影响与SUB指令完全一样指令的操作
24、:OPRD1- OPRD2- CF OPRD1,88,3. DEC指令,格式:DEC OPRD操作:OPRD - 1 OPRD,指令对操作数的要求与INC相同指令常用于在程序中修改计数值,89,应用程序例,MOV BL,2NEXT1 :MOV CX,0FFFFHNEXT2: DEC CX JNZ NEXT2 ; ZF=0转NEXT2 DEC BL JNZ NEXT1 ; ZF=0转NEXT1 HLT ; 暂停执行,90,4. NEG指令,格式:NEG OPRD操作:0 - OPRD OPRD,8/16位寄存器或存储器操作数,用0减去操作数,相当于对该操作数求补码,91,5. CMP指令,格式:
25、CMP OPRD1,OPRD2操作:OPRD1- OPRD2 指令执行的结果不影响目标操作数,仅影响标志位!,92,CMP指令,用途:用于比较两个数的大小,可作为条件转移指令转移的条件指令对操作数的要求及对标志位的影响与SUB指令相同,93,CMP指令,两个无符号数的比较: CMP AX,BX 若 AX BX 若 AX BX,CF=0,CF=1,94,CMP指令,两个带符号数的比较 CMP AX,BX 两个数的大小由OF和SF共同决定 OF和SF状态相同 AX BX OF和SF状态不同 AX BX,95,CMP指令例,LEA BX,MAX LEA SI,BUF MOV CL,20 MOV AL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机原理与接口技术ppt课件 第3章 微型计算机 原理 接口 技术 ppt 课件
链接地址:https://www.31ppt.com/p-1525508.html