




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主要内容第四章80868088的指令系统,第四章80868088CPU指令系统,主要内容:指令的操作数、操作码、寻址方式指令的功能、格式、用法等,1,8086/8088CPU寻址方式第四章80868088的指令系统,2,一、寻址方式指令的一般格式:计算机中的指令由操作码字段和操作数字段组成。,操作码:指计算机所要执行的操作,或称为指出操作类型,是一种助记符。,操作数:指在指令执行操作的过程中所需要的操作数。该字段除可以是操作数本身外,也可以是操作数地址或是地址的一部分,还可以是指向操作数地址的指针或其它有关操作数的信息。,寻址方式就是指令中用于说明操作数所在地址的方法,或者说是寻找操作数有效地址的方法。,8086/8088CPU寻址方式第四章80868088的指令系统,3,立即寻址,寄存器寻址,存储器寻址,8086/8088CPU寻址方式第四章80868088的指令系统,4,1立即寻址(ImmediateAddressing)所提供的操作数直接包含在指令中。它紧跟在操作码的后面,与操作码一起放在代码段区域中。例如:MOVAX,3000HMOV2000H,1AH,立即寻址主要用来给寄存器或存储器赋初值。,8086/8088CPU寻址方式第四章80868088的指令系统,5,2寄存器寻址(RegisterAddressing)操作数包含在CPU的内部寄存器中,如寄存器AX、BX、CX、DX等。例如:MOVDS,AXMOVAL,BH,3、存储器寻址(MemoryAddressing),访问存储单元需要其段基址和段内偏移量(即有效地址EA)。根据有效地址的不同,存储器寻址方式分为直接寻址、寄存器间接寻址,8086/8088CPU寻址方式第四章80868088的指令系统,6,立即寻址,寄存器寻址,存储器寻址,8086/8088CPU寻址方式第四章80868088的指令系统,7,1)直接寻址(DirectAddressing)操作数地址的16位偏移量直接包含在指令中。它与操作码一起存放在代码段区域,操作数一般在数据段区域中,它的地址为数据段寄存器DS加上这16位地址偏移量。,例如:MOVAX,DS:2000H;MOVAX,2000H;数据段,MOVAX,VALUE;VALUE是符号地址MOVBX,ES:3000H;段超越,操作数在附加段即绝对地址(ES)*163000H,8086/8088CPU寻址方式第四章80868088的指令系统,8,2)寄存器间接寻址(RegisterRelativeAddressing)操作数是在存储器中,但是,操作数地址的16位偏移量包含在以下四个寄存器SI、DI、BP、BX之一中。可以分成两种情况:,以SI、DI、BX间接寻址,则通常操作数在现行数据段区域中,即数据段寄存器(DS)*16加上SI、DI、BX中的16位偏移量,为操作数的地址,例如:MOVAX,SI操作数地址是:(DS)*16+(SI),以寄存器BP间接寻址,则操作数在堆栈段区域中。即堆栈段寄存器(SS)*16与BP的内容相加作为操作数的地址,例如:MOVAX,BP操作数地址是:(SS)*16+(BP),8086/8088CPU寻址方式第四章80868088的指令系统,9,立即寻址,寄存器寻址,存储器寻址,直接寻址,寄存器间接寻址,8086/8088CPU寻址方式第四章80868088的指令系统,10,(1)相对基址寻址方式(RelativeBasedAddressing)相对基址寻址方式的操作数的有效地址是基址寄存器中内容和指令中给定的8位或16位偏移量disp之和。,对寄存器BX,段寄存器用DS。物理地址=(DS)*16+(BX)+disp如MOVAX,COUNTBX或MOVAX,COUNT+BX,其中COUNT为16位偏移量的符号地址。若DS=2000H,BX=2000H,COUNT=4000H。物理地址=20000H+2000H+4000H=26000H指令执行结果AX=1234H,8086/8088CPU寻址方式第四章80868088的指令系统,11,(1)相对基址寻址方式(RelativeBasedAddressing)相对基址寻址方式的操作数的有效地址是基址寄存器中内容和指令中给定的8位或16位偏移量disp之和。,对寄存器BP,段寄存器用SS。物理地址=(SS)16+(BP)+disp如MOVAX,COUNTBP或MOVAX,COUNT+BP若SS=3000H,BP=2000H,COUNT=4000H,物理地址=30000H+2000H+4000H=36000H指令执行结果AX=5678H,8086/8088CPU寻址方式第四章80868088的指令系统,12,(2)相对变址寻址方式(RelativeIndexAddressing)相对变址寻址的操作数的有效地址是变址寄存器中内容和指令中给定的8位或16位偏移量disp之和。,这种寻址方式的段寄存器用DS,即物理地址=(DS)16+(SI)+disp物理地址=(DS)16+(DI)+disp如MOVAX,COUNTSI或MOVAX,COUNT+SI若DS=2000H,SI=2000H,COUNT=4000H。物理地址=20000H+2000H+4000H=26000H指令执行结果AX=1234H,8086/8088CPU寻址方式第四章80868088的指令系统,13,(3)基址变址寻址方式(BasedIndexedAddressing)基址变址寻址的操作数的有效地址是一个基址寄存器与一个变址寄存器的内容之和。若基址寄存器为BX,则段寄存器用DS;若基址寄存器为BP,则段寄存器用SS。物理地址=(DS)16+(BX)+(SI)(或DI)物理地址=(SS)16+(BP)+(SI)(或DI)如MOVAX,BXDI或MOVAX,BX+DI若DS=2000H,BX=2000H,DI=3000H。物理地址=20000H+2000H+3000H=25000H,8086/8088CPU寻址方式第四章80868088的指令系统,14,(4)相对基址变址寻址方式(RelativeBasedIndexedAddressing)相对基址变址寻址的操作数的有效地址是一个基址寄存器与一个变址寄存器的内容以及8位或16位偏移量disp之和。,当其中的基址寄存器为BX时,则段寄存器为DS;而当基址寄存器为BP时,则段寄存器为SS。物理地址=(DS)16+(BX)+(SI)(或DI)+8位(16位)偏移量disp物理地址=(SS)16+(BP)+(SI)(或DI)+8位(16位)偏移量disp如MOVAX,BX+SI+COUNT若DS=2000H,BX=3000H,SI=1000H,COUNT=4000H。物理地址=20000H+3000H+1000H+4000H=28000H,8086/8088CPU寻址方式第四章80868088的指令系统,15,立即寻址,寄存器寻址,存储器寻址,直接寻址,寄存器间接寻址,8086/8088CPU寻址方式第四章80868088的指令系统,I/O端口寻址,16,8086采用独立编址的I/O端口时,可有64K个字节端口或32K个字端口,用专门的输入指令IN和输出指令OUT访问。直接端口寻址方式适用于访问地址00FFH的端口。例如:INAL,80H表示由地址为80H的端口读取一个字节数据到AL中。2.间接端口寻址方式适用于访问地址0000FFFFH的全部端口,在输入/输出指令中,用DX存放16位的端口地址。例如:MOVDX,2000INAL,DX表示由DX确定的2000H端口读取一个字节数据到AL中。,8086/8088CPU寻址方式第四章80868088的指令系统,I/O端口寻址,17,从以上讨论可知:(1)除了立即寻址和寄存器寻址外,其它寻址方式的操作数都来自存储区(除代码段以外的存储区)。通过不同的方式寻找到操作数的地址。(2)只有BX、BP、SI、DI可在方括号内出现。(3)BX或BP可单独出现在内,也可以与SI或DI或常数一起出现在内,不允许BX和BP同时出现在一个内。(4)SI或DI可单独出现在内,也可以与BX或BP或常数一起出现在内,不允许SI或DI同时出现在一个内。(5)一个内包括多个内容时,它们只能作加法运算。(6)若内包含BP,则隐含使用堆栈段寄存器SS提供段基址,否则均隐含使用段寄存器DS提供段基址。,8086/8088CPU寻址方式第四章80868088的指令系统,18,习题:指出下列指令的源操作数的寻址方式和存储器操作数的PA(实际地址)假设当前CS=1000H,DS=2000H,SS=4000H,BX=3000H,BP=1000H,SI=0500H,DI=0A00H,TAB=00F0HMOVAL,78H立即寻址MOVAL,BX寄存器间接寻址PA=2000H*10H+3000H=23000HMOVAX,BP寄存器寻址MOVAL,TABSI相对变址寻址PA=2000H*16+0500H+0F0H=205F0HMOVAL,BPDI变址基址寻址PA=4000H*16+1000H+0A00H=41A00HMOVAL,TABBXSI相对基址变址PA=2000H*10H+3000H+0500H+00F0H=235F0H,8086/8088CPU寻址方式第四章80868088的指令系统,19,数据传送指令,运算指令,逻辑运算,算术运算,串操作指令,控制转移指令,处理器控制指令,数据传送指令第四章80868088的指令系统,8086指令中包含133条基本指令,从功能上可以分为以下6类:,20,数据传送指令第四章80868088的指令系统,指令中出现的这些符号所代表的含义:Flags标志位regR通用寄存器组srcS源操作数destD目的操作数dataN立即数memM存储器ADR(src)源操作数的地址存储单元的内容OPRD操作数segSR段寄存器(CS、DS、ES、SS)port端口Bit位ByteB字节WordW字,21,通用数据传送指令,累加器专用指令,输入输出指令换码指令,目标地址传送指令,标志位传送指令,传送指令堆栈操作指令交换指令,有效地址传送指令DS传送指令ES传送指令,标志位送AH指令AH送FR指令FR入出栈指令,数据传送指令分类,4.3数据传送指令第四章80868088的指令系统,22,格式:MOVD,S,;SD,;B/W,其中R包括8个数据寄存器;SR为4个段寄存器;M为存储器,可以是存储器寻址中的任一种。,2。立即数只能做源操作数。3。两操作数的位数必须相同。4。两操作数中最多只能有一个是存储器寻址方式。,4.3数据传送指令第四章80868088的指令系统,23,交换指令,格式:XCHGD,S,;DS,B/W,D,S:R(不包括SR)、M,例:XCHGAL,BLXCHGCX,SP,使用交换指令时,必须注意:1)段寄存器不能作为交换指令的操作数。2)两个操作数中,必须有一个是寄存器操作数,而不允许两个都是存储器操作数。3)立即数不能作为交换指令的操作数。4)交换指令不影响标志位。,4.3数据传送指令第四章80868088的指令系统,24,格式:INAL,nINAX,nINAL,DXINAX,DX,格式:OUTn,ALOUTn,AXOUTDX,ALOUTDX,AX,例:INAL,08H,输入输出指令,使用输入输出指令时,应注意:1)输入输出指令只能通过累加器AL或AX来传送数据。2)输入输出指令的字或字节传送操作的选用,取决于外设端口的宽度。3)直接寻址的输入输出指令,寻址外设端口的范围为0255;而间接寻址(DX)的输入输出指令,寻址的范围为065535。4)输入输出指令不影响标志位。,4.3数据传送指令第四章80868088的指令系统,25,堆栈操作指令PUSHPOP有效地址传送指令LEA换码指令XLATDS传送指令LDSES传送指令LES,传送指令MOVD,S交换指令XCHGD,S输入输出指令INAL/AX,PORTOUTPORT,AL/AX,4.3数据传送指令第四章80868088的指令系统,第四章80868088CPU指令系统,回顾:,本节主要内容:,4.3数据传送指令,26,堆栈:在内存中,开辟一段存储区,该区域是按照“先进后出”的原则来存放数据。,SP,SS,例:现有一个空的堆栈段,已知(SS)=1000H,(SP)=2000H,则存储器示意图如右。,堆栈操作指令,设置堆栈目的:保存断点和保存当前寄存器的内容,4.3数据传送指令第四章80868088的指令系统,27,例:现有一个空堆栈段,已知(SS)=1000H,(SP)=2000H,则存储器示意图如右。,两个关键点:堆栈必须以字为单位操作,即字操作。数据必须以规则字的方式存放。,若(AX)=1234H,(BX)=60ABH,则执行PUSHAXPUSHBX,POPBXPOPAX,;(BX)=60ABH,;(AX)=1234H,入栈(PUSH)操作SP-2SP按“规则字”方式入栈,出栈(POP)操作按“规则字”方式出栈SP+2SP,;(SP)=1FFCH,4.3数据传送指令第四章80868088的指令系统,28,DATA_SEGSEGMENTXDW10YDW0DATA_SEGENDSSTACK_SEGSEGMENTSTACKSTACKDW2000HDUP(?)TOPLABELWORDSTACK_SEGENDSCODE_SEGSEGMENTASSUMECS:CODE_SEG,DS:DATA_SEGMAINPROCFARSTART:MOVAX,STACK_SEG;建立堆栈段指针MOVSS,AXLEASP,TOPPUSHDSSUBAX,AXPUSHAXMOVAX,DATA_SEGMOVDS,AX。RETMAINENDPCODE_SEGENDSENDSTART,数据段,堆栈段,代码段,通过一个汇编语言程序,看堆栈段的是怎么建立?,SP,SS,4.3数据传送指令第四章80868088的指令系统,29,有效地址传送指令,格式:LEAD,S,;将S的有效地址送到D,S:MD:R(16位),例:LEABX,2000H执行后,BX=2000H区别于MOVBX,2000H,例:LEABX,TAB(TAB=2000H)执行后,BX=2000H区别于MOVBX,TAB,4.3数据传送指令第四章80868088的指令系统,30,格式:XLAT,;BX+ALAL,换码指令,执行以下程序后,AL的内容是多少?LEABX,TABLEMOVAX,03HADDBX,AXMOVAL,BX,LEABX,TABLEMOVAL,03HXLAT,执行完程序后,AL=9,XLAT指令的功能是:,执行XLAT的过程为:(BX)+(AL)取(BX)+(AL)所指向的单元内容传送至AL。,把一种代码转换为另一种代码,4.3数据传送指令第四章80868088的指令系统,31,格式:XLAT,;BX+ALAL,例:数字09对应的七段码为40H,79H,24H,30H,19H,12H,02H,78H,00H,18H。依次放在内存以TABLE开始的区域,当#05H端口(按键)输入一个数(09)时,要求CPU将其转换为七段码,再从#20H端口(显示)输出。,LEABX,TABLEINAL,05HXLATOUT20H,AL,换码指令,TABLEDB40H,79H,24H30H,19HDB12H,02H,78H,00H,18H,4.3数据传送指令第四章80868088的指令系统,32,LDS,LES,格式:LDSD,SLESD,S,S:M,D:R(16位,不包括SR),;(S)D,(S+2)DS(ES),例:LDSSI,(2000H)前:DS=2000H,(22000H)=4000H,(22002H)=3000H,后:SI=4000H,DS=3000H,4.3数据传送指令第四章80868088的指令系统,33,标志位指令,1.读取标志指令LAHF,格式:LAHF,;将FR的低8位送到AH,FR,AH,3.标志位入出栈指令PUSHF,POPF,4.3数据传送指令第四章80868088的指令系统,34,算术运算指令,逻辑运算指令,加法指令减法指令乘法指令除法指令BCD码修正指令,逻辑指令移位指令,运算指令,运算指令第四章80868088的指令系统,35,加法指令,1。不带进位位的加法指令,格式:ADDD,S,;D+SD,B/W,D:R,M;S:R,M,n,二者不能同时为M。,例:ADDAX,BXADDAL,2000HADDBX,ALADDBL,6H,注意:指令的执行影响CF、OF、SF、ZF、PF、AF。,例:ADCAX,BXADCAL,2000HADCBX,ALADCBL,6H,例:ADDAL,BL前:AL=2EH,BL=45H后:AL=73H(01110011B)CF=0,AF=1,SF=0,ZF=0PF=0,OF=0,运算指令第四章80868088的指令系统,36,例:INCAXINCBYTEPTRBX,加法指令,运算指令第四章80868088的指令系统,37,减法指令,1。不带借位位的减法指令,格式:SUBD,S,;D-SD,B/W,D:R,M;S:R,M,n,二者不能同时为M。,注意:指令的执行影响CF、OF、SF、ZF、PF、AF。,例:SBBAX,BXSBBAL,3456HSBBBX,ALSBBBL,6H,例:DECAXDECBYTEPTRBX,例:SUBCX,DXSUBDL,2000HSUBSI,CHSUBAL,6H,运算指令第四章80868088的指令系统,38,减法指令之二,4。求补指令,格式:NEGD,;0-DD,B/W,D:R,M,注意:指令的执行影响OF、SF、ZF、PF、AF、CF。,注意:1。差不送到D;2。指令的执行影响CF、OF、SF、ZF、PF、AF;3。D,S的大小判断方法与D,S是否是有无符号数有关。,例:NEGWORDPTRBX例:NEGAL前:AL=10001011B后:AL=01110101BCF=AF=1,SF=ZF=PF=OF=0,例:ADDAL,0JNSL1NEGALORAL,80HL1:,运算指令第四章80868088的指令系统,39,运算指令第四章80868088的指令系统,例4-8在从Block开始的内存缓冲器中有100个带符号数的字,把其中最大值存放到MAX单元中。MOVCX,99LEABX,BlockMOVAX,BXADDBX,2AGAIN:CMPAX,BXJGNEXTMOVAX,BXNEXT:ADDBX,2DECCXJNZAGAINMOVMAX,AXHLT,40,乘法指令,例:MULBXIMULBYTEPTR(3456H)MULCLIMULWORDPTRDI,运算指令第四章80868088的指令系统,41,除法指令,1。无符号数的除法指令,格式:DIVS,;B:AX/S(8位)=AL.AH,W:DXAX/S(16位)=AX.DX,例:DIVBXIDIVBYTEPTR(3456H)DIVCLIDIVWORDPTRDI,2。有符号数的除法指令,格式:IDIVS,S:R,M,注意:标志位无意义.,例:9876H/2345HMOVAX,9876HCWDMOVSI,2345HIDIVSI,运算指令第四章80868088的指令系统,42,十进制修正指令,1。BCD加法的修正指令,格式:AAADAA,2。BCD减法的修正指令,3。BCD乘法的修正指令,格式:AAM,格式:AASDAS,4。BCD除法的修正指令,格式:AAD,注意:1。这六条指令中只有AAD是在除法指令执行前执行,其余都是在运算指令后修正。2。只有AAD是对AX中的数据进行修正,其余都是对AL中的数据进行修正。,影响P、S、Z,不影响A、C、O。,影响P、S、Z,不影响A、C、O,影响C、A,对O、P、S、Z未定义。影响C、A、P、S、Z,对O未定义。,影响C、A,对O、P、S、Z未定义。影响C、A、P、S、Z,对O未定义。,运算指令第四章80868088的指令系统,43,1。逻辑非指令,格式:NOTD,2。逻辑与指令,3。逻辑或指令,格式:ORD,S,格式:ANDD,S,;D:R、M,S:R、M、n,B/W,D:R、M,B/W,不影响标志位,影响S、Z、P,CF=OF=0,未对AF定义。,利用AND可以强行使目标操作数的某些位为零。,;D:R、M,S:R、M、n,B/W,影响S、Z、P,CF=OF=0,未对AF定义。,利用OR可以强行使目标操作数的某些位为1。,逻辑运算指令,运算指令第四章80868088的指令系统,ANDAL,0FHANDCX,0FF00H,ORAL,0FHORAL,30H,44,4。逻辑异或指令,格式:XORD,S,;D:R、M,S:R、M、n,B/W,影响S、Z、P,CF=OF=0,未对AF定义。,利用XOR可以强行使目标操作数的某些位为取反或两数是否相等。,5。测试指令,格式:TESTD,S,;D:R、M,S:R、M、n,B/W,影响S、Z、P,CF=OF=0,未对AF定义。,利用TEST可以测试目标操作数的某些位的状态。,逻辑运算指令,运算指令第四章80868088的指令系统,XORAL,0FHXORCL,CL,TESTAL,80HTESTAL,0F0H,45,移位指令,1。逻辑算术左移指令,格式:SHLD,SSALD,S,2。逻辑右移指令,3。算术右移指令,格式:SARD,S,格式:SHRD,S,;D:R、M,S:1、CL,B/W,;D:R、M,S:1、CL,B/W,0,CF,CF,;D:R、M,S:1、CL,B/W,运算指令第四章80868088的指令系统,46,1。循环左移指令,格式:ROLD,S,2。循环右移指令,4。带进位位的循环右移指令,格式:RCRD,S,格式:RORD,S,CF,CF,CF,D:R、M,S:1、CL,B/W,循环指令,3。带进位位的循环左移指令,格式:RCLD,S,CF,这类指令只影响CF和OF,CF为最后一次送入的值,OF仅在循环一位时有效:循环前后符号位不同时OF=1,否则OF=0。,运算指令第四章80868088的指令系统,47,MOVAL,0FHSALAL,1MOVBL,ALMOVCL,2SALAL,CLADDAL,BLMOVDATA,AL,;取数到AL中;乘2;保存;乘4;乘10(8+2);存结果,说明下面程序的功能:,功能:0FH*10DATA单元,运算指令第四章80868088的指令系统,48,程序控制转移指令,49,例420假设x值存放在数据段1000H单元,函数y的值存放在1001H单元。MOVAL,1000HCMPAL,0JGBIGJLLOWDONE:MOV1001H,ALHLTLOW:MOVAL,0FFHJMPDONEBIG:MOVAL,1JMPDONE,程序控制转移指令第四章80868088的指令系统,50,例421在数据段内以Block为首地址的100个字节数,试统计其正数和负数的个数,并分别将正
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025金华武义县人力资源限公司招聘1名项目制员工模拟试卷(含答案详解)
- 2025年乐山高新区管委会直属事业单位公开考核招聘工作人员的模拟试卷及1套完整答案详解
- 关于继续履行合同的通知书6篇
- 设备租赁维修技术协议合同
- 驻校卫生员考试题库及答案
- 物种起源考试题库及答案
- 主体结构考试题库及答案
- 支护工考试题库及答案
- 2025年新疆农作物制种种植保险合同协议
- 2025年广西梧州市辅警考试真题及答案
- DB31/T 804-2014生活饮用水卫生管理规范
- 儿童早期矫正教学课件
- 心血管-肾脏-代谢综合征(CKM)综合管理中国专家共识2025解读课件
- NB/T 11529-2024回采工作面随采地震探测技术
- 艾青诗选《黎明》赏析
- 民营医院行政管理与法律法规遵循
- 银行代销业务管理制度
- 招聘话术培训
- 环卫处规章制度
- 大学古诗词课件
- 木方回收合同6篇
评论
0/150
提交评论