微机原理与接口技术指令系统幻灯片.ppt
《微机原理与接口技术指令系统幻灯片.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术指令系统幻灯片.ppt(108页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理与接口技术指令系统第1页,共108页,编辑于2022年,星期六2023/1/71第一节第一节指令的基本结构和执行时间指令的基本结构和执行时间n指令指令n指令系统指令系统n80868088CPU的指令系统共包含的指令系统共包含92种基本指令,种基本指令,按照功能可将它们分为按照功能可将它们分为6大类:大类:数据传送指令数据传送指令算术运算指令算术运算指令逻辑运算和移位指令逻辑运算和移位指令串操作指令串操作指令控制转移指令控制转移指令处理器控制指令处理器控制指令第2页,共108页,编辑于2022年,星期六2023/1/72 n8086指令的一般格式如下:指令的一般格式如下:操作码操作码操作
2、数操作数,操作数操作数n操作数主要分为操作数主要分为3类:类:立即数操作数、立即数操作数、寄存器操作数寄存器操作数 存储器操作数。存储器操作数。第3页,共108页,编辑于2022年,星期六2023/1/73 n表表3-2隐含及允许超越的段寄存器隐含及允许超越的段寄存器存储器操作的类型存储器操作的类型隐含的段寄存器隐含的段寄存器允许超越的段寄存器允许超越的段寄存器偏移地址偏移地址取指令取指令CS无无IP堆栈操作堆栈操作SS无无SP通用数据读写通用数据读写DSCS,ES,SS有效地址有效地址源数据串源数据串DSCS,ES,SSSI目标数据串目标数据串ES无无DI用用BP作为基址寄存器作为基址寄存器
3、SSCS,DS,ES有效地址有效地址第4页,共108页,编辑于2022年,星期六2023/1/74 n指令的执行时间指令的执行时间一条指令的执行时间包括取指令、取操作数、一条指令的执行时间包括取指令、取操作数、执行指令及传送结果几部分,单位用时钟执行指令及传送结果几部分,单位用时钟周期表示周期表示n寄存器操作数的指令执行速度最快,立即寄存器操作数的指令执行速度最快,立即数操作数次之,存储器操作数指令的执行数操作数次之,存储器操作数指令的执行速度最慢速度最慢第5页,共108页,编辑于2022年,星期六2023/1/75第二节第二节8086的寻址方式的寻址方式一、立即寻址一、立即寻址(Immedi
4、ate Addressing)n主要用于给寄存器主要用于给寄存器或存储单元赋初值或存储单元赋初值nMOVAX,3508H第6页,共108页,编辑于2022年,星期六2023/1/76 二、直接寻址二、直接寻址(DirectAddressing)n直接寻址指令在指令的操作码后面直接直接寻址指令在指令的操作码后面直接给出操作数的给出操作数的16位偏移地址。位偏移地址。n此偏移地址也称为有效地址此偏移地址也称为有效地址EA(EffectiveAddress),与指令的操与指令的操作码一起,存放在内存的代码段作码一起,存放在内存的代码段.n低低8位存放在低地址单元,高位存放在低地址单元,高8位存放在位
5、存放在高地址单元。高地址单元。第7页,共108页,编辑于2022年,星期六2023/1/77 直接寻址:nMOV AX,3200H如果DS=5000H,则所寻找的操作数的物理地址:5000H10H+3200H=50000H+3200H =53200H 第8页,共108页,编辑于2022年,星期六2023/1/78 n段超越段超越:MOVBX,ES:2100H第9页,共108页,编辑于2022年,星期六2023/1/79 三、寄存器寻址三、寄存器寻址(RegisterAddressing)n操作数为操作数为CPU的内部寄存器的内部寄存器n指令在执行过程中不必通过指令在执行过程中不必通过访问内存而
6、取得操作数,因访问内存而取得操作数,因此执行速度很快。此执行速度很快。nMOV DS,AX n 第10页,共108页,编辑于2022年,星期六2023/1/710 四、寄存器间接寻址四、寄存器间接寻址(RegisterIndirectAddressing)nMOVAX,DIn指令中的指令中的16位寄存器的内容不是操作数,而是操作数位寄存器的内容不是操作数,而是操作数的偏移地址,操作数本身则在存储器中。的偏移地址,操作数本身则在存储器中。n可用的寄存器有四个,分别是:可用的寄存器有四个,分别是:SI、DI、BX和和BP,但如果使用不同的间址寄存器,则相应的段但如果使用不同的间址寄存器,则相应的段
7、寄存器有所不同寄存器有所不同第11页,共108页,编辑于2022年,星期六2023/1/711 n1选择SI、DI、BX作为间址寄存器n操作数在数据段(没有使用段超越时)n MOV AX,DI 若已知(DS)=5000H,(DI)=1600H,则操作数的物理地址为:5000H10H+1600H=51600H 执行的结果为(AX)=789AH 第12页,共108页,编辑于2022年,星期六2023/1/712 2选择BP作为间址寄存器 n操作数在堆栈段(没有使用段超越时)n MOV BP,AX 若已知(SS)=6000H,(BP)=1500H,则操作数的物理地址为:6000H10H+1500H=
8、61500H 若已知(AX)=5566H,则指令的执行结果为:66H送到61500H内存单元,55H送到61501H内存单元第13页,共108页,编辑于2022年,星期六2023/1/713 无无论论用用SI、DI、BX或或BP作作为为间间址址寄寄存存器器,都允许段超越。都允许段超越。nMOVES:DI,AXnMOVDX,DS:BP第14页,共108页,编辑于2022年,星期六2023/1/714 n五、变址寻址五、变址寻址(IndexedAddressing)n以指定的寄存器内容,加上以指定的寄存器内容,加上指令中给出的指令中给出的8位或位或16位位位位移量(必须要以一个段寄移量(必须要以一
9、个段寄存器作为基地址),作为存器作为基地址),作为操作数的地址。操作数的地址。n作为变址寻址的寄存器可以作为变址寻址的寄存器可以是是SI、DI、BX、BP四个四个寄存器中的任一个寄存器中的任一个n若用若用SI、DI和和BX作为变址作为变址寄存器,操作数在数据段,寄存器,操作数在数据段,即段地址在即段地址在DS寄存器;若寄存器;若用用BP变址,则操作数在堆变址,则操作数在堆栈段,即段地址在栈段,即段地址在SS寄存寄存器器nMOVAX,2000HSI若若(SI)=1200H,(DS)=1500H,则操作数则操作数的地址为的地址为18200H 第15页,共108页,编辑于2022年,星期六2023/
10、1/715变址寻址方式变址寻址方式 第16页,共108页,编辑于2022年,星期六2023/1/716 六、基址变址寻址六、基址变址寻址(BasedIndexedAddressing)n将将BX和和BP看作基址寄存器,将看作基址寄存器,将SI和和DI看作变址寄看作变址寄存器。存器。n基址加变址的寻址方式基址加变址的寻址方式:把一个基址寄存器(把一个基址寄存器(BX或或BP)的内容加上一个变址寄存器(的内容加上一个变址寄存器(SI或或DI)的内容,的内容,再加上指令中指定的再加上指令中指定的8位或位或16位位移量(必须要以一位位移量(必须要以一个段寄存器作为地址基址),作为操作数的地址个段寄存器
11、作为地址基址),作为操作数的地址nMOVAX,1050HBXSI第17页,共108页,编辑于2022年,星期六2023/1/717 nMOVAX,1050HBXSI若若(BX)=2000H,(SI)=1600H,(DS)=1200H,指指令中给出的偏移量为令中给出的偏移量为1050H,则源操作数的物理则源操作数的物理地址为地址为16650H若用若用BX作为基址寄存器,则段寄存器为作为基址寄存器,则段寄存器为DS,操作操作数在数据段中;数在数据段中;若用若用BP作为基址寄存器,则段寄存器为作为基址寄存器,则段寄存器为SS,操作数操作数在堆栈段中。在堆栈段中。第18页,共108页,编辑于2022年
12、,星期六2023/1/718基址加变址的寻址方式基址加变址的寻址方式第19页,共108页,编辑于2022年,星期六2023/1/719第三节第三节8086的指令系统的指令系统n 数据传送数据传送(Datatransfer)n算术运算算术运算(Arithmetic)n逻辑运算和移位逻辑运算和移位(Logic)n串操作串操作(Stringmanipulation)n控制转移控制转移(Controltransfer)n处理器控制处理器控制(Processorcontrol)第20页,共108页,编辑于2022年,星期六2023/1/720 nOPRD泛指各种类型的操作数泛指各种类型的操作数nmem存
13、储器操作数存储器操作数nacc累加器操作数累加器操作数ndest目的操作数目的操作数nsrc源操作数源操作数ndisp8位或位或16位偏移量,可用符号地址表示位偏移量,可用符号地址表示nDATA8位或位或16位立即数位立即数nport输入输出端口,可用数字或表达式表示输入输出端口,可用数字或表达式表示n()表示寄存器的内容表示寄存器的内容n表示存储单元的内容或偏移地址表示存储单元的内容或偏移地址第21页,共108页,编辑于2022年,星期六2023/1/721一、数据传送类指令一、数据传送类指令 按功能可分为以下按功能可分为以下4小类:小类:n通用数据传送指令通用数据传送指令n输入输出指令输入
14、输出指令n目标地址传送指令目标地址传送指令n标志传送指令标志传送指令第22页,共108页,编辑于2022年,星期六2023/1/722 1.通通用用数数据据传传送送指指令令(GeneralPurposeTransfer)n一般传送指令一般传送指令MOVn堆栈操作指令堆栈操作指令PUSH和和POPn交换指令交换指令XCHGn查表转移指令查表转移指令XLATn字位扩展指令字位扩展指令第23页,共108页,编辑于2022年,星期六2023/1/723 一般传送指令一般传送指令MOV(Movement)MOVdest,src;(dest)(src)n既既可可传传送送字字节节操操作作数数(8位位),也也
15、可可传传送送字操作数(字操作数(16位);位);n可使用本章讨论过的各种寻址方式;可使用本章讨论过的各种寻址方式;n可实现以下各种传送:可实现以下各种传送:第24页,共108页,编辑于2022年,星期六2023/1/724MOV可实现的各种传送可实现的各种传送:n寄存器与寄存器之间的传送寄存器与寄存器之间的传送:MOVAL,CLn寄存器与段寄存器之间的传送寄存器与段寄存器之间的传送:MOVDS,AXn寄存器与存储器之间的传送寄存器与存储器之间的传送:MOV3000H,AXn立即数到寄存器的传送立即数到寄存器的传送:MOVAL,20Hn立即数到存储器的传送立即数到存储器的传送:MOVBYTEPT
16、RBP+SI,20Hn存储器与段寄存器之间的传送存储器与段寄存器之间的传送:MOVDS,2000H第25页,共108页,编辑于2022年,星期六2023/1/725使用使用MOV指令完成数据传送时需注意几点指令完成数据传送时需注意几点:nMOV指令的两个操作数的类型必须相同指令的两个操作数的类型必须相同MOVAX,DL n不能用一条不能用一条MOV指令完成两个存储器单元之间的数指令完成两个存储器单元之间的数据传送据传送MOVBX,SI n不能用立即数直接给段寄存器赋值不能用立即数直接给段寄存器赋值MOVDS,DATA n不能在段寄存器之间进行直接数据传送不能在段寄存器之间进行直接数据传送MOV
17、DS,ES n通常不要求用户用通常不要求用户用MOV指令修改代码段寄存器指令修改代码段寄存器CS和指令指针寄存器和指令指针寄存器IP的内容,但的内容,但CS可以作为源操可以作为源操作数作数第26页,共108页,编辑于2022年,星期六2023/1/726 n堆栈操作指令堆栈操作指令PUSH和和POP(Pushwordontostack,Popwordoffstack)n堆栈是内存中一个特定的区域,用以存放堆栈是内存中一个特定的区域,用以存放寄存器或存储器中暂时不用但又必须保存寄存器或存储器中暂时不用但又必须保存的数据。的数据。第27页,共108页,编辑于2022年,星期六2023/1/727堆
18、栈操作需要遵循以下原则:n 堆栈的存取每次必须是一个字堆栈的存取每次必须是一个字(16位位);n向向堆堆栈栈中中存存放放数数据据时时,总总是是从从高高地地址址向向低低地地址址方方向向增长,从堆栈取数据时正好相反;增长,从堆栈取数据时正好相反;n堆堆栈栈指指令令中中的的操操作作数数只只能能是是寄寄存存器器或或存存储储器器操操作作数数,而不能是立即数;而不能是立即数;n堆堆栈栈段段在在内内存存中中的的位位置置由由SS决决定定,堆堆栈栈指指针针SP总总是是指指向向栈栈顶顶,即即SP的的内内容容等等于于当当前前栈栈顶顶的的偏偏移移地地址址。在在压压入入操操作作数数之之前前,SP先先减减2。每每弹弹出出
19、一一个个字字,SP加加2;n对对堆堆栈栈的的操操作作遵遵循循“后后进进先先出出(LIFO:LastInFirstOut)”的原则。最后压人堆栈的数据会最先被弹出。的原则。最后压人堆栈的数据会最先被弹出。第28页,共108页,编辑于2022年,星期六2023/1/728堆栈示意图堆栈示意图 n 第29页,共108页,编辑于2022年,星期六2023/1/729堆栈操作指令堆栈操作指令PUSH,POPPUSH src ;src的高8位(SP)-1;src的低8位(SP)-2;(SP)-2(SP)POP dest ;SPdest的低8位;SP+1dest的高8位;(SP)+2(SP)第30页,共10
20、8页,编辑于2022年,星期六2023/1/730 指指令令中中,操操作作数数src和和dest可可以以是是以以下下三三种类型:种类型:n寄寄存存器器(包包括括数数据据寄寄存存器器、地地址址寄寄存存器器和变址寄存器);和变址寄存器);n段段寄寄存存器器(CS除除外外。PUSHCS指指令令是是合法的;而合法的;而POPCS是非法的);是非法的);n存储器单元存储器单元第31页,共108页,编辑于2022年,星期六2023/1/731PUSHAX指令执行示意图指令执行示意图 n 第32页,共108页,编辑于2022年,星期六2023/1/732POPAX指令执行示意图指令执行示意图 n 第33页,
21、共108页,编辑于2022年,星期六2023/1/733交换指令交换指令XCHG(Exchange)指令格式及操作:指令格式及操作:XCHGdest,src;(dest)(src)n源源操操作作数数和和目目标标操操作作数数均均可可以以是是寄寄存存器器或或存存储储器器,但但不不能能同同时时为为存存储储器器。即即可可以以在在寄寄存存器器与与寄寄存存器器之之间间、寄寄存存器器与与存存储储器器之之间间进进行行交交换换,但但不不能能在在存存储储器器与与存存储器之间进行交换。储器之间进行交换。n不不能能为为段段寄寄存存器器操操作作数数。即即段段寄寄存存器器的的内内容容不不能能参参加交换。加交换。n两两个个
22、操操作作数数的的字字长长必必须须相相同同,可可以以是是字字节节交交换换,也也可以是字交换。可以是字交换。第34页,共108页,编辑于2022年,星期六2023/1/734查表转移指令查表转移指令XLAT(Translate)指令格式与操作:指令格式与操作:XLAT;(AL)(BX)+(AL)或或:XLATsrc_table(src_table表表示示要要查查找找的的表表的首地址)的首地址)可以根据表中元素的序号查出表中相应元素的内容可以根据表中元素的序号查出表中相应元素的内容n应预先将要查找的这类代码排成一个表存放在内存的某个区域中。应预先将要查找的这类代码排成一个表存放在内存的某个区域中。n
23、将表的首地址(偏移地址)送将表的首地址(偏移地址)送BX寄存器,要查找的元素的序寄存器,要查找的元素的序号送号送AL,表中第一个元素的序号为表中第一个元素的序号为0,然后依次为,然后依次为1,2,3,。n执行执行XLAT指令后,标中指定序号的元素存于指令后,标中指定序号的元素存于AL第35页,共108页,编辑于2022年,星期六2023/1/735例:例:现要查出数值现要查出数值6对应的对应的ASCII码码LEABX,Hex_table;(BX)表的首地址表的首地址MOVAL,6;(AL)6XLAT;查表转换查表转换n结果为结果为(AL)=36H,为为6所所对应的对应的ASCII码。码。n 第
24、36页,共108页,编辑于2022年,星期六2023/1/736字位扩展指令字位扩展指令 n操操作作数数扩扩展展的的规规则则是是:扩扩展展时时在在高高位位添添加加符符号号位位,即即将将符符号号位位扩扩展展到到整整个个高高8位位(或高或高16位位)。n例例如如,要要把把有有符符号号数数35H扩扩展展为为一一个个字字,则则结结果果为为0035H;而而如如果果要要扩扩展展的的数数是是81H,则结果为则结果为FF81H。第37页,共108页,编辑于2022年,星期六2023/1/737CBW(ConvertBytetoWord)CBW;若若(AL)80H,则则(AH)=00H;否则否则(AH)=FFH
25、。CBW将将一一个个字字节节的的数数(8位位)扩扩展展为为一一个个字字长长的的数数(16位位)。指指令令中隐含了操作数中隐含了操作数AL和和AH。CBW指令不影响标志位。指令不影响标志位。例如,把字节例如,把字节9AH扩展为字的语句如下:扩展为字的语句如下:MOVAL,9AHCBW其结果为:其结果为:(AX)=FF9AH。第38页,共108页,编辑于2022年,星期六2023/1/738CWD(ConvertWordtoDoubleword)CWD;若若(AX)9或或AF=1,则则(AL)+06H(AL),并使并使AF=1;若若(AL)中高中高4位位9或或CF=1,则则(AL)+60H(AL)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 指令系统 幻灯片
限制150内