浙工大微机原理及应用第章指令系统.ppt

上传人:cl****1 文档编号:569464623 上传时间:2024-07-29 格式:PPT 页数:52 大小:404KB
返回 下载 相关 举报
浙工大微机原理及应用第章指令系统.ppt_第1页
第1页 / 共52页
浙工大微机原理及应用第章指令系统.ppt_第2页
第2页 / 共52页
浙工大微机原理及应用第章指令系统.ppt_第3页
第3页 / 共52页
浙工大微机原理及应用第章指令系统.ppt_第4页
第4页 / 共52页
浙工大微机原理及应用第章指令系统.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《浙工大微机原理及应用第章指令系统.ppt》由会员分享,可在线阅读,更多相关《浙工大微机原理及应用第章指令系统.ppt(52页珍藏版)》请在金锄头文库上搜索。

1、浙工大信息学院浙工大信息学院第三章第三章 指令系统指令系统常用指令的格式、功能、常用指令的格式、功能、以及对标志位的影响以及对标志位的影响3种操作数的寻址方式种操作数的寻址方式Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011

2、 Aspose Pty Ltd.浙工大信息学院浙工大信息学院3.1寻址方式寻址方式汇编指令:汇编指令:操作码:指令操作类型操作码:指令操作类型操作数:指令所需操作数或者操作数的地址操作数:指令所需操作数或者操作数的地址,可以为,可以为1个或者个或者2个个 eg: MOV AX,CX3 3种操作数:种操作数:立即数、寄存器、存储器立即数、寄存器、存储器故有:故有:v立即数寻址立即数寻址v寄存器寻址寄存器寻址v存储器寻址存储器寻址操作码操作码操作数操作数Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.

3、2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院1、立即数寻址、立即数寻址v立即数有立即数有8位和位和16位位 Eg: MOV AL ,5 MOV AX,1234HEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.

4、2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院2、寄存器寻址、寄存器寻址v操作数放在寄存器中,指令中给出寄存器名。操作数放在寄存器中,指令中给出寄存器名。8/16位通用寄存器和段寄存器位通用寄存器和段寄存器Eg:MOV AX, CX DEC ALEvaluation only.Created with As

5、pose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院3、存储器寻址、存储器寻址v操作数放在操作数放在存储器存储器中(是某个内存单元的中(是某个内存单元的内容),内容),指令中给出的是内存单元的有效指令中给出的是内存单元的有效地址地

6、址EA(即偏移地址即偏移地址),段地址通常隐含在,段地址通常隐含在某个段寄存器中。某个段寄存器中。vEA用用 表示表示vEA=基址基址 +变址变址 +位移量位移量DBXBPSIDI0816Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 200

7、4-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院1)直接寻址方式)直接寻址方式vEA=Dv两种形式:直接地址值和符号地址两种形式:直接地址值和符号地址vEg:MOV AX, ES:2000H MOV AX,2000H MOV AX,LABLE816Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NE

8、T 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院2)间接寻址方式)间接寻址方式v(1)基址寻址)基址寻址 EA=基址基址 +位移量位移量D物理地址物理地址 eg:已知:已知(DS)=2100H,(BX)=2000H 则执行指令:则执行指令:MOV AX, BX 求出此种寻址方式对应的物理地址求出此种寻址方式对应的物理地址PA=?执?执行结果?行结果?BXBP0816Evaluation only.Created with Aspose.Slides for .NET 3.5 Client

9、 Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院间接寻址方式(续间接寻址方式(续1)v(2)变址寻址)变址寻址 EA=变址址变址址 +位移量位移量D物理地址物理地址 eg:已知:已知(DS)=3000H,(SI)=2000H, COUNT=3000H 则执行指令:则执行指令:MOV AX

10、,COUNTSI 求出此种寻址方式对应的求出此种寻址方式对应的EA?PA=?执行结果?执行结果?SIDI0816Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院间接

