最新汇编语言程序设计第三章4课件.ppt

上传人(卖家):晟晟文业 文档编号:4968781 上传时间:2023-01-29 格式:PPT 页数:65 大小:636.50KB
下载 相关 举报
最新汇编语言程序设计第三章4课件.ppt_第1页
第1页 / 共65页
最新汇编语言程序设计第三章4课件.ppt_第2页
第2页 / 共65页
最新汇编语言程序设计第三章4课件.ppt_第3页
第3页 / 共65页
最新汇编语言程序设计第三章4课件.ppt_第4页
第4页 / 共65页
最新汇编语言程序设计第三章4课件.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

1、进入夏天,少不了一个热字当头,电扇空调陆续登场,每逢此时,总会想起那一把蒲扇。蒲扇,是记忆中的农村,夏季经常用的一件物品。记忆中的故乡,每逢进入夏天,集市上最常见的便是蒲扇、凉席,不论男女老少,个个手持一把,忽闪忽闪个不停,嘴里叨叨着“怎么这么热”,于是三五成群,聚在大树下,或站着,或随即坐在石头上,手持那把扇子,边唠嗑边乘凉。孩子们却在周围跑跑跳跳,热得满头大汗,不时听到“强子,别跑了,快来我给你扇扇”。孩子们才不听这一套,跑个没完,直到累气喘吁吁,这才一跑一踮地围过了,这时母亲总是,好似生气的样子,边扇边训,“你看热的,跑什么?”此时这把蒲扇,是那么凉快,那么的温馨幸福,有母亲的味道!蒲扇

2、是中国传统工艺品,在我国已有三千年多年的历史。取材于棕榈树,制作简单,方便携带,且蒲扇的表面光滑,因而,古人常会在上面作画。古有棕扇、葵扇、蒲扇、蕉扇诸名,实即今日的蒲扇,江浙称之为芭蕉扇。六七十年代,人们最常用的就是这种,似圆非圆,轻巧又便宜的蒲扇。蒲扇流传至今,我的记忆中,它跨越了半个世纪,也走过了我们的半个人生的轨迹,携带着特有的念想,一年年,一天天,流向长长的时间隧道,袅第第3章章 8086的指令系统和寻址方式的指令系统和寻址方式第一节、第一节、8086的寻址方式的寻址方式第二节、程序占有的空间和执行时间第二节、程序占有的空间和执行时间第三节、第三节、8086的指令系统的指令系统 DS

