第3章 寻址方式与指令系统_第1页
第3章 寻址方式与指令系统_第2页
第3章 寻址方式与指令系统_第3页
第3章 寻址方式与指令系统_第4页
第3章 寻址方式与指令系统_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 本章主要教学内容本章主要教学内容l指令格式及寻址有关概念指令格式及寻址有关概念l8086指令系统寻址方式及其应用指令系统寻址方式及其应用l8086各类指令的表示、功能、特点及应用各类指令的表示、功能、特点及应用l常用常用DOS和和BIOS中断调用简介中断调用简介lPentium微处理器新增指令和寻址方式微处理器新增指令和寻址方式第第3 3章章 寻址方式与指令系统寻址方式与指令系统2 本章教学目的及要求本章教学目的及要求 通过学习,应掌握:通过学习,应掌握:l8086指令系统寻址方式及地址计算;指令系统寻址方式及地址计算;l8086典型指令及其应用;典型指令及其应用;lDOS和和BIOS中断

2、调用;中断调用;l熟悉熟悉Pentium微处理器新增寄存器、寻址方式和专微处理器新增寄存器、寻址方式和专用指令等。用指令等。第第3章章寻址方式与指令系统寻址方式与指令系统3第第3章章3.1 指令格式及寻址指令格式及寻址3-1-1 指令系统与指令格式指令系统与指令格式 1. 指令与指令系统指令与指令系统l 指令是要求计算机执行特定操作的命令。指令是要求计算机执行特定操作的命令。l 计算机所能执行的全部指令的集合称为指令系统。计算机所能执行的全部指令的集合称为指令系统。l指令以二进制编码的形式存放在存储器中,用二进制编码形指令以二进制编码的形式存放在存储器中,用二进制编码形式表示的指令称为机器指令

3、。式表示的指令称为机器指令。l用符号表示的指令称为符号指令,汇编语言程序中的指令就用符号表示的指令称为符号指令,汇编语言程序中的指令就是符号指令。具有直观、易理解和可帮助记忆的特点。是符号指令。具有直观、易理解和可帮助记忆的特点。寻址方式与指令系统寻址方式与指令系统4第第3章章寻址方式与指令系统寻址方式与指令系统 2. 指令格式指令格式(1)操作码字段:规定指令的操作类型,说明计算机要执)操作码字段:规定指令的操作类型,说明计算机要执行的具体操作。行的具体操作。(2)操作数字段:说明在指令执行的过程中需要的操作数。)操作数字段:说明在指令执行的过程中需要的操作数。5 3-1-2 寻址及寻址方式

4、的概念寻址及寻址方式的概念 一条指令要解决两个问题:一条指令要解决两个问题:l指出进行什么操作,由指令操作码来表明;指出进行什么操作,由指令操作码来表明;l指出操作数的来源,即操作数的寻址方式。指出操作数的来源,即操作数的寻址方式。 第第3章章寻址方式与指令系统寻址方式与指令系统6第第3章章寻址方式与指令系统寻址方式与指令系统根据操作数存放的位置,有根据操作数存放的位置,有3种表示形式:种表示形式:(1)立即数:在指令中,跟随在操作码后。)立即数:在指令中,跟随在操作码后。(2)寄存器操作数:包含在)寄存器操作数:包含在CPU的某个内部寄存器中。的某个内部寄存器中。(3)存储器操作数:在内存数

5、据区中。)存储器操作数:在内存数据区中。 7第第3章章寻址方式与指令系统寻址方式与指令系统 3-2 8086指令系统的寻址方式指令系统的寻址方式 8086提供了与操作数有关和与提供了与操作数有关和与I/O端口地址有关的两端口地址有关的两类寻址方式。类寻址方式。l 与操作数有关的寻址方式共与操作数有关的寻址方式共7种,分别是种,分别是立即数寻址立即数寻址、寄寄存器寻址存器寻址、直接寻址直接寻址、寄存器间接寻址寄存器间接寻址、寄存器相对寻址寄存器相对寻址、基址变址寻址基址变址寻址和和相对基址变址寻址相对基址变址寻址方式。方式。l 与与I/O端口有关的寻址方式分别是端口有关的寻址方式分别是直接端口寻