11、寻址方式(续间接寻址方式(续2)v(3)基址变址寻址)基址变址寻址 EA= 物理地址物理地址 eg:MOV AL,5BXDI MOV AX, BP+4SIBXBPSIDI0816Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-201

12、1 Aspose Pty Ltd.浙工大信息学院浙工大信息学院寻址方式举例寻址方式举例已知已知(DS)=1200H, (BX)=05A6H, (SS)=5000H,(BP)=40A0H, (SI)=2000H, (DI)=3000H,位移量位移量DISP=1618H,试判断下列指令的寻址方式,并求,试判断下列指令的寻址方式,并求出各指令源操作数的出各指令源操作数的EA和和PA,并说明指令执行的结并说明指令执行的结果?果?MOV AX,0618HMOV AX,BXMOV AX,BPMOV AX,DIMOV AX,BX+DIMOV AX,BP+SI+DISPEvaluation only.Crea

13、ted with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院4、其他寻址方式、其他寻址方式v串操作指令寻址方式串操作指令寻址方式vI/O端口寻址方式端口寻址方式直接端口寻址直接端口寻址:I/O端口地址以端口地址以8位

14、位立即数方式立即数方式 在指令中直接给出。在指令中直接给出。Eg:IN AL, n n:0255间接端口寻址间接端口寻址:16位的位的I/O端口地址在端口地址在DX寄存寄存器中,故可寻址的端口号为器中,故可寻址的端口号为065535eg: OUT DX, ALv转移类指令的寻址方式(程序寻址方式)转移类指令的寻址方式(程序寻址方式)分段内短转移,段内直接转移,段内间接转移,段间分段内短转移,段内直接转移,段内间接转移,段间直接转移和段间间接转移等直接转移和段间间接转移等Evaluation only.Created with Aspose.Slides for .NET 3.5 Client

15、Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院(1)数据传送指令;)数据传送指令;(2)算术运算指令;)算术运算指令;(3)逻辑指令与移位指令;)逻辑指令与移位指令;(4)串操作指令;)串操作指令;(5)控制转移指令;)控制转移指令;(6)处理机控制指令;)处理机控制指令; 3、2、1

16、数据传送指令数据传送指令数据传送指令是最简单、最常用的一类指令,它是负责数据传送指令是最简单、最常用的一类指令,它是负责把把数据、地址、或立即数数据、地址、或立即数传送到寄存器或存储单元中传送到寄存器或存储单元中 3.2 指令系统指令系统Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Prof

17、ile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院1MOV(Move):传送指令):传送指令v指令格式为:指令格式为: MOV dest,src ;destsrcv功能:将源操作数功能:将源操作数src复制到目的操作数复制到目的操作数dest中,结果中,结果目的操作数的内容等于源操作数的内容,源操作数目的操作数的内容等于源操作数的内容,源操作数src的内容不变。的内容不变。v对标志位的影响:无对标志位的影响:无v语法格式:语法格式: MOV reg/mem/seg ,reg/mem/seg/immv说明:说明:v(1)双操

18、作数指令不允许两个操作数同时为段寄存器双操作数指令不允许两个操作数同时为段寄存器或存储器操作数,目的操作数不能为立即数。或存储器操作数,目的操作数不能为立即数。 MOV seg , seg ;错误;错误 MOV mem ,mem ;错误;错误 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client P

19、rofile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2)立即数不能传送到段寄存器中。)立即数不能传送到段寄存器中。 MOV seg ,imm ; 错误错误(3)目的操作数不允许使用)目的操作数不允许使用CS段寄存器。段寄存器。(4)dest与与src必须类型匹配,即同时是字节或字类型。必须类型匹配,即同时是字节或字类型。以下几点要注意:以下几点要注意:寄存器寄存器具有明确的类型,例如,具有明确的类型,例如,AL、AX分别为字节、字类型。若立即数没有明确的类型,分别为字节、字类型。若立即数没有明确的类型,MASM负责将负责将立即数立即数扩展为与目