3、ESSSCSIP地地址址总总线线AB地地址址加加法法器器可表示为:可表示为:物理地址物理地址PA =段地址段地址 偏移地址偏移地址 =(段寄存器段寄存器)16 +偏移地址偏移地址 =(段寄存器段寄存器)10H+偏移地址偏移地址即段寄存器的内容左移即段寄存器的内容左移4位,加上偏移地址位,加上偏移地址16位段地址位段地址01516位偏移地址位偏移地址0150 0 0 020位物理地址位物理地址019测试:测试:(DS)=3000H,(,(ES)=3100H,(,(BX)=0100H,问问DS:BX=?ES:BX=?一、指令的概念一、指令的概念1.指令和指令系统指令和指令系统指令指令是计算机能够识

4、别和执行的某种操作命令。每条指是计算机能够识别和执行的某种操作命令。每条指令都被严格规定了在机器运行时必须完成的一种操作。从形令都被严格规定了在机器运行时必须完成的一种操作。从形式上看式上看,各种指令都是一组二进制编码。各种指令都是一组二进制编码。如:如:1000100111011000B(用十六进制表示为(用十六进制表示为89D8H)功功能:将寄存器能:将寄存器BX的内容送到寄存器的内容送到寄存器AX。缺陷:不易理解,不易记忆。缺陷:不易理解,不易记忆。措施:用字母和其他一些符号组成的措施:用字母和其他一些符号组成的“助记符助记符”与操作数等与操作数等来表示指令。来表示指令。MOV AX,B

5、XMOV为助记符,为助记符,AX和和 BX是是、指令格式、指令格式l 操作码操作码指示指令所要完成的操作(即:要做什么?)指示指令所要完成的操作(即:要做什么?)例如,数据传送、加法和减法等。例如,数据传送、加法和减法等。注意注意:操作码是指令中必不可少的部分。一条指令可以操作码是指令中必不可少的部分。一条指令可以没有操作数,但不可以没有操作码。没有操作数,但不可以没有操作码。l 指令指令一般由一般由操作码操作码和一个或多个和一个或多个操作数操作数组成。组成。如:如:操作码操作数操作码操作数 MOV AX,BX 操作码操作码 操作数操作数 .操作数操作数l 按按操作码操作码实现的实现的功能功能

6、,指令可以分为,指令可以分为类。类。数据传送数据传送算术运算算术运算逻辑运算逻辑运算串操作串操作控制转移控制转移处理机控制处理机控制 按功能按功能指令分六类指令分六类l 操作数操作数指示指令执行过程中所需要的指示指令执行过程中所需要的数据数据,如加法指,如加法指令中加数和被加数等,这些数据可以是操作数本身,令中加数和被加数等,这些数据可以是操作数本身,也可以来自某寄存器或存储器单元。一条指令中可以也可以来自某寄存器或存储器单元。一条指令中可以包含一个或多个操作数,指定操作数所在位置的方法包含一个或多个操作数,指定操作数所在位置的方法称为称为寻址方式寻址方式。l 了解了解操作数操作数的的来源来源

7、、个数个数、类型类型了解操作数的了解操作数的来源来源、个数个数、类型类型(1)有)有三种三种来源:来源:操作数在指令中,称操作数在指令中,称立即数操作数立即数操作数 如如 MOV AL,9 操作数在寄存器中,称操作数在寄存器中,称寄存器操作数寄存器操作数指令中给出用符号表示的寄存器名。指令中给出用符号表示的寄存器名。如如 ADD AL,9 操作数在内存单元中,称操作数在内存单元中,称存储器操作数存储器操作数或或内存操作数内存操作数 指令中给出该内存单元的地址。用指令中给出该内存单元的地址。用 表示存储器操表示存储器操作数作数 如如 MOV AL,2000H (2)操作数个数操作数个数 按指令格

8、式中,操作数个数的多少分为按指令格式中,操作数个数的多少分为三类三类:无操作数无操作数:指令只有一个操作码,没有操作数指令只有一个操作码,没有操作数 如:如:NOP,HLT,CLC 单操作数单操作数:指令中给出一个操作数指令中给出一个操作数 如:如:INC DI双操作数双操作数:指令中给出两个操作数。指令中给出两个操作数。无操作数:无操作数:指令只有一个操作码,没有操作数指令只有一个操作码,没有操作数 有些操作不需要操作数。有些操作不需要操作数。如如 HLT,NOP等处理机控制指令。等处理机控制指令。单操作数单操作数:指令中给出一个操作数指令中给出一个操作数。有两种可能:有两种可能:有些操作只

9、需要一个操作数有些操作只需要一个操作数 如如 INC AL ;(AL)(AL)+1有些操作将另一个操作数隐含在指令中有些操作将另一个操作数隐含在指令中 如如 MUL BL ;(AX)(AL)(BL)双操作数双操作数:指令中给出两个操作数。指令中给出两个操作数。如如 ADD AL,BL ;(AL)(AL)+(BL)目的操作数目的操作数 源操作数源操作数 操作后的结果通常存放在目的操作数中。操作后的结果通常存放在目的操作数中。(3)操作数类型操作数类型8086/8088:有的操作既可对有的操作既可对字节字节操作,又可对操作,又可对字字操作操作 有的操作只允许有的操作只允许对字对字操作操作指令应指明

10、参与操作的数是指令应指明参与操作的数是字节还是字,即操作数的类型字节还是字,即操作数的类型。通常操作数的类型可由通常操作数的类型可由操作数本身隐含给出操作数本身隐含给出。只在只在特殊情况特殊情况下需要明确地指明是什么类型的操作。下需要明确地指明是什么类型的操作。指令中有寄存器操作数,指令中有寄存器操作数,由寄存器操作数决定类型由寄存器操作数决定类型。例例:MOV BX,AL ;字节字节操作操作,BX AL MOV BX,AX ;字字操作操作,BX AL,BX+1 AH 指令操作数中无寄存器,则指令操作数中无寄存器,则由内存操作数的类型决定由内存操作数的类型决定。value 00H.内存内存va

11、lue 00H00H例例 value 是一个变量是一个变量(即内存操作数即内存操作数);若定义若定义value 为字节类型为字节类型:则则 MOV value,0 是字节操作。是字节操作。若定义若定义value 为字类型为字类型:则则 MOV value,0 是一个字操作。是一个字操作。指令中无类型的依据,需对存储器操作数加类型说明。指令中无类型的依据,需对存储器操作数加类型说明。用用 PTR PTR 属性伪操作说明类型。属性伪操作说明类型。MOV MOV byte PTRbyte PTR BX,0 BX,0 字节操作,字节操作,BX 0 BX 0 MOV MOV word PTR word

12、PTR BX,0 BX,0 字操作,字操作,BX 0,BX+1 0 BX 0,BX+1 0例例 MOV BX,0MOV BX,0 1 1、与数据有关的寻址方式、与数据有关的寻址方式2 2、与转移地址有关的寻址方式、与转移地址有关的寻址方式二、寻址方式二、寻址方式寻址方式寻址方式指的是指令按什么方式给指的是指令按什么方式给出操作数或与其有关的地址信息。出操作数或与其有关的地址信息。(1)8086的寻址方式的寻址方式共共7种种寻址方式:寻址方式:1.立即数寻址立即数寻址2.寄存器寻址寄存器寻址3.直接寻址直接寻址4.寄存器间接寻址寄存器间接寻址 5种种与内存单元与内存单元 5.寄存器相对寻址寄存器

13、相对寻址 有关的寻址有关的寻址6.基址变址寻址基址变址寻址 (存储器操作数存储器操作数)7.相对基址变址寻址相对基址变址寻址1、与数据有关的寻址方式、与数据有关的寻址方式立即数寻址立即数寻址 操作数在操作数在指令中指令中,取来指令立即可得到操作数。,取来指令立即可得到操作数。称该操作称该操作数为立即数。数为立即数。立即数可以是立即数可以是8位位或或16位位。立即数常用来给寄存器或内存单元赋初值。立即数常用来给寄存器或内存单元赋初值。例:例:MOV AL,64H ;AL64H MOV AX,2058H ;AX2058H MOV AL,A 立即数只能为立即数只能为整数整数,且只能做,且只能做源源操

14、作数操作数OP5820地地址址增增加加存储器存储器代代码码段段AXALAH只能用于只能用于 SRC SRC 字段字段 MOV 40H,ALMOV 40H,ALSRC SRC 和和 DST DST 的字长一致的字长一致 MOV AH,3064HMOV AH,3064H注意:注意:寄存器寻址方式寄存器寻址方式操作数在操作数在寄存器寄存器中,指令中中,指令中指定寄存器名指定寄存器名 8 位操作数,位操作数,用用 8 位寄存器位寄存器:AH、AL、BH、BL、CH、CL、DH、DL 16 位操作数,用位操作数,用 16 位寄存器位寄存器:AX、BX、CX、DX、SP、BP、SI、DI例例 MOV BL

15、,AH 执行前:执行前:(BL)=12H,(AH)=78H 执行后:执行后:(BL)=78H (AH)=78H注意:注意:寄存器寻址方式只涉及通用寄存器。寄存器寻址方式只涉及通用寄存器。字节操作数只涉及字节操作数只涉及AH AL BH BL CH CL DH DL SRC 和和 DST 的字长一致的字长一致 MOV AH,BX CS 不能用不能用 MOV 指令改变指令改变 MOV CS,AX总结:总结:立即数寻址、寄存器寻址的操作数,不用在取完指令后再到立即数寻址、寄存器寻址的操作数,不用在取完指令后再到内存中取数。内存中取数。DSESSSCSIP数据暂存器数据暂存器PSW标志标志寄存器寄存器

16、执行部件控制电路执行部件控制电路指令译码器指令译码器AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组寄存器组指指令令队队列列总线总线接口接口控制控制电路电路运运算算器器地地址址加加法法器器、指令指令1指令指令2指令指令3指令指令4、数据数据1数据数据2数据数据3、地址总线地址总线AB数据总线数据总线DB控制总线控制总线CB地地址址译译码码器器后面提到的后面提到的 5 中寻址方式,中寻址方式,操作数存放在内存中,取完指令后,还需到内存取数。操作数存放在内存中,取完指令后,还需到内存取数。指令中给出的是该指令中给出的是该操作数的地址操作数的地址,包括,包括段地址段地址和和偏

17、移地址偏移地址。DSESSSCSIP数据暂存器数据暂存器PSW标志标志寄存器寄存器执行部件控制电路执行部件控制电路指令译码器指令译码器AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器组寄存器组指指令令队队列列总线总线接口接口控制控制电路电路运运算算器器地地址址加加法法器器、指令指令1指令指令2指令指令3指令指令4、数据数据1数据数据2数据数据3、地址总线地址总线AB数据总线数据总线DB控制总线控制总线CB地地址址译译码码器器内存单元的地址由内存单元的地址由段地址段地址和和偏移地址偏移地址构成构成为减短指令长度,指令中只给出偏移地址的来源,为减短指令长度,指令中只给出偏移地

18、址的来源,段地址由默认关系段地址由默认关系给出。给出。MOV AL,2000H 默认的段地址为默认的段地址为DS内的内容内的内容CPU根据偏移地址给出的方式,根据偏移地址给出的方式,按按默认关系自动选择段寄存器默认关系自动选择段寄存器,获取段,获取段值,由段值、偏移值构成操作数所在内存单元的物理地址。值,由段值、偏移值构成操作数所在内存单元的物理地址。上例上例 PA=(DS)10H+2000H 即选择即选择DS寄存器的内容为段地址。寄存器的内容为段地址。指令中用指令中用 给出偏移地址。给出偏移地址。操作数的偏移地址又称操作数的偏移地址又称有效地址有效地址EA(Efficient Address

19、)按给出按给出偏移地址偏移地址方式的不同,分为以下方式的不同,分为以下5 种:种:直接寻址直接寻址 MOV AL,1000H 寄存器间接寻址寄存器间接寻址 MOV AL,BX 寄存器相对寻址寄存器相对寻址 MOV AL,BX+10H 基址变址基址变址寻址寻址 MOV AL,BX+SI 相对基址变址相对基址变址寻址寻址 MOV AL,BX+SI+10H 直接寻址方式直接寻址方式存储器操作数的有效地址存储器操作数的有效地址EAEA在指令中直接给出在指令中直接给出OPOP58582020存储器存储器数数据据段段AXAXALALAHAH代代码码段段000010102100021000200002000

20、0例:例:MOV AXMOV AX,1000H1000H对此例,没有用对此例,没有用前缀前缀指明操作数在哪一指明操作数在哪一段,则默认在数据段中,设(段,则默认在数据段中,设(DSDS)=2000H=2000H,则操作数的物理地址为:,则操作数的物理地址为:20000+1000=21000H20000+1000=21000H于是访问该存储器取出其内容送于是访问该存储器取出其内容送AXAX例:例:MOV AX,1000 H 若若(DS)=2000H 内存操作数的物理地址为:内存操作数的物理地址为:PA=(DS)10H+EA =2000H 10H+1000H =21000H 执行后执行后 (AX)

21、=3040H 21000 40 00A1内内存存 10 30指指令令注意注意 指令指令 MOV AX,1000H 与指令与指令MOV AX,1000H有什么不同?有什么不同?默认段寄存器为默认段寄存器为DS。操作数所在内存单元的物理地址为:操作数所在内存单元的物理地址为:PA=(DS)10H+EA 又例:又例:MOV BX,ES:1000H 则是将则是将ES段的段的1000H及及1001H两单元(字操作,取两个两单元(字操作,取两个字节)内容取出送字节)内容取出送BX。l在汇编语言程序中,不直接用数值在汇编语言程序中,不直接用数值 表示偏移地址,表示偏移地址,用符号代替数值表示地址,称用符号代

22、替数值表示地址,称符号地址符号地址(变量名变量名)。buffer 0A 0B例例 符号符号buffer表示一个地址。表示一个地址。MOV AX,buffer或写成或写成 MOV AX,buffer 源操作数为源操作数为buffer指向的内存单元的内容指向的内存单元的内容符号地址符号地址(变量名变量名)经汇编连接后,与一个确定的数值地址相对应经汇编连接后,与一个确定的数值地址相对应可用可用操作符操作符Offset 获取变量的偏移地址。获取变量的偏移地址。故故 PA=(DS)10H+Offset buffer 指令执行结果指令执行结果 (AX)=0B0A H寄存器间接寻址寄存器间接寻址 这种寻址方

23、式时,操作数在存储器中,而操作数这种寻址方式时,操作数在存储器中,而操作数有效地址有效地址由由BX、BP、SI和和DI中的一个指出,若未用前缀指明,默认关系为中的一个指出,若未用前缀指明,默认关系为A、使用使用BX、SI、DI,默认段寄存器为,默认段寄存器为DS (BX)PA=(DS)10H+(SI)(DI)B、使用使用BP,默认段寄存器为,默认段寄存器为SSPA=(SS)10H+(BP)注意:注意:寄存器间接寻址中的寄存器只有寄存器间接寻址中的寄存器只有四四个,并不是任意一个寄存个,并不是任意一个寄存器都行。器都行。例:例:MOV AX,DI 若若(DS)=3000H (DI)=2000H

24、则内存操作数的物理地址为:则内存操作数的物理地址为:PA=(DS)10H+(DI)=32000H 执行后执行后(AX)=(32000H)=400BH 32000 0B 058B指指 令令 40注意注意 指令指令 MOV AX,DI 与指令与指令MOV AX,DI有什么不同?有什么不同?MOV AX,BX PA=10hx(DS)+(BX)MOV AX,ES:BX PA=10h (ES)+(BX)MOV AX,BP PA=10h (SS)+(BP)格式举例:格式举例:不允许使用不允许使用AX、CX、DX 存放存放 EA(偏移地址,有效地(偏移地址,有效地址)址)MOV AX,CX SRC 和和 D

25、ST 的字长一致的字长一致 MOV DL,BX ;BX指示一个字节单元指示一个字节单元 MOV DX,BX ;BX指示一个字单元指示一个字单元适于数组、字符串、表格的处理适于数组、字符串、表格的处理强调:强调:l操作数的有效地址由一个寄存器与一个偏移量相加得到操作数的有效地址由一个寄存器与一个偏移量相加得到 偏移量(相对量)在指令中给出,范围在偏移量(相对量)在指令中给出,范围在0000 FFFFHl可用的寄存器有可用的寄存器有 BX、DI、SI、BP,与寄存器间接寻址相同与寄存器间接寻址相同 如如:MOV AL,BX+10HMOV AH,DI+20H MOV DL,30H SI MOV DH

26、,40H BP 寄存器相对寻址寄存器相对寻址这样有效地址这样有效地址EA的构成为:的构成为:默认段寄存器的关系与寄存器间接寻址相同默认段寄存器的关系与寄存器间接寻址相同A、使用使用BX、SI、DI,默认段寄存器为,默认段寄存器为DS (BX)PA=(DS)10H+(SI)+偏移量偏移量 (DI)B、使用使用BP,默认段寄存器为,默认段寄存器为SSPA=(SS)10H+(BP)+偏移量偏移量 例例:MOV AX,BX+30H 若若(DS)=2000H (BX)=1000H 则内存操作数的物理地址为:则内存操作数的物理地址为:PA=(DS)10H+(BX)+30H =21030H 指令执行后:指令

27、执行后:(AX)=(21030H)=8976H 21030 76 3047指指 令令 898B例:例:MOV AX,60H BP 若若(SS)=3000H (BP)=200H 则内存操作数的物理地址为:则内存操作数的物理地址为:PA=(SS)10H+(BP)+60H =30260H 指令执行后:指令执行后:(AX)=(30260H)=0ABCH 30260 BC 6046指指 令令 0A8B例:例:MOVAX,COUNT+BP若若(SS)=5000H,(BP)=3000H,COUNT=2040HOP4855存储器存储器堆堆栈栈段段AXALAH代代码码段段40205504050000OP位移量位

28、移量COUNT操作码操作码基址加变址寻址基址加变址寻址 l 操作数的有效地址由操作数的有效地址由 一个基址寄存器与一个变址寄存器之和给出。一个基址寄存器与一个变址寄存器之和给出。l 可用的基址寄存器为可用的基址寄存器为 BX 、BP 变址寄存器为变址寄存器为 SI、DI 如如 MOV AL,BX+SI MOV AX,BXDI MOV DL,BP+SI MOV DX,BPDI 默认段寄存器由默认段寄存器由基址寄存器基址寄存器决定。决定。A、基址寄存器为基址寄存器为BX,默认段寄存器为,默认段寄存器为DS (SI)PA=(DS)10H+(BX)+(DI)B、基址寄存器为基址寄存器为BP,默认段寄存

29、器为,默认段寄存器为SS (SI)PA=(SS)10H+(BP)+(DI)注意:注意:只是默认关系,但是可以通过声明改变只是默认关系,但是可以通过声明改变例:例:MOV AX,BX+SI 若若(DS)=4000H (BX)=2000H (SI)=100H 则内存操作数的物理地址为:则内存操作数的物理地址为:PA=(DS)10H+(BX)+(SI)=42100H 指令执行后指令执行后 (AX)=(42100H)=2345H 42100 45 008B指指 令令 23格式举例:格式举例:MOV AX,BX DI MOV AX,BX+DI MOV AX,ES:BX SI注意:注意:必须是一个必须是一

30、个基址寄存器基址寄存器和一个和一个变址寄存器变址寄存器的组合的组合 MOV AX,BX BP MOV AX,SI DI 相对基址加变址寻址相对基址加变址寻址 l操作数的有效地址由操作数的有效地址由 基址寄存器、变址寄存器、偏移量三者之和给出。基址寄存器、变址寄存器、偏移量三者之和给出。l可用的寄存器与基址加变址寻址方式相同可用的寄存器与基址加变址寻址方式相同 基址寄存器有基址寄存器有 BX、BP 变址寄存器有变址寄存器有 SI、DI如如 MOV AL,BX+SI+10H MOV AX,20H BXDI MOV DL,BP+SI+30H MOV DX,40H BPDI l 默认段寄存器由基址寄存

31、器决定默认段寄存器由基址寄存器决定,与基址加变址寻址相同与基址加变址寻址相同 基址寄存器为基址寄存器为BX,默认段寄存器为,默认段寄存器为DS (SI)PA=(DS)10H+(BX)+偏移量偏移量 (DI)基址寄存器为基址寄存器为BP,默认段寄存器为,默认段寄存器为SS (SI)PA=(SS)10H+(BP)+偏移量偏移量 (DI)例:例:MOV AX,BX+SI+10H 若若(DS)=4000H (BX)=3000H (SI)=200H 则内存操作数的物理地址为:则内存操作数的物理地址为:PA=(DS)10H+(BX)+(SI)+10H =43210H 指令执行后指令执行后 (AX)=(43

32、210H)=8877H 43210 77 1040指指 令令 888B例:例:MOV AX,MASK+BX+DI 设:设:(DS)=3000H,(BX)=1346H (DI)=0500H,MASK=1234HOP4855存储器存储器数数据据段段AXALAH代代码码段段341232A7AH30000HOP位移量位移量MASK操作码操作码31346H3257AH(DI)(BX)MASK内存操作数按给出偏移地址方式的不同,有以下内存操作数按给出偏移地址方式的不同,有以下5种寻址方式:种寻址方式:直接寻址直接寻址 MOV AL,1000H 寄存器间接寻址寄存器间接寻址 MOV AL,BX 寄存器相对寻

33、址寄存器相对寻址 MOV AL,BX+10H 基址加变址寄存器基址加变址寄存器 MOV AL,BX+SI 相对基址加变址寄存器相对基址加变址寄存器 MOV AL,BX+SI+10H 存储器操作数的段地址按默认关系得到。存储器操作数的段地址按默认关系得到。特点:有特点:有BP 默认默认 SS 无无BP 默认默认 DS寻址方式的几点说明:寻址方式的几点说明:1不自创寻址方式不自创寻址方式 内存操作数地址只能由内存操作数地址只能由BX、BP、SI、DI给出给出,它们的组合也不是任意的它们的组合也不是任意的。基基址址加加变变址址 BX+SI BX+DI BP+SI BP+DI寄寄存存器器相相对对SI+

34、X DI+X BX+X BP+X 寄寄存存器器间间接接SI DI BX BP 相相对对基基址址加加变变址址 BX+SI+X BX+DI+X BP+SI+X BP+DI+XX为为8 位位或或16 位位偏偏移移量量除此之外,其他方式均错误。除此之外,其他方式均错误。如如 MOV CL,AX MOV AX,DX MOV AL,CX MOV CX,BP+BX MOV AH,SI+DI MOV BL,AX+CX2偏移量可用符号地址给出偏移量可用符号地址给出 例:例:MOV AX,mask BX 若若(DS)=1000H (BX)=300H OFFSET mask=2000H PA=(DS)10H+(BX

35、)+OFFSET mask =12300H 执行后执行后 (AX)=6B5A H12300 5A 3322mask12000 6B113.段跨越前缀的使用段跨越前缀的使用l 段跨越前缀段跨越前缀 在指令中出现的指定内存单元在指令中出现的指定内存单元段地址的段寄存器符号段地址的段寄存器符号。表示方法为表示方法为 段寄存器名段寄存器名:例:例:MOV AX,ES:BX ES:MOV AX,BX (DEBUG下格式)下格式)为减小指令长度,为减小指令长度,CPU采用默认关系获取段地址。采用默认关系获取段地址。但,使用但,使用段跨越前缀段跨越前缀可强行改变这种默认关系。可强行改变这种默认关系。使用段跨

36、越前缀的指令比不使用的指令要多占一个字节。使用段跨越前缀的指令比不使用的指令要多占一个字节。8B 07指指 令令 MOV AX,ES:BX26指指 令令 MOV AX,BX8B 07l 使用段跨越前缀的物理地址计算使用段跨越前缀的物理地址计算例:例:MOV AX,ES:BX 使用段跨越的前缀后,段地址由指定的段寄存器给出使用段跨越的前缀后,段地址由指定的段寄存器给出,不再遵循默认关系。不再遵循默认关系。PA=(ES)10H +(BX)而不等于而不等于(DS)10H +(BX)l 只有存储器操作数需用段跨越的前缀只有存储器操作数需用段跨越的前缀MOV SI,ES:CXMOV AL,DS:BP MOV ES:AX,0 CS:MOV CX,22H本讲完!本讲完!谢谢!谢谢!65 结束语结束语

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

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

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


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

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


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