6、址直接端口寻址和和间接端间接端口寻址口寻址方式。方式。什么是立即什么是立即数寻址?数寻址?9第第3章章寻址方式与指令系统寻址方式与指令系统 3-2-1 与数据有关的寻址方式与数据有关的寻址方式1. 立即数寻址方式立即数寻址方式 操作数直接存放在指令中。用来对存储器或寄存器赋值,操作数直接存放在指令中。用来对存储器或寄存器赋值,只能用于源操作数字段。只能用于源操作数字段。例如:例如:MOV AL,11001010B ;将二进制数;将二进制数11001010B 送寄存器送寄存器ALMOV AL,0FH ;将十六进制数;将十六进制数0FH送送ALMOV AX,1234H ;将;将1234H送送AX;

7、 AH中为中为12H,AL中为中为34HMOV AL,10 ;将十进制数;将十进制数10送送AL什么是寄存什么是寄存器寻址?器寻址?11第第3章章寻址方式与指令系统寻址方式与指令系统 2. 寄存器寻址寄存器寻址 操作数存放在操作数存放在CPU的内部寄存器时,在指令中指出寄存的内部寄存器时,在指令中指出寄存器名。器名。 8位操作数采用位操作数采用AH、AL、BH、BL、CH、CL、DH、DL等寄存器保存;等寄存器保存;16位操作数采用位操作数采用AX、BX、CX、DX、SI、DI、SP、BP等寄存器保存。等寄存器保存。例如:例如:MOV AX,BX;将;将BX的内容送的内容送AX ADD AX,

8、BX;执行(;执行(AX)(AX)+(BX) 什么是直接什么是直接寻址?(存寻址?(存储器)储器)13第第3章章寻址方式与指令系统寻址方式与指令系统 3存储器寻址方式存储器寻址方式有效地址有效地址EA:指令中给出的操作数的地址码,是一个位移:指令中给出的操作数的地址码,是一个位移量数据。量数据。EA可由多种方式给出,对应多种可由多种方式给出,对应多种存储器寻址存储器寻址方式。方式。(1)直接寻址)直接寻址 指令中给出的地址码即为操作数的有效地址。指令中给出的地址码即为操作数的有效地址。mov ax, 0002hEA=0002h,假设段地址,假设段地址(DS)=2000H,则操作数的物理,则操作

9、数的物理地址地址PA=(DS)x10H+EA=20002H(mov ax, ES:0002H,如果不加指明直接寻址使用,如果不加指明直接寻址使用DS)什么是寄存器什么是寄存器间接寻址?间接寻址?(存储器)(存储器)(2)寄存器间接寻址方式)寄存器间接寻址方式 指令中给出指令中给出寄存器寄存器,寄存器中的内容为操作数的有效地址,寄存器中的内容为操作数的有效地址。mov ax, bx ;如如 (DS)=2000h,(BX)=1000h,则则 EA=? PA=?EA=1000h, PA=2000Hx10H+1000H=21000HBX,SI,DI - DSBP - SS什么是寄存器什么是寄存器相对寻

10、址?相对寻址?(存储器)(存储器)(3)寄存器相对寻址方式)寄存器相对寻址方式 指令中给定一个指令中给定一个基址寄存器基址寄存器(或(或变址寄存器变址寄存器)和一个)和一个8位位或或16位的相对偏移量,两者之和作为操作数的有效地址。位的相对偏移量,两者之和作为操作数的有效地址。 mov ax,bx+10h如如 (bx)=1200h,(ds)=2000hEA=? PA=?EA=1200h+10h=1210hPA=(DS)x10H+EA=20000h+1210h=21210hBX,SI,DI - DSBP - SS什么是基址变什么是基址变址寻址?(存址寻址?(存储器)储器)19第第3章章寻址方式与

11、指令系统寻址方式与指令系统(4)基址变址寻址)基址变址寻址 在指令中给出一个在指令中给出一个基址寄存器基址寄存器(bx/bp)和一个和一个变址寄存变址寄存器器(si/di),两者内容之和作为操作数的有效地址。,两者内容之和作为操作数的有效地址。 mov ax,bx+si(DS)=1200h,(bx)=0100h,(si)=0050h,EA=? PA=?EA=(bx)+(si)=0150h, PA=1200Hx10H+EA=12000h+0150h=12150hBx - DSBp - SS基址变址寻址DS1200H0100HBX0050HSI+X10H+12150H存储器22H11HAX1215

