计算机硬件技术基础第6章课件.ppt

上传人(卖家):晟晟文业 文档编号:5176574 上传时间:2023-02-16 格式:PPT 页数:112 大小:2.24MB
下载 相关 举报
计算机硬件技术基础第6章课件.ppt_第1页
第1页 / 共112页
计算机硬件技术基础第6章课件.ppt_第2页
第2页 / 共112页
计算机硬件技术基础第6章课件.ppt_第3页
第3页 / 共112页
计算机硬件技术基础第6章课件.ppt_第4页
第4页 / 共112页
计算机硬件技术基础第6章课件.ppt_第5页
第5页 / 共112页
点击查看更多>>
资源描述

1、计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社第第6章章 指令系统与汇编语言基础指令系统与汇编语言基础计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社【学习目标【学习目标】1.知道汇编语言的程序结构。知识点:指令、伪指令、标识符、保留字、常量、变量、表达式 源程序、目标程序、可执行程序、子程序、MASM、系统功能调用2.掌握8086指令系统和汇编语言程序设计及调试。能力要求:熟记8086的指令及功能。能进行简单汇编语言程序设计及调试。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂

2、编编高等教育出版社高等教育出版社【重点、难点【重点、难点】1 8086指令的功能及应用。2汇编语言程序的格式及语法要求。3汇编语言程序设计及调试。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社【内容框架】指令系统及指令系统及汇编语言基础汇编语言基础汇编语言基础汇编语言基础指令格式及寻址方式指令格式及寻址方式8086的指令系统的指令系统程序设计举例程序设计举例汇编语言的程序格式和组成汇编语言的程序格式和组成汇编语言概述汇编语言概述上机步聚上机步聚指令格式指令格式8086的寻址方式的寻址方式数据传送指令数据传送指令算术运算指令算术运算指令位操作指令

3、位操作指令转移指令转移指令顺序程序设计顺序程序设计分支程序设计分支程序设计循环程序设计循环程序设计子程序设计子程序设计循环指令循环指令输入输入/输出输出DOS功能调用功能调用处理器控制类指令处理器控制类指令计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.1.1 汇编语言概述汇编语言概述计算机编程语言:机器语言、汇编语言和高级语言。机器语言:由二进制代码按一定语法和语义组成的,是CPU能够理解并直接执行的机器指令集合。指令难记、程序难以阅读、通用性差。汇编语言:符号助记式语言,即符号化了的机器语言。程序代码比机器语言程序代码更具易读性,记忆方便

4、。由汇编语言编写的程序称为汇编语言源程序,需要经过称为汇编程序翻译成机器语言的目标程序,才能被CPU读取并执行。高级语言:接近人类自然语言的计算机编程语言,比汇编语言更加易于理解。高级语言源程序,须由翻译软件转换成汇编语言和机器语言,才能最终能被CPU读取并执行。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社三种语言程序指令的对比:指令的功能是把a+b的和赋给c。学习汇编语言的目的:汇编语言程序比用高级语言程序占用内存资源更少,执行速度更快。对涉及硬件的操作汇编语言比高级语言功能更强。(嵌入式编程)汇编语言源程序更能从原理上体现计算机的工作过程

5、,是学习计算机原理和接口技术的基础。学习汇编语言是学习软件的加密、解密技术和网络安全的必备的基础。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.1.2 汇编语言的程序格式和组成汇编语言的程序格式和组成一、汇编语言程序的基本框架1程序案例:以实现A+BC的汇编语言源程序为例。2汇编语言程序的一般格式:(1)汇编语言程序采用的是段式结构,一个汇编语言程序由若干个逻辑段组成。如数据段DSEG、堆栈段SSEG和代码段CSEG。各段以“段名 SEGMENT”开始,以“段名 ENDS”结束。段名需由程序员命名。(2)汇编语言程序中包含指令语句和伪指令语

6、句。指令语句在汇编过程中被翻译、链接成相应的可执行的机器指令代码。如MOV、ADD等。伪指令语句是汇编控制命令,在汇编过程中实现数据定义、分配存储区、指示程序结果等功能,不产生任何目标代码。如SEGMENT、ASSUME等。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社DSEG SEGMENT ;数据段,给变量、数组指定数据,分配存储空间。A DB 01H B DB 02H C DB?DSEG ENDSSSEG SEGMENT STACK;定义堆栈段。DB 100 DUP(?)SSEG ENDSCSEG SEGMENT;代码段。ASSUME C

