《微机原理》课件第02章 指令系统.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《微机原理》课件第02章 指令系统.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理 微机原理课件第02章 指令系统 微机 原理 课件 02
- 资源描述:
-
1、1第二章第二章 8086/8088 8086/8088指令系统指令系统2 2.12.1 寻址方式寻址方式 2.22.2 8086/8088 8086/8088指令系统指令系统 2.2.1 2.2.1 数据传送指令数据传送指令 2.2.2 2.2.2 算术运算指令算术运算指令 2.2.3 2.2.3 逻辑运算和移位指令逻辑运算和移位指令 2.2.4 2.2.4 程序控制指令程序控制指令 2.2.5 2.2.5 串操作指令串操作指令 2.2.6 2.2.6 标志处理与标志处理与CPUCPU控制指令控制指令32.1 8086/8088寻址方式寻址方式指令格式:指令格式:操作码操作码 操作数操作数操作
2、码:计算机所要执行的操作,或指出操操作码:计算机所要执行的操作,或指出操作类型,是一种助记符。作类型,是一种助记符。操作数:操作的对象,可以是操作数本身或操作数:操作的对象,可以是操作数本身或存放操作数的内存存放操作数的内存(I/O端口端口)地址地址或其它有关或其它有关操作数的信息操作数的信息。4汇编语言汇编语言是一种符号语言,它用助记符是一种符号语言,它用助记符来表示操作码,用符号或符号地址来表来表示操作码,用符号或符号地址来表示操作数或操作数地址,它与机器指令示操作数或操作数地址,它与机器指令是一一对应的。是一一对应的。5寻址方式:是指令中用于说明如何寻找寻址方式:是指令中用于说明如何寻找
3、操作数的方法。操作数的方法。计算机中操作数常存放在以下几个地方:计算机中操作数常存放在以下几个地方:指令代码中指令代码中,存放常量;,存放常量;MOV AX,2070H寄存器中寄存器中:MOV AX,BX内存中内存中:MOV AX,2000HI/O端口中(仅对端口中(仅对IN/OUT指令)指令):IN AL,40H680868088的基本寻址方式有六种:的基本寻址方式有六种:寄存器寻址寄存器寻址;操作数存放在寄存器中操作数存放在寄存器中立即寻址立即寻址 ;操作数存放在内存代码段操作数存放在内存代码段直接寻址直接寻址;操作数存放在内存操作数存放在内存寄存器间接寻址;寄存器间接寻址;操作数存放在内
4、存操作数存放在内存变址寻址变址寻址;操作数存放在内存操作数存放在内存基址加变址寻址基址加变址寻址;操作数存放在内存操作数存放在内存7一、一、寄存器寻址寄存器寻址操作数放在操作数放在CPU内部的寄存器中,可以是内部的寄存器中,可以是8位位或或16位寄存器,位寄存器,注意源操作数和目的操作数的注意源操作数和目的操作数的位数应一致。位数应一致。MOV AX,BX;将将 BX中的内容传送到中的内容传送到AX中去中去MOV AL,BH;将将 BH中的内容传送到中的内容传送到AL中去中去MOV CL,AX错误错误!不匹配不匹配8二、二、立即寻址立即寻址操作数直接放在指令中,紧跟在操作码的后面,操作数直接放
5、在指令中,紧跟在操作码的后面,与操作码一起放在存储器的代码段中(与操作码一起放在存储器的代码段中(8/16位)。位)。MOV AX,2030H 对应机器码对应机器码:B8H 2030H4004H4003H4002H4001H4000H20H30HB8H4004H4003H4002H4001H4000H20H30HB8H内存偏移内存偏移地址地址单元内容单元内容注意注意别错别错!高字节高字节 高地址高地址低字节低字节 低地址低地址AXAHAL20H30H9三、三、直接寻址直接寻址 操作数存放在内存中,在指令中给出存放单元的操作数存放在内存中,在指令中给出存放单元的偏移地址偏移地址,如果不加说明,操
6、作数,如果不加说明,操作数默认在数据段默认在数据段。MOV AX,0020H;将将 数据段偏移地址为数据段偏移地址为0020H的地址中的内容传的地址中的内容传送到送到AX中去,相当于中去,相当于:MOV AX,DS:0020H注意:书写时加方括号。注意:书写时加方括号。物理地址物理地址:(DS)16指令中给的指令中给的16位偏移地址位偏移地址1012H34H56H码段码段堆栈段堆栈段数据段数据段0000H0001H0020H0021H0022HDS:0000H偏移地址偏移地址内存内容内存内容MOV AX,0020HAXAHAL3412AX:3412H11也可以指向内存中其他段的数据,这时要在相
7、也可以指向内存中其他段的数据,这时要在相应的偏移地址前加段超越符和应的偏移地址前加段超越符和“:”。MOV AL,ES:0020H;将将 扩展段中偏移地址为扩展段中偏移地址为0020H单元中的内容传单元中的内容传送到送到AL中去中去MOV SS:0100H,BX;将将 BX中的内容传送到堆栈段中偏移地址为中的内容传送到堆栈段中偏移地址为0100H、0101H的单元中去的单元中去12四、四、寄存器间接寻址寄存器间接寻址操作数存放在内存中,但其操作数存放在内存中,但其偏移地址偏移地址存放在指令存放在指令中给出的寄存器中。中给出的寄存器中。MOV AX,BXBX中存放操作中存放操作数的偏移地址数的偏
8、移地址其中,作为间接寻址的寄存器只能有其中,作为间接寻址的寄存器只能有4个:个:BX,SI,DI,BP,其他寄存器无此功能。其他寄存器无此功能。131、对、对DI、SI、BX间接寻址间接寻址2、对、对BP间接寻址间接寻址注意:用注意:用BP间接寻址,操作数默认在堆栈段间接寻址,操作数默认在堆栈段,用其余用其余3个寄存器时,操作数默认在数据段个寄存器时,操作数默认在数据段。物理地址物理地址:(DS)16DI/SI/BX中给的中给的16位偏移地址位偏移地址物理地址物理地址:(SS)16BP中给的中给的16位偏移地址位偏移地址1478H00H56H码段码段堆栈段堆栈段数据段数据段0000H0001H
9、1100H1101H1102HDS:0000H偏移地址偏移地址内存内容内存内容MOV AX,BXAXAHAL0078AX:0078HMOV BX,1100H15例例1:MOV AX,ES:BX;传送的操作数在附加段中,偏移地址存放在传送的操作数在附加段中,偏移地址存放在BX中。中。例例2:MOV BP,BX;将将BX中的内容传送到堆栈段中,其目的地的偏中的内容传送到堆栈段中,其目的地的偏移地址存放在移地址存放在BP中。中。例例3:MOV CX,2000H;错,不能对错,不能对CX间接寻址间接寻址16五、五、变址寻址变址寻址操作数在内存中,由指定的寄存器内容,加上指操作数在内存中,由指定的寄存器
10、内容,加上指令中给出的令中给出的8位或位或16位偏移量作为操作数的偏移地位偏移量作为操作数的偏移地址,计算方法:址,计算方法:偏移地址偏移地址寄存器内容寄存器内容指令中给定的偏移量指令中给定的偏移量同样,作为变址的寄存器只能有同样,作为变址的寄存器只能有4个:个:BX,SI,DI,BP,其他寄存器无此功能。其他寄存器无此功能。171、对、对DI、SI、BX变址寻址变址寻址2、对、对BP变址寻址变址寻址物理地址物理地址:(DS)16计算出的偏移地址计算出的偏移地址物理地址物理地址:(SS)16计算出的偏移地址计算出的偏移地址注意:用注意:用BP变址寻址,操作数默认在堆栈段变址寻址,操作数默认在堆
11、栈段,用其余用其余3个寄存器时,操作数默认在数据段个寄存器时,操作数默认在数据段。18MOV AX,TABDI变址寻址可以有多种格式:变址寻址可以有多种格式:MOV AX,BX+0A00H如:如:MOV AX,0200H+BX假设假设DS:3000H,BX:1000H 则操作则操作数所在地址:数所在地址:高高8位:位:31201H 低低8位:位:31200HMOV DH,SI+0200H;此时传送的操作数在此时传送的操作数在数据段数据段中,其偏移地址是中,其偏移地址是SI寄存器中的内容加上寄存器中的内容加上0200H19六、六、基址加变址寻址基址加变址寻址操作数存放在内存中,但其操作数存放在内
12、存中,但其偏移地址偏移地址是由三部分是由三部分相加而成:相加而成:基址寄存器内容基址寄存器内容变址寄存器内容变址寄存器内容偏移量偏移量基址寄存器只有基址寄存器只有2个:个:BX,默认的操作数在数据段默认的操作数在数据段;BP,默认的操作数在堆栈段默认的操作数在堆栈段。变址寄存器只有变址寄存器只有2个:个:SI和和DI。偏移量同样由指令给出。偏移量同样由指令给出。201、BX作为基地址作为基地址2、BP作为基地址作为基地址物理地址物理地址:(DS)16计算出的偏移地址计算出的偏移地址物理地址物理地址:(SS)16计算出的偏移地址计算出的偏移地址21MOV AX,VALBX+SIMOV AX,02
13、00HBXSIMOV AX,0200HBXBP;错误错误MOV AX,0200HSIDI;错误错误MOV AX,COUNTBP+SI;欲取的数据在堆栈段欲取的数据在堆栈段MOV AX,BX+SI+0200H;欲传送的操作数在欲传送的操作数在数据段数据段中,其偏移地址是中,其偏移地址是BX寄寄存器中的内容存器中的内容加上加上SI寄存器中的内容寄存器中的内容加上加上0200H2212H34H56H78H9AHBCHDEHF0H21000H21001H21002H21003H21004H21005H21006H21007H10H20H30H40H50H60H70H80H23000H23001H230
14、02H23003H23004H23005H23006H23007H1AH2AH3AH4AH5AH6AH7AH8AH31000H31001H31002H31003H31004H31005H31006H31007H1BH2BH3BH4BH5BH6BH7BH8BH33000H33001H33002H33003H33004H33005H33006H33007HDS=2000H SS=3000H BX=1000H BP=3000H MOV AX,BXMOV AX,3000HMOV AX,BXMOV AL,BPMOV SI,0002HMOV CX,BXSIMOV DL,BX+06HAX=1000HAX=2
15、010HAX=3412HAL=1BHSI=0002HCX=7856HDL=DEH232.2 8086/8088指令系统指令系统8088/8086指令系统可以分为以下六个功能组:指令系统可以分为以下六个功能组:数据传送数据传送(Data Transter)算术运算算术运算(Arithmetic)逻辑运算逻辑运算(Logic)程序控制程序控制(Program Control)串操作串操作(String Menipulation)标志处理标志处理 和和CPU控制控制(Processor Control)24一、数据传送指令一、数据传送指令1.通用数据传送指令通用数据传送指令格式:格式:MOV OPR
16、D1,OPRD2功能功能:(OPRD2)OPRD1CPU内部寄存器之间数据的传送内部寄存器之间数据的传送(除除CS、IP)立即数传送至立即数传送至CPU内部的通用寄存器组内部的通用寄存器组CPU内部的寄存器内部的寄存器(除除CS、IP)与存储器与存储器(所有寻所有寻址方式址方式)之间之间能实现用立即数给存储单元赋值能实现用立即数给存储单元赋值25 CS,IP不能作为目的操作数不能作为目的操作数 MOV CS,AX 两个段寄存器间不能直接传送两个段寄存器间不能直接传送 MOV SS,DS 立即数不能直接传送给段寄存器立即数不能直接传送给段寄存器 MOV DS,2000H 内存单元间不能直接传送内
17、存单元间不能直接传送 MOV SI,2000H 立即数不能作为目的操作数立即数不能作为目的操作数 MOV 1000H,AX注意:注意:26MOV BL,AXMOV 100,CXMOV SI,DIMOV CS,AXMOV SI,DIMOV BH,2DIMOV AX,CSMOV SS,2400HMOV BP+4,AX错误,不匹配错误,不匹配错误,立即数不能赋值错误,立即数不能赋值正确正确错误,错误,CS不能赋值不能赋值错误,内存间不能直接传送错误,内存间不能直接传送正确正确正确正确错误,段寄存器不能赋立即数错误,段寄存器不能赋立即数正确正确272.堆栈指令堆栈指令 堆栈是按先进后出的原则组织的一段
18、内存区堆栈是按先进后出的原则组织的一段内存区域,一般作临时存储器用域,一般作临时存储器用(仓库仓库)。其指针。其指针SP为为16位位的寄存器,始终指向栈顶的寄存器,始终指向栈顶(货物堆放的位置货物堆放的位置)。堆栈。堆栈的空间大小可用户指定。如:的空间大小可用户指定。如:SS的值为的值为 2000H 表示堆栈从表示堆栈从20000H处开始处开始20000H假设用户定义堆栈为假设用户定义堆栈为100个字节,个字节,则则SP自动设置为自动设置为0064H20064H100个字节个字节SP:0064H281、格式:格式:PUSH OPRD 功能功能:(OPRD)入栈入栈 FFH20000H20064
19、H100个字节个字节SP(1)SP-1SP AHSPSP12H(2)SP-1SP ALSPSP34H先减指针先减指针,再压数据再压数据,先高后低先高后低(1)SPBL SP+1SP(2)SPBH SP+1SP先出数据先出数据,再加指针再加指针,先低后高先低后高弹出低字节弹出低字节弹出高字节弹出高字节SPSP堆栈的操作有两种堆栈的操作有两种:入栈入栈/出栈出栈例:例:MOV AX,1234H PUSH AX;入栈入栈2、格式:格式:POP OPRD 功能功能:栈顶内容送栈顶内容送OPRD29注意:注意:只能对只能对16位数进行操作,一次压入弹出一个字位数进行操作,一次压入弹出一个字PUSH AH
20、;错错必须对寄存器的内容或内存单元的内容进行操作必须对寄存器的内容或内存单元的内容进行操作PUSH 2000H;错错 PUSH 2000H;对对例:设例:设SP为为0100H,SS为为2000H,PUSH BX后,后,栈顶的物理地址是:栈顶的物理地址是:20100H2H=200FEH而执行而执行POP BX后,栈顶的物理地址是:后,栈顶的物理地址是:20100H2H=20102H30MOV AX,1000HPUSH AXMOV BX,AXPUSH BX POP 1002HPOP BX12H34H56H78H9AHBCHDEHF0H21000H21001H21002H21003H21004H21
21、005H21006H21007H30000H30001H30060H30061H30062H30063H30064H例:设例:设DS 2000H SS3000H SP0064H,执行下列程序:执行下列程序:SP10H00HBX 1000H34H12H34H12HBX1000HSPSPSP313.交换指令交换指令XCHG格式:格式:XCHG OPRD1,OPRD2功能功能:(OPRD1)(OPRD2)完成完成通用寄存器之间,通用寄存器与累加器之通用寄存器之间,通用寄存器与累加器之间、与存储器之间间、与存储器之间8位位,16位位数据的相互交换。数据的相互交换。例如:例如:XCHG BL,AHXCH
22、G AX,BX1)内存之间的数据、累加器之间不可相互交换内存之间的数据、累加器之间不可相互交换2)CS,IP不能参与交换不能参与交换3)段寄存器和立即数不能作为一个操作数段寄存器和立即数不能作为一个操作数324.累加器专用指令累加器专用指令(只与只与AX或或AL有关,与有关,与AH无关无关)1)输入输出指令输入输出指令CPU存储器存储器输入输入输出输出INOUTAX或或AL格式:格式:IN AL,PORT IN AX,PORT功能:从功能:从PORT口输入数据到口输入数据到AL(AX)。格式:格式:OUT PORT,AL OUT PORT,AX功能:将功能:将AL(AX)中的内容从中的内容从P
23、ORT口输出口输出。33IN AL,40H OUT 40H,AL IN AX,40H OUT 40H,AX8位位16位位(40H)AL(41H)AHAL (40H)AH (41H)当端口地址大于当端口地址大于8位位(0FFH)时,要用时,要用DX间接寻址间接寻址MOV DX,352HIN AL,DXMOV DX,400HOUT DX,ALIN,OUT只能对只能对AL,AX操作,若传送的数据为操作,若传送的数据为16位,位,则端口地址只能取偶数。则端口地址只能取偶数。342)换码(查表)指令换码(查表)指令 XLAT将累加器将累加器AL中的内容变换为存储器(默认数据段)表格中的内容变换为存储器(
24、默认数据段)表格中的某一个值,常用来实现编码码制的转换。中的某一个值,常用来实现编码码制的转换。要求:要求:BX指向表的首地指向表的首地址的偏移地址址的偏移地址,AL中的中的内容为表中某一项与首内容为表中某一项与首地址之间的偏移量。地址之间的偏移量。在执行查表指令时,在执行查表指令时,CPU将将BX与与AL的值相的值相加作为偏移地址,将它加作为偏移地址,将它所对应单元中的内容取所对应单元中的内容取出送到出送到AL中去。中去。DS段段表格首地址表格首地址11H20H33H22HBX AL+BX+0BX+ALBX+2BX+1AL35注意:注意:使用该指令前,应先建立一张表,该表的使用该指令前,应先
25、建立一张表,该表的最大容量为最大容量为256字节。(默认在数据段)字节。(默认在数据段)例例:将十进制数将十进制数09转换成七段数码管的显示编码转换成七段数码管的显示编码+5Vabcdefgabcdefgabcdefg0100 00000abcdefg0111 1001 140H79H40H79H24H30H19H12H02H78H00H10H012345678936例例:从从5号端口输入十进制数,转换为显示编码号端口输入十进制数,转换为显示编码后从后从20号端口输出。号端口输出。40H79H24H30H19H12H02H78H00H10H01234567892000H2001H2002H20
展开阅读全文