第3章 指系统-D12.ppt
《第3章 指系统-D12.ppt》由会员分享,可在线阅读,更多相关《第3章 指系统-D12.ppt(84页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 第第3章章 80X86的寻址方式的寻址方式和指令系统和指令系统第1节 80X86的数据类型第2节 80X86的寻址方式寻址方式第3节 80X86的指令系统指令系统2学习指导和要求n n掌握80486的七种数据类型;n n熟练掌握九种寻址方式;n n熟记各种类型的指令格式及功能,并能编写简单程序。3 第1节 80X86的数据类型 8048680486汇编语言中可使用的数据类型有以下七种:汇编语言中可使用的数据类型有以下七种:汇编语言中可使用的数据类型有以下七种:汇编语言中可使用的数据类型有以下七种:1.1.无符号二进制数无符号二进制数 字节字节(8(8位位):0255(00FFH),0255
2、(00FFH),占用一字节存储单元。占用一字节存储单元。字字(16(16位位):065535(00FFFFH)065535(00FFFFH),占用连续的两字,占用连续的两字节存储单元,低地址存储单元存放低节存储单元,低地址存储单元存放低8 8位数据,高地位数据,高地址存储单元存放高址存储单元存放高8 8位数据,低字节地址为该字的地址。位数据,低字节地址为该字的地址。双字双字(32(32位位):04294967299(00FFFFFFFFH)04294967299(00FFFFFFFFH),占用,占用连续的四字节存储单元,最低地址存储单元存放最低连续的四字节存储单元,最低地址存储单元存放最低8
3、8位数据,最高地址存储单元存放最高位数据,最高地址存储单元存放最高8 8位数据,最低字位数据,最低字节地址为该双字的地址。节地址为该双字的地址。42.有符号二进制数有符号二进制数字节字节:-128+127(80HFFH,00H7FH):-128+127(80HFFH,00H7FH)字字:-32768+32767(8000HFFFFH,00000H7FFFH):-32768+32767(8000HFFFFH,00000H7FFFH)双字双字:-2147483650+2147483649-2147483650+2147483649(80000000HFFFFFFFFH,000000000H7FFF
4、FFFFH)(80000000HFFFFFFFFH,000000000H7FFFFFFFH)以补码形式存储,地址单元分配与无符号数类似。以补码形式存储,地址单元分配与无符号数类似。3.浮点数(实数)浮点数(实数)单精度数(单精度数(3232位)位):数据格式如下:数据格式如下:阶阶 码码 有有 效效 数数 31 30 23 22 031 30 23 22 0符符号号位位1 1.1 1位符号位符号,8,8位阶码位阶码,24,24位有效数位有效数(显式显式2323位位,外加外加1 1位隐含的整位隐含的整数数“1.”1.”。5双精度数双精度数(64(64位位):数据格式如下:数据格式如下:1 1位符
5、号位符号,11,11位阶码位阶码,53,53位有效数位有效数(显式显式5252位位,外加外加1 1位隐含的整数位隐含的整数“1.”1.”。63 62 52 51 0 63 62 52 51 0 阶阶 码码 有有 效效 数数符符号号位位1.1.扩展精度数扩展精度数(80(80位位):数据格式如下:数据格式如下:79 78 64 63 62 0 79 78 64 63 62 0 阶阶 码码 1 1 有有 效效 数数符符号号位位1 1位符号位符号,15,15位阶码位阶码,64,64位有效数位有效数(内含内含1 1位整数位整数1,1,小小数点是隐含的。数点是隐含的。.64.BCDBCD码码压缩压缩BC
6、DBCD码码:1 1字节存放两个字节存放两个BCDBCD码,格式如图码,格式如图a a 7 4 3 0 7 4 3 0 (a)(b)非压缩非压缩BCDBCD码码:1 1字节存放一个字节存放一个BCDBCD码(低码(低4 4位),位),格式如图格式如图b b5.字符串字符串位串位串:从任何字节的任何位开始的相邻位序列,最:从任何字节的任何位开始的相邻位序列,最长可达长可达2 23232-1-1位位字节字节/字字/双字串双字串:是字节、字、双字的相邻序列,最:是字节、字、双字的相邻序列,最长可达长可达2 23232-1-1字节。字节。十位十位 个位个位0 0或任意或任意 个位个位76.ASCII码
7、 ASCII码字符串:如ABC123 ASCII码数:如30H39H(09),41H46H(AF)7.指针数据近指针(32位):是一个32位的段内偏移地址,段内寻址时使用。远指针(48位):是一个由16位选择符和32位偏移量组成,段间寻址时使用。返返 回回8 第2节 80X86的寻址方式 80X8680X86的寻址方式共有的寻址方式共有9 9种:种:1.立即寻址2.寄存器寻址3.直接寻址4.寄存器间接寻址5.相对寄存器间接寻址 6.基址加变址寻址7.相对基址加变址寻址8.基址加比例变址寻址9.相对基址加比例变址寻址9l l立即寻址立即寻址 指定的操作数紧跟在操作码之后,直接存放在代码段中。指定
8、的操作数紧跟在操作码之后,直接存放在代码段中。如:如:MOV BLMOV BL,56H 56H ;BL 56HBL 56H MOV AX MOV AX,2056H 2056H ;AX 2056HAX 2056H MOV ECX MOV ECX,12345678H 12345678H ;ECX 12345678H ECX 12345678H 立即数只能作源操作数。不能作目的操作数。立即数只能作源操作数。不能作目的操作数。l l寄存器寻址寄存器寻址操作数在操作数在CPUCPU的寄存器中,而寄存器的名由指令指出。的寄存器中,而寄存器的名由指令指出。如:如:INC CL INC CL ;CL CL (
9、CLCL)+1+1 MOV AX MOV AX,BX BX ;AX AX (BXBX)10l l直接寻址直接寻址 操作数有效地址(操作数有效地址(1616位或位或3232位)直接包含在指令中,它位)直接包含在指令中,它位于操作码之后,存放在代码段中。如果指令无位于操作码之后,存放在代码段中。如果指令无前缀前缀指指明在那一段中,则默认操作数存放在明在那一段中,则默认操作数存放在数据段数据段。如:如:MOV AXMOV AX,2000H 2000H ;DSDS段段2000H2000H的内容送的内容送ALAL,2001H2001H的内容送的内容送AHAH MOV AX MOV AX,FSFS:200
10、0H2000H;FSFS段段2000H2000H的内容送的内容送ALAL,2001H2001H的内容送的内容送AHAHl l寄存器间接寻址寄存器间接寻址操作数的偏移地址存放在寄存器中,而操作数存放在存操作数的偏移地址存放在寄存器中,而操作数存放在存储器中。储器中。(1 1)1616位寻址位寻址 EA=DIEA=DI、SISI、BX BX、BP BP 无前缀默认操作数存放在数据段无前缀默认操作数存放在数据段无前缀默认操作数存放在堆栈段无前缀默认操作数存放在堆栈段11例如:例如:MOV AXMOV AX,BX BX ;AX (DS*10H+(BX)AX (DS*10H+(BX)MOV AX MOV
11、 AX,BP BP ;AX (SS*10H+(BP)AX (SS*10H+(BP)MOV AX MOV AX,ESES:BXBX;AX (ES*10H+(BX)AX (ES*10H+(BX)MOV AX MOV AX,DSDS:BPBP;AX (DS*10H+(BP)AX (DS*10H+(BP)(2 2)3232位寻址位寻址 EA=EDIEA=EDI、ESIESI、EBXEBX、EAXEAX、ECXECX、EDXEDX、ESPESP、EBP EBP ESPESP、EBPEBP默认操作数存放在堆栈段,其它默认操作数默认操作数存放在堆栈段,其它默认操作数存放在数据段。存放在数据段。例如:例如:M
12、OV AXMOV AX,EBX EBX ;DSDS段字数据送段字数据送AXAX MOV AX MOV AX,EBP EBP ;SSSS段字数据送段字数据送AXAX MOV ECXMOV ECX,ESES:EBX ;ESEBX ;ES段双字数据送段双字数据送ECXECX 12l l相对寄存器间接寻址相对寄存器间接寻址寄存器内容与位移量之和形成操作数的有效地址。即:寄存器内容与位移量之和形成操作数的有效地址。即:EA=EA=寄存器寄存器+位移量位移量 (1)16(1)16位寻址位寻址 EA=BXEA=BX、BPBP、DIDI、SI+SI+位移量位移量(带符号带符号8 8或或1616位整数位整数)如
13、:如:MOV AXMOV AX,2040HBX2040HBX 或或 MOV AXMOV AX,BX+2040HBX+2040H;DSDS段段(BX)+2040H(BX)+2040H中的字中的字 数据送数据送AXAX。(2)32(2)32位寻址位寻址 EA=EAXEA=EAX、EBXEBX、.、ESIESI、ESPESP、EBP+EBP+位位移量移量(带符号带符号8 8或或3232位整数位整数)如:如:MOV ECXMOV ECX,1500HEAX1500HEAX;DSDS段段(EAX)+1500H(EAX)+1500H 或或MOV ECXMOV ECX,EAX+1500H EAX+1500H
14、中的双字数据送中的双字数据送ECXECX。13l l基址加变址寻址基址加变址寻址 基址寄存器内容与变址寄存器内容之和形成操作数的偏基址寄存器内容与变址寄存器内容之和形成操作数的偏移地址。即:移地址。即:EA=EA=基址寄存器基址寄存器+变址寄存器变址寄存器 (1)16(1)16位寻址位寻址 基址寄存器基址寄存器:BX:BX、BP;BP;变址寄存器变址寄存器:DI:DI、SISI如:如:MOV AXMOV AX,BX+SIBX+SI或或MOV AXMOV AX,BXSIBXSI;DSDS段段(BX)+(SI)(BX)+(SI)中的字数中的字数 据送据送AXAX。(2)32(2)32位寻址位寻址
15、基址寄存器基址寄存器:任何一个任何一个3232位通用寄存器位通用寄存器 变址寄存器:除变址寄存器:除ESPESP之外的任一个之外的任一个3232位通用寄存器位通用寄存器 如:如:MOV AXMOV AX,EBX+ECX EBX+ECX;DSDS段段(EBX)+(ECX)(EBX)+(ECX)中中 或或MOV AXMOV AX,EBXECX EBXECX 的字数据送的字数据送AXAX。14h相对基址加变址寻址 基址寄存器内容与变址寄存器内容再加偏移量之和形成操作数的有效地址。即:EA=基址寄存器+变址寄存器+偏移量 如:MOV A X,1234HBX+DI 或MOV AX,BX+DI+1234H
16、 或MOV AX,1234HBXDI ;DS段 (BX)+(DI)+1234H中的字数据送AX。15h比例变址寻址(32位寻址)变址寄存器内容乘以比例因子再加位移量之和形成操作数的32位有效地址。即:EA=变址寄存器*比例因子+位移量如:MOV EAX,1200HESI*4h比例变址加基址寻址(32位寻址)变址寄存器内容乘以比例因子再加上基址寄存器的内容,形成操作数的32位有效地址。即:EA=变址寄存器*比例因子+基址寄存器如:MOV AX,EBX*4+ESI16h相对比例变址加基址寻址(32位寻址)变址寄存器内容乘以比例因子加上基址寄存器的内容再加位移量之和,形成操作数的32位有效地址。即:
17、EA=变址寄存器*比例因子+基址寄存器+位移量如:MOV AX,EDI*8+EBX+40H MOV ECX,2000HEDX*4EAX 比例变址寻址、比例变址加基址寻址、相对比例变址加基址寻址只有32位寻址一种情况。17与跳转有关的寻址方式与跳转有关的寻址方式用于确定程序转移或调用的目与跳转有关的寻址方式用于确定程序转移或调用的目标。如:标。如:无条件转移语句:无条件转移语句:JMP dstJMP dst dst:dst:转移目标转移目标调用语句:调用语句:CALL dstCALL dst dst:dst:调用目标调用目标 参见转移和调用指令一节。参见转移和调用指令一节。练习题:练习题:假设假
18、设(DS)=2000H,(ES)=2100H,(SS)=1500H,(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0040H(SI)=00A0H,(BX)=0100H,(BP)=0040H,指令,指令 MOV AX,srcMOV AX,src中,中,以下以下srcsrc为何种寻址方式?有效地为何种寻址方式?有效地址和物理地址各是多少?址和物理地址各是多少?(1)100HBX(1)100HBX (2)BX (2)BX (3)BP (3)BP (4)ES:BX+10H (5)BX (6)1000H (4)ES:BX+10H
19、(5)BX (6)1000H (7)SI (7)SI (8)1000HBX+SI (8)1000HBX+SI (9)1000HBPSI (10)BXSI (9)1000HBPSI (10)BXSI18 第3节 80X86的指令系统一、指令格式 指令格式:标号:操作码 操作数,;注释 其中:标号:确定汇编语句的位置,提供跳转、循环的目标。操作码:汇编语句操作。操作数:操作数据项,数目因操作码而异。注释:程序注解。如:START:MOV AX,DATA MOV DS,AX ;设置DS19二、指令系统二、指令系统 80486的指令大致分为:整数指令:数据传送、算术运算、逻辑运算与移位、串操作、位操作
20、指令、控制转移、标志操作、按条件设置字节、处理器控制指令、高级语言指令等浮点数指令:数据传送、算术运算、比较、超越函数、常量、控制等指令操作系统型指令20 指令操作数符号说明:OP1OP1,OP2OP2,OP3OP3:操作数:操作数 reg reg :通用寄存器。长度可以是:通用寄存器。长度可以是8 8位、位、1616位、位、3232位位 Sreg Sreg :段寄存器(段选择符):段寄存器(段选择符)reg8 reg8 :8 8位通用寄存器位通用寄存器 reg16 reg16:1616位通用寄存器位通用寄存器 reg32 reg32:3232位通用寄存器位通用寄存器 mem mem :存储器
21、。长度可以是:存储器。长度可以是8 8位、位、1616位、位、3232位位 mem8 mem8 :8 8位存储器位存储器 mem16 mem16:1616位存储器位存储器 mem32 mem32:3232位存储器位存储器 imm imm :立即数。长度可以是:立即数。长度可以是8 8位、位、1616位、位、3232位位 imm8 imm8 :8 8位立即数位立即数21与运算有关的标志与运算有关的标志标志寄存器FLAGS中存放运算结果的属性。CF:进位/借位标志。加、减运算最高位产生进位/借位时置1。AF:辅助进位/借位标志。加、减运算时低半字节位产生进位/借位时置1。OF:溢出标志。有符号二进
22、制加、减运算结果超出范围时置1。ZF:零标志。结果为零时置1。SF:符号标志。结果为负时置1。PF:奇偶标志。结果“1”的个数为偶数时置1。22 指令执行对标志位影响的符号说明:X:表示相应标志位状态依运算或操作结果决定 0:表示相应标志位无条件清“0”1:表示相应标志位无条件置“1”U:表示相应标志位状态未定义,状态随机 -:表示相应标志位状态不受影响,保持原状态23n数据传送类指令 用于实现存储器与寄存器、寄存器与寄存器、累加器与用于实现存储器与寄存器、寄存器与寄存器、累加器与I/OI/O端口之间字节、字或双字的传送,也可将立即数传端口之间字节、字或双字的传送,也可将立即数传送到存储器或寄
23、存器。送到存储器或寄存器。这类指令基本上不影响标志位这类指令基本上不影响标志位。传送指令MOV 指令格式:指令格式:MOV OP1MOV OP1,OP2OP2 reg/Sreg reg/Sreg,regreg reg reg,SregSreg reg/Sreg reg/Sreg,memmem mem mem,reg/Sregreg/Sreg reg reg,immimm mem mem,immimm24 功能:把OP2的内容传送到OP1中,OP1和OP2为 字节、字或双字 说明:立即数只能作为源操作数,而其他三种既可作源操作数又可作目的操作数;存储器和存储器之间以及段寄存器和段寄存器之间不允许
24、传数,而通用寄存器之间则允许相互传数。例如:用如下指令可给数据段寄存器DS赋初值 MOV AX,DATA MOV DS,AX 再如:MOV EBX,12345678H MOV AX,BX+2425交换指令XCHG 指令格式:XCHG OP1,OP2 reg,reg mem,reg reg,mem 功能:用于交换两个操作数。说明:指令中的两个操作数可以是两个寄存器操作数,或一个寄存器与一个存储器操作数。例如:XCHG AX,BX XCHG AX,BX XCHG BX+20H,AX26I/O指令IN和OUT 指令格式:IN OP1,OP2 OUT OP1OUT OP1,OPOP AL,imm8 i
25、mm8imm8,ALAL AX,imm8 imm8imm8,AXAX EAX,imm8 imm8imm8,EAXEAX AL,DX DXDX,ALAL AX,DX DXDX,AXAX EAX,DX DXDX,EAXEAX 功能:用于在I/O端口和AL、AX或EAX累加器之 间交换数据。27 例如:IN AL,0FAH ;从端口FAH输入8位数到AL IN EAX,28H ;将端口28H、29H、2AH和 2BH的32位数送EAX MOV DX,3AEH;I/O地址大于255时应通过 DX间接寻址 IN AX,DX ;从DX指出的端口输入16位数AX OUT 21H,AL ;将8位数从AL输出到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 指系统-D12 系统 D12
限制150内