7、S:CSEG,DS:DSEG,SS:SSEG ;指定段功能。START:MOV AX,DSEG ;给数据段寄存器装初值。MOV DS,AX MOV AL,A ;实现A+BC ADD AL,B MOV C,AL MOV AH,4CH ;系统功能调用,软中断。结束程序返回DOS。INT 21HCSEG ENDS END START返回返回计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社(3)汇编语言的语法要素有标识符、保留字、变量、常量、标号、表达式等。标识符:程序中用于指定段名、变量名、符号常量名、标号名等的字符串。标识符的使用应符合命名规则,并注

8、意“见其名,知其义”。标识符的命名规则:由字母、数字、专用符号“?”、“”、“”、“$”、“_”等字符组成。数字不能作为首字符,“”只能作为首字符。有效字符为31个。保留字:保留字是汇编语言中预留的、具有固定用途的字符串。所有的寄存器名、指令及伪指令的助记符、运算符都属于保留字,编程时不允许作它用。如上述程序中的DB、MOV、SEGMENT、CX等。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社 变量:操作数在内存中的符号地址。程序中使用的所有变量都需要在数据段中用变量定义伪指令进行定义。变量名由程序员按标识符的命名规则命名。常量:常量是程序运

9、行中数值不变的量。有数值常量和符号常量。符号常量需使用相应的赋值伪指令定义。标号:标号是机器指令在内存中的符号地址。汇编语言程序中第一条指令、转移的目标指令和重复执行的指令前面都要加上一个标号,作为转移指令或循环指令的目的地址。标号由标识符和冒号组成。程序开始处的标号,需在代码段结束之后,加上“END 标号”,如“END START”。标号名也由程序员遵循标识符命名规则命名。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社 表达式:由常量、变量、标号及运算符构成的式子。分数值表达式和地址表达式。数值表达式由常量与运算符构成。运算符分三类:算术运算

10、符、逻辑运算符和关系运算符。算术运算符逻辑运算符关系运算符+(加法)-(减法)*(乘法)/(除法)MOD(模除)NOT(非)AND(与)OR(或)XOR(异或)SHL(左移)SHR(右移)EQ(等于)NE(不等于)LT(小于)GT(大于)LE(小于或等于)GE(大于或等于)说明:“/”运算结果为商的整数部分;关系运算符的结果为-1或0,当关系成立时,结果为-1(用补码表示),关系不成立时,结果为0。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社 地址表达式由常量、变量、标号、寄存器BP、BX、SI、DI等的内容和运算符构成,用于进行指令寻址。地

11、址表达式除可使用算术运算符、逻辑运算符和关系运算符外,还有一些专用的运算符。算术运算符逻辑运算符分离运算符:(段超越前缀)PTR(类型属性)THIS(定义类型)SEG(取段地址)OFFSET(取偏移地址)TYPE(取类型)LENGTH(取变量单元数)SIZE(取变量总字节数)HIGH(取高字节)LOW(取低字节)段超越前缀段超越前缀“:”。给变量、标号或地址表达式临时指定一个段属性。格式:段寄存器名:地址表达式示例:MOV AL,ES:1000H计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社类型运算符PTR。给变量、标号或地址表达式临时指定一个

12、类型。格式:类型 PTR 地址表达式示例:MOV AX,WORD PTR 1000H类型定义运算符THIS。指定变量、标号或地址表达式的类型。格式:标识符 EQU THIS类型示例:A EQU THISBYTE取段地址运算符SEG。产生其后变量或标号所在段的段地址。格式:SEG 变量(或标号)示例:MOV AX,SEG DATA计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社取偏移地址运算符OFFSET。产生其后变量或标号的偏移地址。格式:OFFSET 变量(或标号)示例:MOV BX,OFFSET DATA取类型运算符TYPE。产生其后变量或标

13、号的类型值。格式:TYPE 变量(或标号)示例:MOV BX,TYPE A变量类型类型值标号类型类型值BYTE(字节)WORD(字)DWORD(双字)QWORD(4字)TBYTE(10字节)124810NEARFAR-1-2计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社取变量单元数运算符LENGTH。产生其后变量所包含的单元数。运算结果取决于变量定义伪指令中第一个表达式。若变量定义伪指令中第一个表达式为重复子句“n DUP(数值表达式)”,则结果为重复因子n;否则结果为1。格式:LENGTH 变量示例:LENGTH DATADATA DB 3