12、0H12151HMOV AX, BX+SI什么是相对基什么是相对基址变址寻址?址变址寻址?(存储器)(存储器)(5)相对基址变址寻址)相对基址变址寻址 在指令中给出一个在指令中给出一个基址寄存器(基址寄存器(bx/bp)、一个、一个变址寄存变址寄存器(器(si/di)和和8位或位或16位的位的偏移量偏移量,三者之和作为操作数的,三者之和作为操作数的有效地址。有效地址。mov ax, bx+di+0050h,如,(DS)=2100h,(bx)=0110h,(di)=0020h,EA=? PA=?EA=(bx)+(di)+50h=0110h+0020h+0050h=0180h,PA=21000h+

13、EA=21180hBX - DS; BP - SS23第第3章章寻址方式与指令系统寻址方式与指令系统 3-2-2 与与I/O端口有关的寻址方式端口有关的寻址方式1. 直接端口寻址直接端口寻址 指令中直接给出要访问的端口地址,可访问端口范围为指令中直接给出要访问的端口地址,可访问端口范围为0255。 例如:例如:IN AL,25H 表示从表示从I/O端口地址为端口地址为25H的端口中取数据送到寄存器的端口中取数据送到寄存器AL中。中。24第第3章章寻址方式与指令系统寻址方式与指令系统 2. 寄存器间接端口寻址寄存器间接端口寻址 若访问端口地址值大于若访问端口地址值大于255,须用,须用I/O端口

14、间接寻址方式。端口间接寻址方式。用用DX作为间接寻址寄存器。访问端口范围作为间接寻址寄存器。访问端口范围065535。 例如:例如: MOV DX,285H ;将端口地址;将端口地址285H送到送到DX寄存器寄存器 OUT DX,AL ;将;将AL中的内容输出到中的内容输出到DX指定的端口指定的端口 25第第3章章寻址方式与指令系统寻址方式与指令系统 3-3 8086指令系统指令系统8086指令系统按功能可以分为以下指令系统按功能可以分为以下6类指令:类指令:数据传送类指令数据传送类指令算术运算类指令算术运算类指令逻辑运算(位操作)类指令逻辑运算(位操作)类指令串操作类指令串操作类指令控制转移

15、类指令控制转移类指令处理器控制类指令处理器控制类指令26第第3章章寻址方式与指令系统寻址方式与指令系统3-3-1 数据传送类指令数据传送类指令 数据传送类指令功能是把数据、地址或立即数传送到寄数据传送类指令功能是把数据、地址或立即数传送到寄存器或存储单元。存器或存储单元。 此类指令除此类指令除SAHF和和POPF外均不影响标志寄存器内容。外均不影响标志寄存器内容。 27第第3章章寻址方式与指令系统寻址方式与指令系统 1.1.通用数据传送指令通用数据传送指令(1 1)传送指令)传送指令MOVMOV格式:格式:MOV dstMOV dst,srcsrcMOV MOV 指令的功能指令的功能把源操作数

16、把源操作数srcsrc传送至目的操作数传送至目的操作数dstdst,执行后,执行后源操作数内容不变,目的操作数内容与源操作数内容不变,目的操作数内容与源操作数内容相同。源操作数内容相同。 源操作数可以是通用寄存器、段寄存器、存储器源操作数可以是通用寄存器、段寄存器、存储器以及立即数,目标操作数可以是通用寄存器、段寄以及立即数,目标操作数可以是通用寄存器、段寄存器(存器(CS除外)或存储器。除外)或存储器。 MOV dst,src通用寄存器(通用寄存器(AX,BX,CX,DX,BP,SP,SI,DI)存储器存储器立即数立即数段寄存器(段寄存器(DS,ES,SS,CS-源)源)29 【例例3.6】

17、MOV指令的应用形式分析:指令的应用形式分析:MOV AL,35H ;8位立即数位立即数35H送送ALMOV DX,1234H;16位立即数位立即数1234H送送DXMOV DL,B;字符;字符B的的ASCII码送码送DLMOV CL,BL ;8位寄存器之间传送位寄存器之间传送MOV AX,BX;16位寄存器之间传送位寄存器之间传送MOV AX,2100H ;存储单元数据送;存储单元数据送AXMOV 0210H,SI ;SI中内容送指定存储单元中内容送指定存储单元MOV DS,AX;AX中内容送段寄存器中内容送段寄存器DSMOV SI,DS;DS的内容送的内容送SI所指示单元所指示单元MOV

18、ES,BX ;BX所指的存储单元内容送所指的存储单元内容送ES注意的问题注意的问题(红色为错误指令红色为错误指令):(1)不能在两个存储单元之间传送。)不能在两个存储单元之间传送。 MOV 1000H ,2000H(2)立即数不能送段寄存器。)立即数不能送段寄存器。 MOV DS ,300H (3)段寄存器之间不能传送。)段寄存器之间不能传送。 MOV DS ,ES(4)CS不能做目的但可做源操作数。不能做目的但可做源操作数。MOV CS ,AXMOV AX ,CS(5)操作数类型要匹配,字对字,字节对字节传送)操作数类型要匹配,字对字,字节对字节传送 MOV AX ,BLMOV AX, 1