20、的操作数位数相同。扩展为与目的操作数位数相同。有时有时MASM不能确定不能确定内存操作数内存操作数的类型,的类型,需要用需要用BYTE PTR和和WORD PTR明确指出是字节或字类型。明确指出是字节或字类型。关于关于PTR的详细介绍见第的详细介绍见第4章。章。只要其中一个操作数的类型只要其中一个操作数的类型确定即可。确定即可。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Creat

21、ed with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.例:判断指令正误:例:判断指令正误:MOV AX,BLMOV DS,1000HMOV BX ,SIMOV ES,CSMOV CS,AX例:设例:设B是已定义的字节变量,判断正误。是已定义的字节变量,判断正误。MOV AX,BMOV AX,0;类型不匹配;类型不匹配;不允许立即数送段寄存器;不允许立即数送段寄存器;2个操作数不能同时为存储器操作数个操作数不能同时为存储器操作数;不允许段寄存器之间传送;不允许段寄存

22、器之间传送;CS不能作为目的操作数不能作为目的操作数;错误,类型不匹配;错误,类型不匹配;正确,;正确,MASM可以判断出要送字可以判断出要送字0Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd

23、.浙工大信息学院浙工大信息学院XCHG(Exchange):交换指令):交换指令XCHG指令的格式为:指令的格式为:XCHG oprd1 , oprd2 ;交换;交换oprd1与与oprd2的内容的内容语法格式为:语法格式为:XCHG reg/mem,reg/mem例:例:XCHG BX ,BP+SI如指令执行前:(如指令执行前:(BX)=6F30H,(,(BP)=0200H,(,(SI)=0046H(SS)=2F00H,(,(2F246H,2F247H)=4254HOPR2的物理地址的物理地址=2F000h+0200h+0046h=2F246h则指令执行后:(则指令执行后:(BX)= (2F

24、246H)= (2F247H)=Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院堆栈概念堆栈概念 - 存储器的一段区域,按存储器的一段区域,按“先进后出先进后出”的

25、原则进行存出操作。的原则进行存出操作。8086/8088系统,堆栈位于堆栈段,系统,堆栈位于堆栈段,其段地址由其段地址由SS指示,指示,SP寄存器作为指针,寄存器作为指针,SP内容始终指内容始终指向栈顶所在存储单元。向栈顶所在存储单元。作用:在调用一个过程时,保存返回地址;暂时存放寄作用:在调用一个过程时,保存返回地址;暂时存放寄存器或存储器单元操作数的内容。存器或存储器单元操作数的内容。指令格式:指令格式:进栈进栈 PUSH Src ;操作:(操作:(SP) (SP)-2,(,(SP)+1,(,(SP) SRC) 出栈出栈 POP Dst ;操作:(操作:(DST) (SP)+1,(,(SP

26、),(),(SP) (SP)+23、堆栈操作指令、堆栈操作指令Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.堆栈堆栈SS:01F8SS:01FASS:01FCSS:01FESPAA BB(执

27、行(执行PUSH AX之前)之前)堆栈堆栈SS:01F8SS:01FASS:01FCSS:01FESPAA BB(执行(执行PUSH AX之后)之后)1101H1101H AX堆栈堆栈SS:01F8SS:01FASS:01FCSS:01FESPAA BB(执行(执行POP AX之后)之后)1101H AX123Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with A

28、spose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院8086/8088系统的堆栈具有如下特点:系统的堆栈具有如下特点:堆栈是在内存的堆栈段中,具有堆栈是在内存的堆栈段中,具有“先进后出先进后出”的特点;的特点;堆栈有两个基本操作:堆栈有两个基本操作:PUSH(进栈)和(进栈)和POP(出栈)(出栈)。PUSH操作使栈顶向低地址方向移动,而操作使栈顶向低地址方向移动,而POP操作则操作则刚好相反;刚好相反;堆栈操作只能作字操作;堆栈操作只能作字操作;SS

29、:SP在任何时候都指向当前的栈顶。在任何时候都指向当前的栈顶。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院格式:格式: XLAT功能:功能: AL (BX)+A

30、L) BX:表首址:表首址 AL:待查找表内单元的偏移量:待查找表内单元的偏移量步骤:步骤:1)建表)建表 OFFSET TABLE BX 2)置)置AL 3)XLAT例:用查表的方法将一位十六进制数转换成它相应的例:用查表的方法将一位十六进制数转换成它相应的ASCII码码 DATA SEGMENT TABLE DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46H HEX DB 3 ASCII DB ? DATA ENDS4、XLAT查表指令查表指令Evaluation only.Created with A

31、spose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.STACK1SEGMENT PARA STACK DW 20H DUP(0)STACK1 ENDSCODESEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK1 BEING:

32、MOV AX,DATAMOV DS,AX MOV BX,OFFSET TABLEMOV AL,HEXXLAT MOV ASCII,ALCODE ENDSEND BEINGEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 As

33、pose Pty Ltd.浙工大信息学院浙工大信息学院将操作数所在存储器的地址送入目标寄存器。将操作数所在存储器的地址送入目标寄存器。指令格式:指令格式:有效地址送寄存器:有效地址送寄存器: LEA reg16 , mem ;指针送寄存器和指针送寄存器和DS:LDS reg16 ,mem32 ;把源操作数指定的把源操作数指定的4个相继字节送到由指令指定的寄存器及个相继字节送到由指令指定的寄存器及DS寄寄存器中。该指令常指定存器中。该指令常指定SI寄存器。寄存器。 指针送寄存器和指针送寄存器和ES:LES reg16 ,mem32 ;把源操作数指定的把源操作数指定的4个相继字节送到由指令指定的寄

34、存器及个相继字节送到由指令指定的寄存器及ES寄寄存器中。该指令常指定存器中。该指令常指定DI寄存器寄存器 。5、地址传送指令、地址传送指令Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.LEA

35、 指令与指令与MOV 指令的区别:指令的区别:LEA SI,BUFF指令是将变量指令是将变量BUFF的偏移地址送入寄存器中;的偏移地址送入寄存器中;MOV SI,BUFF指令是将变量指令是将变量BUFF的内容送入的内容送入SI。BUFF 0123454800FEFFLEA SI,BUFF;执行后:(执行后:(SI)=0002HMOV SI,BUFF;执行后:(执行后:(SI)=0048H段起始地址段起始地址Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2

36、011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.B、LDS或或LES指令将源操作数指定的指令将源操作数指定的4个连续字节单个连续字节单元内容分别送入指令指定的寄存器以及元内容分别送入指令指定的寄存器以及DS或或ES中。中。其中:低其中:低16位送到一个指定的字寄存器,高位送到一个指定的字寄存器,高16位送到位送到DS或或ES中。中。57H13H68H24H例:例:DS:2480H

37、DS:2481HDS:2482HDS:2483H 13 57 24 68 SIDSLDS SI,2480HEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院指令格式:

38、指令格式:LAHF ; (AH) (FLAGS低字节)低字节)SAHF ; (FLAGS低字节)低字节) AHPUSHF; (SP) (SP)-2,(,(SP)+1,(,(SP) (FLAGS)POPF ; (FLAGS)()(SP)+1,(,(SP), SP (SP)+2说明:说明:LAHF/SAHF指令是寄存器指令是寄存器AH与标志寄存器与标志寄存器FLAGS的低的低字节之间完成的字节型数据传送。字节之间完成的字节型数据传送。 PUSHF/POPF指令是标志寄存器指令是标志寄存器FLAGS与堆栈间进行的与堆栈间进行的字型数据传送。字型数据传送。 指令指令SAHF/POPF将影响标志位。将影

39、响标志位。6、标志寄存器传送指令、标志寄存器传送指令Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院格式:格式:IN 累加器,端口号累加器,端口号; 累加器累加器

40、(端口号)(端口号) OUT 端口号,累加器端口号,累加器 ; 端口号端口号 (累加器)(累加器)说明:说明:累加器为累加器为AL/AX,端口号可以是,端口号可以是8位立即数(可寻位立即数(可寻址的端口号址的端口号0255),也可以将端口号事先安排在),也可以将端口号事先安排在DX中(可寻址的端口号中(可寻址的端口号065535)。)。例:例:IN AL,PORT ;将端口;将端口PORT中的字节内容读入中的字节内容读入ALIN AX,PORT ;将由;将由PORT两相邻端口中的字内容读入两相邻端口中的字内容读入AXOUT DX,AX ;将将AX中的字内容输出到由中的字内容输出到由DX和和DX

41、+1所指的两个端口中所指的两个端口中OUT PORT,AL 7、I/O数据传送指令数据传送指令Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院3.2.1算术运算指令

42、算术运算指令v加减乘除指令加减乘除指令v压缩压缩BCD码十进制调整和非压缩码十进制调整和非压缩BCD码十码十进制调整指令进制调整指令Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学

43、院浙工大信息学院1、加法指令、加法指令v指令格式:指令格式:加法:加法: ADD d, s ;(d)+(s)d带进位加法带进位加法:ADC d, s ;(d)+(s)+CFd加加1: INC d ;(d)+1d v说明:说明:d不能为立即数不能为立即数d,s不能同时为存储器操作数不能同时为存储器操作数三条指令运算结果将影响状态标志位,但三条指令运算结果将影响状态标志位,但INC指指令不影响令不影响CF 举例数组加法举例数组加法Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyri

44、ght 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院举例举例eg1ADD AX, BXADD AL, BLADD CX, 20ADD CL, 0A4HADD DL, DA_BYTEADD DA_WORDSI, DX若若(CL)=E5H,执行执行ADD CL,0A4H后后,(CL)=?CF、SF、AF、ZF、OF、PF各为多少?各为多少?

45、Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院举例举例v说明说明ADC指令主要用于大于指令主要用于大于16位数的加位数的加法中。法中。eg:现有一个:现有一个32

46、位无符号整数存放在位无符号整数存放在AXBX中,中,现要加上一个常数现要加上一个常数123456hv说明说明INC指令主要用于修改某些计数器的指令主要用于修改某些计数器的计数和地址指针。计数和地址指针。INC CLINC SIINC COUNTEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client P

47、rofile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院2、减法指令、减法指令v指令格式:指令格式:减法:减法: SUB d, s ;(d)-(s)d带进位减法带进位减法:SBB d, s ;(d)-(s)-CFd减减1: DEC d ;(d)1d 求补:求补: NEG d ;d+1d比较:比较: CMP d,s ;(d)-(s)只置只置标标 志位志位v说明:均可做字说明:均可做字/字节运算,除字节运算,除NEG置置CF=1,DEC不影响不影响CF外,其他按一般规则影响外,其他按一般规则影响状态位状态位Evaluation

48、 only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院举例举例1SUB AX, BXSUB AL,BLSUB CX,30HSUB DX,DA_WORDv若若(AL)=B7H,(BL)=A9H

49、,执行执行SUB AL,BL后,后,AL,BL,CF,SF,PF,OF,ZF,AF为多少?为多少?SUB SI, 10SUB BYTE PTRSI, 10Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty

50、 Ltd.浙工大信息学院浙工大信息学院举例举例(续续)v例例2:SBB主要用于大于主要用于大于16位的减法位的减法BXAXSIDIv例例3:DEC CXDEC BYTE PTRDIDEC WORD PTRBPEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Cop

51、yright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院举例举例(续续)v例例4: 执行执行 NEG AL若若(AL)=00000100B=+4若若(AL)=11101110B=-18若若(AL)=11111101B=-3则则(AL)各为多少?各为多少?答:答: (AL)=11111100B=4 (AL)=00010010B=18 (AL)=00000011B=3Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011

52、Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院举例(续)举例(续)v例例5: CMP A, B ;(A)(B),只置标志只置标志位位v 通常通常比较指令条件转移指令比较指令条件转移指令,检查标志,检查标志位的状态以决定程序的走向。位的状态以决定程序的走向。v两无符号数比较:两无符号数比较:ZF=1则则A=BZF=0则则 ABCF=0则则 ABCF=1则则 A

53、BEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院举例(续)举例(续)v两有符号数比较:两有符号数比较:OF SF=0则则 ABOF SF=1则则AB例:例:CMP

54、 CL,64H JAE SUBEREvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院3、乘法指令、乘法指令v指令格式:指令格式:无符号数乘法无符号数乘法 MUL sr

55、c ;字节乘法:字节乘法:(AL)*(src)AX ;字乘法:字乘法: (AX)*(src)DXAX带符号数乘法带符号数乘法 IMUL src ;同上;同上v说明:说明:字节乘法字节乘法 积积AX,一个乘数,一个乘数AL 字乘法字乘法 积积DX AX,一个乘数一个乘数AXSrc不允许为立即数不允许为立即数运算结果只影响运算结果只影响CF,OF,若运算结果的高位字,若运算结果的高位字节或者高位字有效即节或者高位字有效即AH0或或DX0,则则CF=OF=1,否则否则CF=OF=0Evaluation only.Created with Aspose.Slides for .NET 3.5 Clie

56、nt Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院v例:已知例:已知(AL)=12H,(DS)=2000H,(BX)=0234H 执行执行MUL BYTE PTRBX+2AH 后后(AX)=? CF=?OF=? 若若 src=(2025EH)=66H答答: (AX)=12H*66H=0

57、72CH CF=OF=1Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院3、除法除法指令指令v指令格式:指令格式:无符号数除法无符号数除法 DIV src ;字节除

58、法:字节除法:(AX)/(src)AL 余数放余数放AH ;字除法:字除法: (DXAX)*(src)AX 余数放余数放DX带符号数乘法带符号数乘法 IDIV src ;同上;同上v说明:说明:对状态标志无定义对状态标志无定义规定规定IDIV指令运算结果余数的符号与被除数相指令运算结果余数的符号与被除数相同同带符号数除法运算中,当被除数位数不够时,带符号数除法运算中,当被除数位数不够时,可进行扩展可进行扩展 CBW,CWDEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyrigh

59、t 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院4、除法指令(续)、除法指令(续)v例:已知例:已知(BX)=2000H, (DS)=3000H, (SI)=050EH, (AX)=1500H 执行执行DIV BYTE PTRBX+SI 后后(AL)=? (AH)=? 若若 src=(3250EH)=22H答答: (AL)=1500H/

60、22H=9EH (AH)=04HEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院4、除法指令(续)、除法指令(续)v符号数扩展指令:符号数扩展指令:CBW :将寄存

61、器:将寄存器AL中符号位扩展到寄存器中符号位扩展到寄存器AHCWD :将寄存器:将寄存器AX中符号位扩展到寄存器中符号位扩展到寄存器DX专门为专门为IDIV指令设置的符号扩展指令,使用时指令设置的符号扩展指令,使用时应安排在应安排在IDIV指令之前指令之前Eg: CWD IDIV BXAH 7 AL 0CBWDX 15 AX 0CWDEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Cr

62、eated with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院5、压缩、压缩BCD码十进制调整指令码十进制调整指令v1、指令格式:、指令格式:加法十进制调整加法十进制调整 DAA执行的操作:执行的操作:之前必须先执行之前必须先执行ADD或或ADC指指令令,加法指令必须把两个压缩的,加法指令必须把两个压缩的BCD码相加,码相加,并把结果存放在并把结果存放在AL寄存器中。寄存器中。减法十进制调整减法十进制调整 DAS执行的操作:之前必须先执行

63、执行的操作:之前必须先执行SUB或或SBB指指令,加法指令必须把两个压缩的令,加法指令必须把两个压缩的BCD码相减,码相减,并把结果存放在并把结果存放在AL寄存器中。寄存器中。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011

64、 Aspose Pty Ltd.浙工大信息学院浙工大信息学院v2、调整的方法、调整的方法DAA:AL中运算出现非法码(中运算出现非法码(1010B1111B)或本位向高位有进位(或本位向高位有进位(AF=1或或CF=1),由),由DAA自动进行加自动进行加6调整。具体讲:调整。具体讲:若若AL低低4位大于位大于9或者或者AF=1,AL加加06h若若AL高高4位大于位大于9或者或者CF=1,AL加加60hEg:进行:进行BCD码加法运算码加法运算 5968127Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profi

65、le 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院DAA举例举例v已知已知(AX)=6698BCD,(BX)=2877BCD,编写一编写一段程序求段程序求(AX)+(BX)(AX)vP119,3.54Evaluation only.Created with Aspose.Slides for .NET

66、 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.浙工大信息学院浙工大信息学院6、非压缩、非压缩BCD码十进制调整指令码十进制调整指令v加法十进制调整加法十进制调整 AAAv减法十进制调整减法十进制调整 AASv乘法十进制调整乘法十进制调整 AAMv除法十进制调整除法十进制调整 AADEvalu

67、ation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.3.3逻辑运算与移位运算逻辑运算与移位运算v1.逻辑运算指令逻辑运算指令:对字节或字数据进行按位的操作。v格式: 浙工大信息学院浙工大信息学院AND

68、d, s OR d, s NOT dXOR d, s TEST d, s ;d ds 主要用于屏蔽某些位主要用于屏蔽某些位 ;d ds;d ;d ds;dsEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pt

69、y Ltd.举例举例vEg1:p122 3.70,3.72vEg2: AND AL, 0FHOR AL, 0F0HTEST AL,00000001BvEg3:p122 3.71,3.73vEg4:已知(AX)=5555H,(BX)=FF00H 执行AND AX, BX XOR AX, AX NOT BX 后:(AX)=? (BX)=?vEg5: p121 3.51浙工大信息学院浙工大信息学院Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspo

70、se Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2.移位指令移位指令v算术移位SAL d, countSAR d, countv逻辑移位SHL d, countSHR d, countcount为1或CL表示移位次数SAL,SAR对符号数进行移位,SHL,SHR对无符号数进行移位,总是以0补已空出的位这类指令只影响CF,OF,若count=1,如符号位发生变化,则OF=1 若count 1,OF

71、标志位将无效浙工大信息学院浙工大信息学院CF0CF0CF0CFEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.举例举例vEg1:(AL)=10110100B,CF=1在SAL AL,1 之后(

72、AL)= CF= OF= SAR AL,1之后 (AL)= CF= OF= SHL AL,1 之后(AL)= CF= OF= SHR AL,1 之后(AL)= CF= OF=vEg2:将两个非压缩BCD码(高位在BL,低位在AL)合并成压缩BCD码送AL浙工大信息学院浙工大信息学院Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides fo

73、r .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.循环移位指令循环移位指令v循环左移 ROL d, countv循环左移 ROR d, countv循环左移 RCL d, countv循环左移 RCR d, count其中count,CF,OF影响同上浙工大信息学院浙工大信息学院CFCFEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty

74、Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.举例举例vEg1:(AL)=10110100B,CF=1在ROL AL,1 之后(AL)= CF= OF= ROR AL,1之后 (AL)= CF= OF= RCL AL,1 之后(AL)= CF= OF= RCR AL,1 之后(AL)= CF= OF=vEg2: p120:3.53,3.82浙工大信息学院浙工大信息学院Evaluation only.Crea

75、ted with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.指令一章所有作业指令一章所有作业浙工大信息学院浙工大信息学院新版本书新版本书P118: 3.32 (1)(2)(3)(5)(6)(9)(10) 3.33(1)(3)(4)(5)(7) 3.34 3.38 3.41 3.47 3.483.50 3.51 3.74 3.78 3.79 3.81Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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