14、DUP(4),01H,05H 运算结果为3。DATA DB 01H,3 DUP(4),05H 运算结果为1。取变量总字节数运算符SIZE。产生其后变量所包含的总字节数。格式:SIZE 变量示例:SIZE DATA定义“DATA DB 3 DUP(4),01H,05H”,运算结果为5。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社分离高字节运算符HIGH。产生其后运算对象的高字节。格式:HIGH 运算对象示例:MOV AL,HIGH 1234H(AL)=12H分离低字节运算符LOW。产生其后运算对象的低字节。格式:LOW 运算对象示例:MOV A

15、L,LOW 1234H(AL)=34H计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社(4)汇编语言程序中也允许使用注释。分号是汇编语言的注释符号,分号后面的文字直到行尾都是注释内容。(5)汇编语言程序结束,必须返回DOS操作系统,才能对程序进行编译和链接。返回DOS的最常用方法是使用4CH号系统功能调用。如:MOV AH,4CHINT 21H计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社二、汇编程序中常用的伪指令1变量定义伪指令 功能:为数据分配存储单元,同时为存储单元指定一个变量名。种类:DB

16、:字节变量定义伪指令DW:字变量定义伪指令DD:双字变量定义伪指令 格式:变量 DB(或DW、DD)一个或多个表达式示例1:DB 100 DUP (0);分配100B的存储空间,每个字节的值为0 示例2:DATA DB 13H,57H;定义两个B的数据区,内容是13H,57H 示例3:A DW 1357H;为变量A分配一个字空间,其中内容为1357H 计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社2段定义伪指令段定义伪指令的主要功能是指示汇编程序如何按段组织程序和使用存储器。(1)SEGMENT和ENDS伪指令 功能:用于对段结构进行定义,以将

17、程序分成若干逻辑段。格式:段名 SEGMENT段名 ENDS(2)ASSUME伪指令 功能:指定程序中定义的各个逻辑段的功能。格式:ASSUM 段寄存器:段名,段寄存器:段名计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社3赋值伪指令(1)EQU伪指令 功能:用数值或表达式定义标识符,以便在后面程序中引用。格式:标识符 EQU 表达式(或数值)例:COUNT EQU 6 ;使符号常量COUNT等于6。ADDR EQU ES:BXSI ;使ADDR等同于表达式ES:BXSI。(2)“=”伪指令 功能:与EQU基本相同,可以对同一标识符重新赋值,EQ