19、;(6)MOV指令不影响标志寄存器的值指令不影响标志寄存器的值(7)目的操作数不允许用立即数寻址。)目的操作数不允许用立即数寻址。 31第第3章章寻址方式与指令系统寻址方式与指令系统 (2)堆栈操作指令)堆栈操作指令PUSH/POP进栈指令:进栈指令:PUSH opr ;SPSP2,将源操作,将源操作 数数opr压入堆栈压入堆栈出栈指令:出栈指令:POP opr ;栈顶弹出字数据到目标;栈顶弹出字数据到目标 操作数操作数opr,SPSP+2 堆栈是存储器中的一个特殊区域,用于存入和取堆栈是存储器中的一个特殊区域,用于存入和取出数据,堆栈以出数据,堆栈以“先进后出先进后出”方式进行数据操作。方式

20、进行数据操作。8086堆栈组织中,堆栈从高地址向低地址方向生长,堆栈组织中,堆栈从高地址向低地址方向生长,堆栈指针寄存器堆栈指针寄存器SP始终指向堆栈的栈顶单元。始终指向堆栈的栈顶单元。 堆栈操作n操作数可以是操作数可以是 通用通用寄存器、段寄存器寄存器、段寄存器、存储器操作数、存储器操作数。不能用不能用立即数立即数。堆栈段存储增长方向堆栈段存储增长方向和一般内存段刚好和一般内存段刚好相反相反堆栈段01H12H34H56HSSSP高高低低33第第3章章寻址方式与指令系统寻址方式与指令系统 (3 3)XCHG XCHG 交换指令交换指令 XCHGXCHG指令用来将源操作数和目的操作数的内容进指令

21、用来将源操作数和目的操作数的内容进行交换。可实现字节数据交换,也可实现字数据交行交换。可实现字节数据交换,也可实现字数据交换。换。XCHG opr1,opr2必须有一个操作数是在寄存器中。必须有一个操作数是在寄存器中。XCHG AX, BX交换寄存器交换寄存器AX和和BX的内容的内容 34第第3章章寻址方式与指令系统寻址方式与指令系统 2.累加器专用传送指令累加器专用传送指令 (1)IN/ OUT 输入输入/输出指令输出指令 IN Acc,src ;Acc为为8位或位或16位累加器。位累加器。 OUT dst,Acc (2)XLAT换码指令(查表)换码指令(查表) 指令格式为:指令格式为:XL

22、AT ;执行操作;执行操作AL(BX+AL)35第第3章章寻址方式与指令系统寻址方式与指令系统 3.3.地址传送指令地址传送指令(1 1)有效地址送寄存器指令:)有效地址送寄存器指令:LEA regLEA reg,srcsrc存储器操作数存储器操作数srcsrc的的有效地址有效地址传到传到regreg寄存器。寄存器。(2 2)地址指针送寄存器和)地址指针送寄存器和DSDS指令:指令:LDS regLDS reg,src src 存储器操作数送存储器操作数送reg,reg,该操作数在存贮器中的下一个字该操作数在存贮器中的下一个字送送DS DS (3 3)地址指针送寄存器和)地址指针送寄存器和ES

23、ES指令:指令:LES regLES reg,src src 存储器操作数送存储器操作数送reg,该操作数在存贮器中的下一个字该操作数在存贮器中的下一个字送送ES36第第3章章寻址方式与指令系统寻址方式与指令系统 4.4.标志寄存器传送指令标志寄存器传送指令 标志寄存器传送指令共有标志寄存器传送指令共有4 4条,均为单字节指令,指令的条,均为单字节指令,指令的操作数以隐含形式出现,隐含为操作数以隐含形式出现,隐含为AHAH寄存器。寄存器。(1 1)取标志指令)取标志指令LAHFLAHF(2 2)置标志位指令)置标志位指令SAHFSAHF(3 3)标志寄存器入栈指令)标志寄存器入栈指令PUSHF

24、PUSHF(4 4)标志寄存器出栈指令)标志寄存器出栈指令POPF POPF 37第第3章章寻址方式与指令系统寻址方式与指令系统 3-3-2 算术运算类指令算术运算类指令 80868086的算术运算类指令包括加、减、乘、除的算术运算类指令包括加、减、乘、除4 4种种基本运算指令,以及为进行基本运算指令,以及为进行BCDBCD码十进制数运算而设码十进制数运算而设置的各种较正指令。置的各种较正指令。 80868086的基本算术运算指令中,除加的基本算术运算指令中,除加1 1和减和减1 1指令指令外,其余均为双操作数指令,两个操作数中除了源外,其余均为双操作数指令,两个操作数中除了源操作数可为立即数

25、外,必须有一个操作数在寄存器操作数可为立即数外,必须有一个操作数在寄存器中,而单操作数指令则不允许采用立即数方式。中,而单操作数指令则不允许采用立即数方式。 38第第3章章寻址方式与指令系统寻址方式与指令系统加减法运算在执行过程中:加减法运算在执行过程中:l无符号数,加法运算最高位向前产生进位,减法运算最高无符号数,加法运算最高位向前产生进位,减法运算最高位向前有借位,位向前有借位,CF=1,CF标志位可检测这种情况;标志位可检测这种情况;l带符号数,采用补码运算,符号位参加运算,溢出表示运带符号数,采用补码运算,符号位参加运算,溢出表示运算结果发生错误,用算结果发生错误,用OF标志位可检测带

26、符号数是否溢出。标志位可检测带符号数是否溢出。39第第3章章寻址方式与指令系统寻址方式与指令系统 算术运算指令会影响标志位,其规则如下:算术运算指令会影响标志位,其规则如下:运算结果向前产生进位或借位时,运算结果向前产生进位或借位时,CF=1;最高位向前进位和次高位向前进位不同时,最高位向前进位和次高位向前进位不同时,OF=1;(溢出,计算结果不正确)(溢出,计算结果不正确)若运算结果为若运算结果为0,ZF=1;若运算结果最高位为若运算结果最高位为1,SF=1;若运算结果中有偶数个若运算结果中有偶数个1,PF=1。40第第3章章寻址方式与指令系统寻址方式与指令系统 1加、减法指令及其应用加、减