18、U不可以。格式:标识符=表达式(或数值)例:COUNT=6 COUNT=COUNT+1计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.1.3 上机步骤上机步骤汇编语言的上机过程一般分为编辑、汇编、链接三步。汇编语言编译软件主要有MASM、TASM和MCS51,以MASM为例。1 启动MASM编译器。(edit)2编辑汇编语言源程序(保存为(保存为Filename.asm)3汇编源程序,生成目标程序(masm Filename.asm)4.链接目标程序,生成可执行程序(link Filename.obj)5运行程序(Filename或Filen

19、ame.exe)注意:若程序中没有显示语句,则需通过DEBUG命令查看程序运行结果。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.2.1 指令格式指令格式指令包含操作码和操作数两部分。操作码:指出操作的内容,即要完成的是什么操作;操作数:指出操作的对象,可以是立即数、寄存器和存储器。根据操作数的多少,指令可分为零操作数指令、一操作数指令、二操作数指令、三操作数指令和多操作数指令。1零操作数指令零操作数指令 格式:操作码 操作:两种情况,一是指令中不需操作数,如空操作指令NOP、停机指令HLT等;二是指令的操作数是隐含在某个通用寄存器中,如十

20、进制数的调整指令DAA、DAS等。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社2一操作数指令一操作数指令 格式:操作码 A 操作:用OP表示操作,则一操作数指令可表示为OP(A)A,即将指令中指定的存储地址A或寄存器A中的操作数进行操作码所指定的运算后,结果送入地址A中。如增量指令INC、减量指令DEC等。注:(A)表示地址A中的内容。3二操作数指令二操作数指令 格式:操作码 A1,A2 操作:(A1)OP(A2)A1(或A2),即操作数A1与A2进行操作码所规定的操作后,结果存放在目的地址A1或A2中。计算机硬件技术基础计算机硬件技术基础李

21、桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社4三操作数指令三操作数指令 格式:操作码 A1,A2,A3 操作:(A1)OP(A2)A3,即将A1和A2中的两个源操作数进行操作码所规定的运算后,结果存入目的地址A3中。5多操作数指令多操作数指令在处理成批数据时,要用多操作数指令描述数据存放的首地址、长度及下标等信息。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.2.2 8086的寻址方式的寻址方式寻址方式:寻址方式:指令中操作数的表示方式。寻址寻址:在处理数据时,根据给出的或计算出的地址进行操作数的存取。8086的主要寻址方式的

22、主要寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址等。一、立即寻址一、立即寻址指令中直接给出操作数的寻址方式。【例】MOV AL,14H14H为立即数,指令执行后,(AL)=14H。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社二、直接寻址二、直接寻址操作数在存储器中,指令中操作码后给出的是操作数的16位的偏移地址EA。寻址时,须先计算出操作数的物理地址,再按此访问存储器取出操作数。物理地址=段地址16偏移地址=3000162000=32000H32000H=8086,是操作数。指令执行

23、后(AX)=8086H。【例】MOV AX,2000H计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社三、寄存器寻址三、寄存器寻址指令中给出的是寄存器名,操作数在寄存器中的寻址方式为寄存器寻址。【例】MOV AX,BX操作数在寄存器BX中,指令执行后,(AX)=(BX),BX中的内容不变。四、寄存器间接寻址四、寄存器间接寻址操作数在存储器中,操作数的有效地址EA在基址寄存器BX、BP或变址寄存器SI、DI中。【例】MOV AX,BX计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社(BX):操作数的偏

24、移地址。段地址(DS)=3000H物理地址=段地址16(BX)=32000H指令执行后,(AX)=8086H。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社五、寄存器相对寻址五、寄存器相对寻址操作数的有效地址由一个基址或变址寄存器的内容加上指令中给出的8位或16位的位移量得到。即:物理地址=段地址16(寄存器)位移量【例】MOV AX,COUNTBX设(DS)=2000H,(BX)=1000H,COUNT=3000H,(24000H)=1058H。操作数的物理地址=2000H16+1000H+3000H=24000H指令执行后,(AX)=105

25、8H。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社六、基址变址寻址六、基址变址寻址操作数的有效地址是基址寄存器和变址寄存器的内容之和。【例】MOV AX,BXDI设(DS)=3000H,(BX)=1000H,(DI)=2000H操作数的物理地址=3000H16+1000H+2000H=33000H。七、相对基址变址寻址七、相对基址变址寻址操作数的有效地址等于基址寄存器内容、变址寄存器内容和指令中给出的8位或16位的位移量之和。【例】MOV AX,TABBXSI设(DS)=3000H,(BX)=1000H,(SI)=2000H,TAB=200H

26、操作数的物理地址=3000H16+1000H+2000H+200H=33200H。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社8086指令系统从功能方面可以分为数据传送指令、算术运算指令、逻辑运算指令、串处理指令、控制转移指令和处理机控制指令六类。6.3.1 数据传送指令数据传送指令功能:将操作数、地址传送到寄存器或存储单元中。种类:通用数据传送指令:MOV、PUSH/POP、XCHG、XLAT 累加器专用传送指令:IN/OUT 地址传送指令:LEA、LES、LDS 标志寄存器传送指令LAHF、SAHF、PUSHF、POPF计算机硬件技术基础

27、计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社一、通用数据传送指令1MOV指令格式:MOV 目的操作数,源操作数功能:将源操作数传送到目的操作数空间,源操作数不变。语法要求:源操作数和目的操作数不能同为存储器操作数。立即数只能作为源操作数,不能作目的操作数。CS不能作为目的操作数。不允许两个段寄存器之间直接传送信息。立即数不能直接送给段寄存器。目的操作数和源操作数的类型要匹配。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社【例】指出并改正下列语句中的错误。(1)MOV 12H,AL (2)MOV DI,SI (3

28、)MOV CS,AX (4)MOV DS,ES (5)MOV DS,1234H (6)MOV AX,BL(1)将立即数作为目的操作数。(2)两个操作数都是存储器操作数。(3)将CS作为目的操作数。(4)两个段寄存器之间直接传送数据。正确:MOV AX,SI MOV DI,AX(5)立即数直接送给段寄存器。正确:MOV AX,1234H MOV DS,AX(6)目的操作数与源操作数类型不匹配。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社2入栈指令PUSH和出栈指令POP格式:PUSH 源操作数 POP 目的操作数功能:PUSH将源操作数压入椎栈

29、的栈顶;POP指令将栈顶的内容弹出送到目的操作数。执行PUSH指令时,系统先将(SP)-2SP,再将字操作数存储到SP指示的栈顶单元中;执行POP指令时,系统先将SP所指的栈顶的字操作数送至目标空间,再将(SP)+2SP,指示当前栈顶单元。要求:操作数必须为16位的。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社3交换指令XCHG格式:XCHG 目的操作数,源操作数功能:将目的操作数和源操作数的内容相互交换。4换码指令XLAT格式:XLAT功能:将一种代码转换成另一种代码。XLAT指令通常用于字符和ASCII码转换。执行时,将表格的首地址预先存

30、入到BX中,将表中数据距表首地址的位移量存到AL中,然后将根据BX和AL的内容找到的数送到AL中,即BX+ALAL。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社【例6.9】分析下述程序的运行结果。DATA SEGMENT ASC DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39HDATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV BX,OFFSET ASC MOV AL,6 XLAT MOV AH,4CH IN

31、T 21HCODE ENDS END START 该程序的运行结果:(AL)=36H计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社二、累加器专用传送指令1输入指令IN格式:IN 累加器,端口地址功能:从I/O端口读入信息到累加器。2 输出指令OUT格式:OUT 端口地址,累加器 功能:将累加器中信息输出到I/O端口。使用IN、OUT指令时,若端口地址超出16位,需用寄存器DX辅助提供端口地址。【例】MOVDX,1200 ;将累加器AL内容输出到地址为1200H的端口。OUT DX,AL计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维

32、堂 编编高等教育出版社高等教育出版社三、地址传送指令1取有效地址指令LEA格式:LEA 目的操作数,源操作数功能:将源操作数的有效地址送到目的操作数中。【例】设(BX)=1000H,(SI)=0100H 则指令LEA DI,0030H BXSI 指令执行后(DI)=1130H2地址指针送寄存器和DS指令 LDS格式:LDS 目的操作数,源操作数功能:将源操作数指定的存储单元中的4B的地址指针传送到DS和目的操作数,高两字节送DS,低两字节送目的操作数。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社【例】分析指令LDS SI,40H的执行结果。已

33、知(DS)=30C0H。DS2030C4330C4230C4130C40300040SI3地址指针送寄存器和ES指令 LES格式:LES 目的操作数,源操作数功能:与LDS指令类似,区别是传送地址时,高两字节送ES寄存器。指令执行后,(SI)=4020H,(DS)=3000H。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社四、标志传送指令四、标志传送指令专用于对标志寄存器操作。1LAHF,将标志寄存器低8位送AH。2SAHF,将(AH)送标志寄存器低8位。3PUSHF,将整个标志寄存器的内容压入堆栈。4POPF,弹出栈顶的内容送标志寄存器。计算

34、机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.3.2 算术运算指令算术运算指令一、加法指令1不带进位的加法指令ADD格式:ADD 目的操作数,源操作数功能:源操作数+目的操作数目的操作数【例】分析指令下述指令的执行结果。MOV AL,8DHMOVBL,0AHADD AL,BL指令执行后,(AL)=97H计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社2带进位的加法指令ADC格式:ADC 目的操作数,源操作数功能:源操作数+目的操作数+(CF)目的操作数3加1指令INC格式:INC 目的操作数 功能

35、:目的操作数+1目的操作数4压缩BCD码的加法调整指令DAA格式:DAA 功能:跟在十进制数的ADD、ADC或INC指令之后,将AL中的运算结果调整为压缩BCD码。压缩BCD码:一个字节存储两个BCD码。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社5非压缩BCD码的加法调整指令AAA格式:DAA 功能:跟在十进制数的ADD、ADC或INC指令之后,将AL中的运算结果调整为非压缩BCD码。非压缩BCD码:一个存储单元中,仅在低4位存储一个BCD码,高4位为0。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等

36、教育出版社1不带借位的减法指令SUB格式:SUB 目的操作数,源操作数功能:(目的操作数)(源操作数)目的操作数。2带借位的减法指令SBB格式:SBB 目的操作数,源操作数功能:(目的操作数)(源操作数)(CF)目的操作数。注意:CF为该指令执行前的借位。3减1指令DEC格式:DEC 目的操作数 功能:(目的操作数)1目的操作数。二、减法指令二、减法指令计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社4压缩BCD码的减法调整指令DAS格式:DAS 功能:跟在十进制数的SUB、SBB或DEC指令之后,将AL中的运算结果调整为压缩BCD码。5非压缩B

37、CD码的减法调整指令AAS格式:AAS功能:跟在十进制数的SUB、SBB或DEC指令之后,将AL中的运算结果调整为非压缩BCD码。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6求补指令NEC格式:NEG 目的操作数 功能:把操作数看作有符号数,对其求相反数。实际上就是把操作数按位取反末位加1。【例】MOV AX,5 NEG AX该指令执行后,(AX)=-5计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社7比较指令CMP格式:CMP 目的操作数,源操作数功能:(目的操作数)(源操作数),结果不保存

38、,即目的操作数不被改变,只是根据相减的结果设置标志寄存器里的标志位。若两数相等,ZF=1;不相等,ZF=0。对于无符号数,若被减数大于减数,CF=0,若被减数小于减数,CF=1;对于有符号数,若被减数大于减数,OF和SF状态相同;若被减数小于减数,OF和SF状态不同。CMP指令多用于循环跳转指令前,通过比较两个数的大小作为跳转条件。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社三、乘法指令1无符号数乘法指令MUL格式:MUL 源操作数功能:若源操作数是字节型操作数,则将源操作数与(AL)相乘,乘积送AX。若源操作数是字型操作数,则将源操作数与(

39、AX)相乘,乘积送DX、AX。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社2带符号数乘法指令IMUL格式:IMUL 源操作数功能:实现有符号乘法运算。3非压缩BCD码的乘法调整指令AAM格式:AAM功能:跟在十进制数的MUL指令之后,将AX中的运算结果调整为非压缩BCD码。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社四、除法指令1无符号数除法指令DIV格式:DIV 源操作数功能:若源操作数为字节型操作数,则用(AX)除以源操作数,商送AL,余数送AH。若源操作数是字型操作数,则用(DX)与(

40、AX)合起来作为被除数除以源操作数,商送AX,余数送DX。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社2带符号数除法指令IDIV格式:IDIV 源操作数功能:实现有符号除法运算,即把操作数当作补码(有符号数)。3非压缩BCD码的除法调整指令AAD格式:AAD功能:用在十进制数的DIV指令之前,将AX中被除数的两个非压缩BCD码调整,使运算所得的商为非压缩BCD码。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社4字节转换为字指令CBW格式:CBW功能:格式:CBW功能:将(AL)的符号位扩展到A

41、H中,让AX的值等于AL的值。扩展的方法是使AH各位与AL最高位相同。5字转换为双字指令CWD格式:CWD功能:将(AX)的符号位扩展到DX中。扩展方法与CBW基本相同,需使DX的各位与AX的最高位相同。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社算术运算指令对标志位的影响:【例】指出下述指令执行后,标志位CF、ZF、SF、AF、PF、OF的值。MOV AL,87H ADD AL,0DH运算的结果为94H,低4位有向高4位的进位,最高位和次高位都没有产生进位。因此,指令执行后CF=0,ZF=0,AF=1,SF=1,PF=0,OF=0。分析:指

42、令实现的是87H+0DHAL的操作,运算的过程为计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.3.3 位操作指令位操作指令一、逻辑运算指令1逻辑非指令NOT格式:NOT 目的操作数功能:将目的操作数的每一个二进制位按位取反,结果送回目的操作数。【例】MOV AX,26 (存储为0000000000011010B)NOT AX执行结果为(AX)=1111111111100101B=FFE5H,看作无符号数为66509D,看作有符号数为-27D。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社2与

43、运算指令AND格式:AND 目的操作数,源操作数功能:将目的操作数与源操作数按位相与,结果送目的操作数。通常用于分离和屏蔽数据。3或运算指令OR格式:OR 目的操作数,源操作数功能:将目的操作数与源操作数按位相或,结果送目的操作数。【例】MOV AL,49H AND AL,0FH 执行结果(AL)=09H。【例】MOV AL,49H OR AL,3CH 执行结果(AL)=7DH。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社4异或运算指令异或运算指令XOR格式:XOR 目的操作数,源操作数功能:将目的操作数与源操作数按位相异或操作,结果送目的操

44、作数。常用于对数据取反运算。5测试指令测试指令TEST格式:TEST 目的操作数,源操作数功能:将目的操作数与源操作数按位相与,结果不保存,只是根据结果设置标志寄存器里的标志位。应用:源操作数为立即数,测试位为1。若目的操作数该位为1,则ZF=0,否则ZF=1。常用于跳转指令前。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社分析:该程序段是将(AL)从80H开始每次右移1位,直到最低位为1,即(AL)=01H为止。TEST AL,01H:测试(AL)的最低位是否为1JZ L1:条件转移,若ZF=1,即最低位为0就转到L1处,继续移位;当ZF=0

45、,即最低位为1时,程序向下执行。【例】分析下述程序段的执行情况。MOV AL,80H L1:SHR AL,1 TEST AL,01H JZ L1 计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社二、移位指令无源操作数,指令中只能用1或CL给出移位的位数。1算术、逻辑移位指令算术移位指令用于有符号数,而逻辑移位指令用于无符号数。(1)左移指令SAL/SHL格式:SAL/SHL 目的操作数,移位次数功能:格式:SAL/SHL 目的操作数,移位次数功能:SAL为算术左移指令,SHL为逻辑左移指令,二者功能完全相同,将目的操作数左移若干位,最低位补0,最

46、高位送CF。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社【例】MOV AL,16H (00010110B)SHL AL,1【例】MOV BH,0EFH (11101111B)MOV CL,2 SAL BH,CL 执行结果(AL)=00101100B,是原值的2倍。CF=0。执行结果(BH)=10111100,CF=1。00010110001011000CF011101111110111100101111000CF11计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社(2)算术右移指令SAR格式:S

47、AR 目的操作数,移位次数 功能:将目的操作数右移若干位,最高位进行符号位扩展,即与移出的位保持相同,最低位送CF。【例】MOV AL,9CH (10011100B)MOV CL,2 SAR AL,CL执行结果(AL)=E7H,CF=0。100111001101111011101111CF符号扩展00计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社(3)逻辑右移指令SHR格式:SHR 目的操作数,移位次数 功能:将目的操作数右移若干位。最高位补0,最低位送CF。2循环移位指令(1)循环左移指令ROL格式:ROL 目的操作数,移位次数功能:将目的操

48、作数循环左移若干位。其中,最高位送最低位及CF,其他位依次左移。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社2循环移位指令(1)循环左移指令ROL格式:ROL 目的操作数,移位次数功能:将目的操作数循环左移若干位。其中,最高位送最低位及CF,其他位依次左移。(2)循环右移指令ROR格式:ROR 目的操作数,移位次数功能:将目的操作数循环右移若干位。其中,最低位送最高位及CF,其他位依次右移。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社(3)带进位的循环左移指令RCL格式:RCL 目的操作数,

49、移位次数功能:将目的操作数连同CF循环左移若干位。其中,移位前的CF送最低位,最高位送CF。(4)带进位的循环右移指令RCR格式:RCR 目的操作数,移位次数功能:将目的操作数连同CF循环右移若干位。其中,右移前的CF送最高位,最低位送CF。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社6.3.4 转移指令转移指令一、无条件转移指令JMP格式:JMP标号功能:无条件转移到标号所指的指令处。二、单标志条件转移指令通过测试PSW中的相应标志位决定是否执行转移。包括:JC/JNC,JP/JNP,JZ/JNZ,JS/JNS和JO/JNO。格式:JC/J

50、NC(JP/JNP、JZ/JNZ、JS/JNS、JO/JNO)标号功能:JC/JNC:测试CF标志。JC为CF=1转移到标号所指示的指令处执行;JNC指令,CF=0则跳转到标号所指示的指令处执行。计算机硬件技术基础计算机硬件技术基础李桂秋李桂秋 宋维堂宋维堂 编编高等教育出版社高等教育出版社 JP/JNP:测试PF标志。JP为PF=1转移到标号所指示的指令处执行;JNP指令,CF=0则跳转到标号所指示的指令处执行。JZ/JNZ:测试ZF标志。JZ为ZF=1转移到标号所指示的指令处执行;JNZ指令,ZF=0则跳转到标号所指示的指令处执行。JS/JNS:测试SF标志。JS为SF=1转移到标号所指示

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(计算机硬件技术基础第6章课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|