27、法指令及其应用【例例3.12】分析给定加、减法指令的格式及操作功能分析给定加、减法指令的格式及操作功能ADD AL,BL;两个寄存器字节数据相加;两个寄存器字节数据相加ADD AL,0210H ;内存单元与寄存器字节数据相加;内存单元与寄存器字节数据相加ADD SI,AX;寄存器与内存单元字数据相加;寄存器与内存单元字数据相加INC AL;执行(;执行(AL)(AL)+1INC CX;执行(;执行(CX)(CX)+1SUB AX,BX;执行(;执行(AX)(AX)-(BX)SBB DX,CX;执行(;执行(DX)(DX)-(CX)-CFDEC CX;执行(;执行(CX)(CX)-1nCmp指令

28、指令实际是减法,但不保存结果,仅设置标志位,用于比较大小。实际是减法,但不保存结果,仅设置标志位,用于比较大小。cmp al,0 jge next ; al=0(处理器对两个操作数进行运算时,按照无符号(处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志数求得结果,并相应设置进位标志CF;同时,;同时,根据是否超出有符号数的范围设置溢出标志根据是否超出有符号数的范围设置溢出标志OF)。)。42第第3章章寻址方式与指令系统寻址方式与指令系统2. 乘、除法指令及其应用乘、除法指令及其应用 (1)乘法指令包括无符号数和带符号数相乘的指令,指乘法指令包括无符号数和带符号数相乘的指令

29、,指令中只给出乘数,被乘数隐含给出。令中只给出乘数,被乘数隐含给出。 两个两个8 8位数相乘时被乘数放入位数相乘时被乘数放入ALAL中,中,1616位数的乘积存放到位数的乘积存放到AXAX中;两个中;两个1616位数相乘时被乘数先放入位数相乘时被乘数先放入AXAX寄存器中,寄存器中,3232位数位数的乘积放到的乘积放到DXDX和和AXAX两个寄存器中,规定两个寄存器中,规定DXDX中存放高中存放高1616位,位,AXAX中存放低中存放低1616位。位。43第第3章章寻址方式与指令系统寻址方式与指令系统(2)8086CPU执行除法时规定:执行除法时规定: 除数长度只能是被除数长度的一半。当被除数

30、为除数长度只能是被除数长度的一半。当被除数为16位时,位时,除数应为除数应为8位;当被除数为位;当被除数为32位时,除数应为位时,除数应为16位。位。 DIV无符号数除法指令的被除数、除数、商和余数全部无符号数除法指令的被除数、除数、商和余数全部为无符号数;为无符号数;IDIV带符号数除法指令的被除数、除数、商带符号数除法指令的被除数、除数、商和余数均为带符号数,且余数的符号位与被除数相同。和余数均为带符号数,且余数的符号位与被除数相同。44第第3章章寻址方式与指令系统寻址方式与指令系统 (3)符号扩展指令:指用一个操作数的符号位形成另一)符号扩展指令:指用一个操作数的符号位形成另一个操作数,

31、后一个操作数的各位是全个操作数,后一个操作数的各位是全0(正数)或全(正数)或全1(负数。(负数。 CBW字节转换为字指令:字节转换为字指令: 将将AL中符号位扩展到中符号位扩展到AH中。中。 CWD字转换为双字指令:字转换为双字指令: 将将AX中符号位扩展到中符号位扩展到DX中。中。45第第3章章寻址方式与指令系统寻址方式与指令系统 3.3.十进制调整指令十进制调整指令 (1 1)组合)组合BCDBCD码加法、减法调整指令码加法、减法调整指令 DAA DAA ;组合;组合BCDBCD码加法调整指令,将码加法调整指令,将ALAL中的和调整中的和调整 为组合为组合BCDBCD码码 DAS DAS

32、 ;组合;组合BCDBCD码减法调整指令,将码减法调整指令,将ALAL中的差调整中的差调整 为组合为组合BCDBCD码码46第第3章章寻址方式与指令系统寻址方式与指令系统(2)非组合)非组合BCD加法、减法调整指令加法、减法调整指令AAA非组合十进制数非组合十进制数加加法调整指令法调整指令AAS非组合十进制数减法调整指令非组合十进制数减法调整指令 47第第3章章寻址方式与指令系统寻址方式与指令系统3-3-3 逻辑运算与移位类指令逻辑运算与移位类指令1. 逻辑运算指令及其应用逻辑运算指令及其应用(1 1)逻辑与指令:)逻辑与指令:AND dstAND dst,srcsrc(2 2)逻辑或指令:)

33、逻辑或指令:OR dstOR dst,srcsrc(3 3)逻辑异或指令:)逻辑异或指令:XOR dstXOR dst,srcsrc(4 4)逻辑非指令:)逻辑非指令:NOT dstNOT dst(5 5)测试指令:)测试指令:TEST dstTEST dst,src src 源操作数和目的操作数执行源操作数和目的操作数执行 与与 的操作,但结果不回的操作,但结果不回送,仅影响标志位,可以在不改变操作数的情况下测试某一送,仅影响标志位,可以在不改变操作数的情况下测试某一位是位是0 0还是还是1. test al,80h ;1. test al,80h ;测试最高位测试最高位jnz next j

34、nz next ; 最高位是最高位是 1 148第第3章章寻址方式与指令系统寻址方式与指令系统 2. 移位指令及其应用移位指令及其应用 移位操作类指令可以对字节或字中的各位数据进行算术移移位操作类指令可以对字节或字中的各位数据进行算术移位、逻辑移位或循环移位。位、逻辑移位或循环移位。 49第第3章章寻址方式与指令系统寻址方式与指令系统 3-3-4 串操作类指令串操作类指令 基本串操作指令有:基本串操作指令有:l串传送(串传送(MOVS)l串比较(串比较(CMPS)l串扫描(串扫描(SCAS)l串存取(串存取(LODS、 STOS) 50第第3章章寻址方式与指令系统寻址方式与指令系统 3-3-4

35、 串操作类指令串操作类指令1串传送指令串传送指令2串存储指令串存储指令3取串指令取串指令4串比较指令串比较指令5串搜索指令串搜索指令6方向标志处理指令方向标志处理指令7重复操作前缀指令重复操作前缀指令 51第第3章章寻址方式与指令系统寻址方式与指令系统 3-3-5 控制转移类指令控制转移类指令 控制转移类指令用来改变程序执行的方向,即修改控制转移类指令用来改变程序执行的方向,即修改IP和和CS的值。的值。 按转移位置可将转移指令分为段内转移和段间转移。若按转移位置可将转移指令分为段内转移和段间转移。若指令改变指令改变IP中内容,转移目标位置和转移指令在同一个代码中内容,转移目标位置和转移指令在

36、同一个代码段,称段内转移;如指令改变段,称段内转移;如指令改变IP中内容,又改变中内容,又改变CS中内容,中内容,转移目标位置和转移指令不在同一个代码段,称段间转移。转移目标位置和转移指令不在同一个代码段,称段间转移。 根据转移指令的功能,分为无条件转移指令、条件转移根据转移指令的功能,分为无条件转移指令、条件转移指令、循环控制指令、子程序调用和返回指令等。指令、循环控制指令、子程序调用和返回指令等。 52第第3章章寻址方式与指令系统寻址方式与指令系统 1.1.无条件转移指令无条件转移指令JMP SHORT opr JMP SHORT opr ;段内直接短转移;段内直接短转移JMP NEAR

37、PTR opr JMP NEAR PTR opr ;段内直接近转移;段内直接近转移JMP WORD PTR opr JMP WORD PTR opr ;段内间接转移;段内间接转移JMP FAR PTR opr JMP FAR PTR opr ;段间直接转移;段间直接转移JMP DWORD PTR opr JMP DWORD PTR opr ;段间间接转移;段间间接转移53第第3章章寻址方式与指令系统寻址方式与指令系统 2.2.条件转移指令条件转移指令 条件转移指令是根据上一条指令所设置的条件码来测试,条件转移指令是根据上一条指令所设置的条件码来测试,被测试的内容为状态标志位。满足测试条件则转移

38、到指令中指被测试的内容为状态标志位。满足测试条件则转移到指令中指定的位置去执行,如果不满足条件则顺序执行下一条指令。定的位置去执行,如果不满足条件则顺序执行下一条指令。(p71)条件转移:条件转移:jz/je/jnz/js/jns/jo/jno等等等等无符号数比较转移:无符号数比较转移:jc/jb/jnae,jnc/jnb/jae,jbe/jna,jnbe/ja有符号数比较转移:有符号数比较转移:jl/jnge,jnl/jge,jle/jng,jnle/jg(后两类(后两类CMP指令后用,根据数值是有符号还是无符号使用)指令后用,根据数值是有符号还是无符号使用) 练习:写一程序段,将练习:写一

39、程序段,将AL内容和内容和-5比较,比较,AL大于大于-5,AL寄存寄存器内容传给器内容传给BL,否则把,否则把 -5传给传给BL。Cmp al, -5jg aaamov bl, -5jmp exitAaa:mov bl, alExit:halt55第第3章章寻址方式与指令系统寻址方式与指令系统 3.3.循环控制指令循环控制指令 循环程序是一种常用的程序结构,为加快对循环程序的循环程序是一种常用的程序结构,为加快对循环程序的控制,控制,8086系统专门设置一组循环控制指令,见表系统专门设置一组循环控制指令,见表3-5所示,所示,循环计数值在循环计数值在CX中。中。指令名称指令名称助记符助记符测

40、试条件测试条件循环循环LOOP目标标号目标标号CXCX-1, CX0等于等于/结果为结果为0循环循环LOOPE/LOOPZ目标标号目标标号CXCX-1,ZF=1且且CX0不等于不等于/结果不为结果不为0循环循环LOOPNE/LOOPNZ目标标目标标号号CXCX-1,ZF=0且且CX0CX内容为内容为0转移转移JCXZ目标标号目标标号CX=0 表3-5 循环控制指令 n练习:用循环计算1+2+3+10的和。Mov cx, 0ahAaa: ADD AX,CXloop aaa57第第3章章寻址方式与指令系统寻址方式与指令系统 4.4.子程序调用和返回指令子程序调用和返回指令(1 1)子程序调用指令)

41、子程序调用指令 格式:格式:CALL NEAR PTR opr CALL NEAR PTR opr ;段内调用;段内调用 CALL FAR PTR opr CALL FAR PTR opr ;段间调用;段间调用(2 2)子程序返回指令)子程序返回指令RETRET 格式:格式: RETRET 或或 RET 表达式表达式 58第第3章章寻址方式与指令系统寻址方式与指令系统3-3-6 处理器控制类指令 这类指令主要用于修改状态标志位、控制CPU的功能如使CPU暂停、等待、空操作等。 59寻址方式与指令系统寻址方式与指令系统第第3章章 3-4 DOS和和BIOS中断调用中断调用3-4-1 DOS功能调

42、用功能调用 DOS功能调用可完成对文件、设备、内存的管理。功能调用可完成对文件、设备、内存的管理。对用户来说,这些功能模块就是几十个独立的中断对用户来说,这些功能模块就是几十个独立的中断服务程序,这些程序的入口地址已由系统置入中断服务程序,这些程序的入口地址已由系统置入中断向量表中,在汇编语言程序中可用中断指令直接调向量表中,在汇编语言程序中可用中断指令直接调用。用。60寻址方式与指令系统寻址方式与指令系统第第3章章 1. 系统功能调用的方法系统功能调用的方法(1)将入口参数送到指定寄存器中;)将入口参数送到指定寄存器中;(2)子程序功能号送入)子程序功能号送入AH寄存器中;寄存器中;(3)使

43、用)使用INT21H指令转入子程序入口执行相应操作。指令转入子程序入口执行相应操作。 2. 常用的几种系统功能调用常用的几种系统功能调用(1)AH=01H;带显示的键盘输入;带显示的键盘输入(2)AH=02H;从显示器上输出单个字符;从显示器上输出单个字符(3)AH=09H;在显示器上输出字符串;在显示器上输出字符串(4)AH=0AH;字符串输入到缓冲区;字符串输入到缓冲区61寻址方式与指令系统寻址方式与指令系统第第3章章 3-4-2 BIOS中断调用中断调用 BIOS为用户程序和系统程序提供主要外设的控制功能,为用户程序和系统程序提供主要外设的控制功能,如系统加电自检、引导装入及对键盘、磁盘

44、、磁带、显示器、如系统加电自检、引导装入及对键盘、磁盘、磁带、显示器、打印机、异步串行通信口等的控制。打印机、异步串行通信口等的控制。 每个功能模块的入口地址都在中断矢量表中,通过中断指每个功能模块的入口地址都在中断矢量表中,通过中断指令令INT n可以直接调用。可以直接调用。n是中断类型号,每个类型号是中断类型号,每个类型号n对应对应一种一种I/O设备的中断调用,每个中断调用又以功能号来区分设备的中断调用,每个中断调用又以功能号来区分其控制功能。其控制功能。 DOS调用n读键盘:读键盘:AH=01H,等待键盘输入一个字符(并回显),返回在,等待键盘输入一个字符(并回显),返回在AL寄存器中;

45、寄存器中; mov ah,01hint 21h显示单个字符:显示单个字符:AH=02h,待显示的字符放在,待显示的字符放在DL中;中;mov ah,02hmov dl, aint 21hn显示字符串:显示字符串:AH=09h,DS:DX指向字符串内存地址,字符串必须以指向字符串内存地址,字符串必须以$美元符结束,但美元符不会显示出来,仅显示它美元符结束,但美元符不会显示出来,仅显示它之前的字符串。之前的字符串。string DB 1234567890$LEASI,stringMOVSI+6,$LEADX,string+1MOVAH,09hINT21H显示什么?显示什么? 23456n练习:从键盘输入练习:从键盘输入100个字母,存储在个字母,存储在buf缓冲区中。缓冲区中。Buf db 100 DUP(0)Mov cx,100Lea di,bufAaa: mov ah,01int 21hmov di,alinc diloop aaa65第第3章章寻址方式与指令系统寻址方式与指令系统3-5 Pentium微处理器新增寻址方式和指令微处理器新增寻址方式和指令3-5-1 Pentium微处理器的内部寄存器微处理器的内部寄存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论