版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 1安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 21. 1.掌握一般指令系统的基本概念:指令格式、功能和掌握一般指令系统的基本概念:指令格式、功能和注意事项。注意事项。2.2. 重点掌握重点掌握8086/80888086/8088指令系统中,各指令的格式、指令系统中,各指令的格式、寻址方式寻址方式、指令类型指令类型 。3. 3. 了解其他(奔腾等)的寻址方式和指令类型。了解其他(奔腾等)的寻址方式和指令类型。安徽工业大学2022-4-17第第3章
2、章 8086/8088寻址方式和指令系统寻址方式和指令系统 33.2 8086/8088寻址方式 3.3 8086/8088的指令系统 安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 4 计算机的指令系统就是指该计算机能够执行的全部指令计算机的指令系统就是指该计算机能够执行的全部指令的集合。的集合。 每种计算机都有它支持的指令集合。每种计算机都有它支持的指令集合。 1616位位80868086指令系统是整个指令系统是整个Intel 80 x86 Intel 80 x86 系列微处理器指令系列微处理器指令系统的基础。系统的基础。安徽工业大学202
3、2-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 5指令通常应提供的信息 做什么操作 操作数从哪里来 操作结果放在哪里 对于调用和转移指令,还要涉及转移或调对于调用和转移指令,还要涉及转移或调用地址的提供方式用地址的提供方式安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 6说明计算机要执行哪种操作,如传送、运算、说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。移位、跳转等操作,它是指令中不可缺少的组成部分。 操作数操作数 操作数操作数指令由指令由操作码操作码和和操作数操作数两
4、部分组成。两部分组成。是指令执行的参与者,即各种操作的对象。是指令执行的参与者,即各种操作的对象。 有些指令不需要操作数,通常的指令都有一个或两个有些指令不需要操作数,通常的指令都有一个或两个操作数,也有个别指令有操作数,也有个别指令有3 3个甚至个甚至4 4个操作数,通常称为一个操作数,通常称为一地址指令地址指令( (单操作数指令单操作数指令) )、二地址指令(双操作数指令)、二地址指令(双操作数指令)、三三安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 7 操作数操作数2 2,常被称为源操作数,常被称为源操作数srcsrc,它表示参与指,它
5、表示参与指令操作的一个对象令操作的一个对象 操作数操作数1 1,成被称为目的操作数,成被称为目的操作数destdest,它不仅可以,它不仅可以作为指令操作的一个对象,还可以用来存放指令作为指令操作的一个对象,还可以用来存放指令操作的结果操作的结果 分号后的内容是对指令的解释分号后的内容是对指令的解释 操作码操作码 操作数操作数1,操作数操作数2 ;注释注释安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 83.1 指令的基本格式 3.3 8086/8088的指令系统 安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻
6、址方式和指令系统 9,称为,称为立即数立即数;,称为,称为寄存器操作寄存器操作数数。,称为,称为存储器存储器操作数操作数。指令指定操作数的位置,即给出地址信息,在。指令指定操作数的位置,即给出地址信息,在执行时需要根据这个地址信息找到需要的操作数。执行时需要根据这个地址信息找到需要的操作数。寻址就是寻址就是寻址方式就是寻找操作数的方法。寻址方式就是寻找操作数的方法。安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 10 指令系统设计了多种操作数的来源指令系统设计了多种操作数的来源 理解操作数的寻址方式是理解指令功能的前提理解操作数的寻址方式是理解
7、指令功能的前提 操作数采取哪一种寻址方式操作数采取哪一种寻址方式一方面,会影响处理器执行指令的速度和效率一方面,会影响处理器执行指令的速度和效率另一方面,另一方面,对程序设计也很重要对程序设计也很重要寻址方式寻址方式 与数据有关的寻址方式与数据有关的寻址方式 与转移地址有关的寻址方式与转移地址有关的寻址方式MOV指令指令安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 11 指令助记符体现该指令的功能,它对应一条二进制指令助记符体现该指令的功能,它对应一条二进制编码的机器指令。编码的机器指令。 指令的操作数个数由该指令确定,可以没有操作数,指令的
8、操作数个数由该指令确定,可以没有操作数,也可以有一个、二个或三个操作数。也可以有一个、二个或三个操作数。80X8680X86的指令格式的指令格式指令助记符指令助记符 操作数操作数1 , 1 , 操作数操作数2 , 2 , 操作数操作数3 3 ; ;注释注释 安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 12立即寻址立即寻址 MOV AX , 3069HMOV AX , 3069H寄存器寻址寄存器寻址 MOV AL , BHMOV AL , BH直接寻址直接寻址 MOV AX , 2000H MOV AX , 2000H 寄存器间接寻址寄存器间
9、接寻址 MOV AX , BX MOV AX , BX 寄存器相对寻址寄存器相对寻址 MOV AX , COUNT SI MOV AX , COUNT SI 基址变址寻址基址变址寻址 MOV AX , BP DI MOV AX , BP DI 相对基址变址寻址相对基址变址寻址 MOV AX , MASK BX SI MOV AX , MASK BX SI 3.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式存存储储器器操操作作数数寄存器操作数寄存器操作数立即数立即数安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 13图形表示:图形表
10、示: 定义:操作数作为指令的一部分而直接写在指令中,这种操定义:操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为作数称为立即数,这种寻址方式也就称为寻址方式。寻址方式。 汇编格式(操作数部分):汇编格式(操作数部分):n n(n n为立即操作数,是为立即操作数,是)功能:操作数存放在存储器,指令下一单元的内容为立即操作功能:操作数存放在存储器,指令下一单元的内容为立即操作数数n n。3.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式操作数操作数 n指令指令操作码操作码安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻
11、址方式和指令系统 14【例】【例】 MOV AXMOV AX, 4576H 4576H 执行后(执行后(AXAX)=? CSMOV AX,4576H指令的存储形式指令的存储形式 AXOP76H45H7645 该例中源操作数为立即寻址方式,立即数为该例中源操作数为立即寻址方式,立即数为4576H4576H,存,存放在指令的下一单元。放在指令的下一单元。执行:执行:4576HAX4576HAX执行后:(执行后:(AXAX)=4576H =4576H 3.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式
12、和指令系统 153.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式定义:定义:。把在指令中指出所使用寄存器。把在指令中指出所使用寄存器(即:寄存即:寄存器的助记符器的助记符)的寻址方式称为寄存器寻址方式。的寻址方式称为寄存器寻址方式。 寄存器寄存器 R指令指令操作数操作数寄存器寄存器汇编格式:汇编格式:R R (其中(其中R R表示寄存器名,如表示寄存器名,如AXAX、BXBX等。)等。)功能:操作数直接存放在寄存器功能:操作数直接存放在寄存器R R中。中。图形表示:图形表示:安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 163
13、.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式指令中可以引用的寄存器及其符号名称如下:指令中可以引用的寄存器及其符号名称如下: 8 8位寄存器有:位寄存器有:等;等; 1616位寄存器:位寄存器:等;等;注:注:。通常情况下,提倡在编写。通常情况下,提倡在编写编语言程序时,应尽可能编语言程序时,应尽可能地使用寄存器寻址方式,但也不要把它绝对化。地使用寄存器寻址方式,但也不要把它绝对化。安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 173.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式执行:执行:1234HAX 1
14、234HAX 执行后:(执行后:(AXAX)=68ACH=68ACH,(,(BXBX)=5678H=5678H5678HBX5678HBX(AXAX)+ +(BXBX)AXAX安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 183.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式3. 3. 存储器寻址存储器寻址 除上述寻址方式外,以下各种寻址方式,操作数都在除除上述寻址方式外,以下各种寻址方式,操作数都在除代码段之外的存储区中。通过不同的寻址方式,获得操代码段之外的存储区中。通过不同的寻址方式,获得操作数地址,从而取得操作数。作数地
15、址,从而取得操作数。在前面的章节中,我们知道操作数的物理地址等于段基在前面的章节中,我们知道操作数的物理地址等于段基址左移址左移4 4位,再加上偏移地址。下面主要解决的问题是位,再加上偏移地址。下面主要解决的问题是如何得到操作数的偏移地址。在如何得到操作数的偏移地址。在8086/80888086/8088里,将操作里,将操作数的偏移地址又称为有效地址(数的偏移地址又称为有效地址(effective addresseffective address,即,即EAEA),因此以下的各种寻址方式即为求有效地址(),因此以下的各种寻址方式即为求有效地址(EAEA)的)的不同途径。不同途径。 安徽工业大学
16、2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 193.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式8086/80888086/8088指令中有效地址(指令中有效地址(EAEA)由以下)由以下3 3部分组成:部分组成:位移量(位移量(displacementdisplacement):存放在指令中的一个):存放在指令中的一个8 8位或位或1616位的数,但它不是立即数,而是一个地址;位的数,但它不是立即数,而是一个地址;基址(基址(basebase):存放在基址寄存器():存放在基址寄存器(BXBX、BPBP)中的内)中的内容。它是有效地址
17、中的基址部分,通常用于指向数据段中容。它是有效地址中的基址部分,通常用于指向数据段中数组或字符串的首地址。数组或字符串的首地址。变址(变址(indexindex):存放在变址寄存器():存放在变址寄存器(SI SI、DIDI)中的内)中的内容。通常用来指向数组中某个元素或字符串的某个字符。容。通常用来指向数组中某个元素或字符串的某个字符。有效地址(有效地址(EAEA)可以用下列式子表示:)可以用下列式子表示:EA=EA=基址变址位移量基址变址位移量有效地址有效地址BX/BPSI/DI8/16位位移量位位移量段地址对应段地址对应BP基址寄存器基址寄存器默认是默认是SS,其它,其它默认是默认是DS
18、 ;可用段超越前缀改变可用段超越前缀改变根据有效地址中含有的成分不同,分别构成不同的寻址根据有效地址中含有的成分不同,分别构成不同的寻址方式方式 安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 203.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式8086/8088只能使用16位寻址方式(EA为16位),对以上3种成分的组成有着不同的规定,详见表3.1。 表3.1 16位 寻 址 时 有 效 地 址 的 三 种 成 分 的 组 成 3种 成 分 16位 寻 址 位 移 量 0, 8, 16位 基 址 寄 存 器 BX,BP 变 址
19、 寄 存 器 SI,DI 安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 21 3.2 3.2则说明了段寄存器使用的基本约定。在某些情况下,则说明了段寄存器使用的基本约定。在某些情况下,8086/80888086/8088允许程序员使用跨越段前缀来改变系统指定的默认段。允许程序员使用跨越段前缀来改变系统指定的默认段。但以下但以下3 3种情况不允许使用跨越段前缀。种情况不允许使用跨越段前缀。指令必须在代码段指令必须在代码段CSCS中;中;PUSHPUSH指令的源操作数和指令的源操作数和POPPOP指令的目的操作数必须使用指令的目的操作数必须使用S
20、SSS段;段; 串处理指令的目的串必须使用附加段串处理指令的目的串必须使用附加段ESES; 3.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 223.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式定义:定义:,这种寻址方式为直接寻址方式。,这种寻址方式为直接寻址方式。 EA指令指令操作数操作数存储器存储器段基地址段基地址汇编格式:汇编格式:。功能:功能:指令下一字单元的内容是操作数的偏移地址指令下一字单元的内容是操作数的偏移地址EAEA。图形表示:图形表示:安徽工业大学
21、2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 233.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式 BX DS:2000H 1234H 21234HOP CSDS13H52H20000H21234H34H12H1352安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 243.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式 在通常情况下,操作数存放在数据段中,所以,在通常情况下,操作数存放在数据段中,所以,但,但如果如果使用段超越前缀,那么,操作数可存放在其它段使用段超越前缀,那
22、么,操作数可存放在其它段。 例如:例如:MOVMOVES:1000HES:1000H, AX AX 注意:注意:,直,直接寻址的地址要写在括号接寻址的地址要写在括号“”,“”内。内。在程序中,在程序中,如:,如:MOV BX, VARWMOV BX, VARW,其中,其中,VARWVARW是内存字变量。是内存字变量。 试比较下列指令中源操作数的寻址方式(试比较下列指令中源操作数的寻址方式(VARWVARW是内存字是内存字变量):变量): MOVAX, 1234H MOVAX, 前者是立即寻址,后者是直接寻址前者是立即寻址,后者是直接寻址 MOVAX, VARW MOVAX, 两者是等效的,均为
23、直接寻址两者是等效的,均为直接寻址 安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 253.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式定定 义:义:,操作数的有效地址用,操作数的有效地址用SI SI、DIDI、BXBX和和BPBP等四个寄存器之一来指定,称这种寻址方式为寄存器间等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。接寻址方式。 EAEA寄存器寄存器操作数操作数存储器存储器段基地址段基地址基址或变址寄存器基址或变址寄存器指令指令汇编格式:汇编格式:RR功功 能:操作数存放在存储器,寄存器能:操作数存放在存储
24、器,寄存器R R存放操作数的偏移地存放操作数的偏移地址址EAEA。图形表示:图形表示:安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 26【例【例3.43.4】假设有指令:】假设有指令:MOV BX, DIMOV BX, DI,在执行时,(,在执行时,(DSDS)=1000H=1000H,(,(DIDI)=2345H=2345H,存储单元,存储单元12345H12345H的内容是的内容是4354H4354H。问执行指令后,问执行指令后,BXBX的值是什么?的值是什么?解:寄存器解:寄存器DIDI的值不是操作数,而是操作数的值不是操作数,而是操作
25、数的地址。该操作数的物理地址应由的地址。该操作数的物理地址应由DSDS和和DIDI的的值形成,即:值形成,即: 该指令的执行效果是:该指令的执行效果是:把从物理地址为把从物理地址为12345H12345H开始的一个字开始的一个字的值传送给的值传送给BXBX。 BX BX DSDS:1000H1000HDIDI:2345H2345H 12345H 12345H43435454OPOP CS CS DS DS54H54H43H43H 10000H 10000H 12345H 12345H3.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式安徽工业大学2022-4-17第第3章章 808
26、6/8088寻址方式和指令系统寻址方式和指令系统 273.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式 在不使用段超越前缀的情况下,有下列规定:在不使用段超越前缀的情况下,有下列规定: v若有效地址用若有效地址用SI SI、DIDI和和BXBX等之一来指定,则其缺省的段寄存等之一来指定,则其缺省的段寄存器为器为DSDS;v若有效地址用若有效地址用BPBP来指定,则其缺省的段寄存器为来指定,则其缺省的段寄存器为SSSS(即:堆(即:堆栈段)。栈段)。 该寻址方式物理地址的计算方法如下:该寻址方式物理地址的计算方法如下: 或或 安徽工业大学2022-4-17第第3章章 8086/8
27、088寻址方式和指令系统寻址方式和指令系统 28说明 此种寻址方式对于表格或数组处理方便,当执行完一条指令后,只需修改寄存器的内容,就可取出表格或数组的下一项。安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 293.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式定定 义:操作数在存储器中,其有效地址是一个基址寄存器义:操作数在存储器中,其有效地址是一个基址寄存器(BXBX、BPBP)或变址寄存器或变址寄存器(SI SI、DIDI)的内容和指令中的的内容和指令中的8 8位位/16/16位位偏移量之和。偏移量之和。 汇编格式:汇编格式
28、:XRXR(X X表示位移量,是表示位移量,是8 8位或位或1616位二进制补码表示位二进制补码表示的有符号数)的有符号数)功功 能:能:操作数存放在存储器,寄存器操作数存放在存储器,寄存器R R的内容加位移量的内容加位移量X X为操为操作数的偏移地址作数的偏移地址EAEA。图形表示如下:图形表示如下:地址地址寄存器寄存器操作数操作数存储器存储器段基地址段基地址基址或变址寄存器基址或变址寄存器 位移量位移量指令指令EA安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 303.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式【例【例3.
29、53.5】假设指令:】假设指令:MOV BX, SI+100HMOV BX, SI+100H,在执行它时,(,在执行它时,(DSDS)=1000H=1000H,(SI SI)=2345H=2345H,内存单元,内存单元12445H12445H的内容为的内容为2715H2715H,问该指令执行后,问该指令执行后,BXBX的的值是什么?值是什么? OP CS DS15H27H 10000H 12445H SI:2345H 100H EA:2445H DS:1000H 12445H27 15 BX所以,该指令的所以,该指令的执行效果是:执行效果是:把从物理地址为把从物理地址为12445H12445H
30、开始的开始的一个字的值传送一个字的值传送给给BXBX。解:解:EA=EA=(SI SI)+100H=2345H+100H=2445H +100H=2345H+100H=2445H PA= PA=(DSDS)* *16+EA=1000H16+EA=1000H* *16+2445H=12445H16+2445H=12445H安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 31寄存器相对寻址的用途 这种寻址方式可用于表格的处理,通过位位移量移量来设置表格的首地址; 利用修改基址寄存器或变址寄存器的内容来获得表项的值。DS:0000DS:DISPSIa
31、0a1安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 323.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式定定 义:操作数在存储器中,其有效地址是一个基址寄存器义:操作数在存储器中,其有效地址是一个基址寄存器(BXBX、BPBP)和一个变址寄存器和一个变址寄存器(SI SI、DIDI)的内容之和。的内容之和。 汇编格式:汇编格式: BR+IRBR+IR功功 能:能:操作数存放在存储器,操作数存放在存储器,BRBR的内容加的内容加IRIR的内容是操作的内容是操作数的偏移地址数的偏移地址EAEA。图形表示:图形表示:操作数操作数 存
32、储器存储器段基地址段基地址基址寄存器基址寄存器 变址寄存器变址寄存器指令指令基址值基址值基址寄存器基址寄存器变址值变址值变址寄存器变址寄存器EAEA安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 333.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式【例】假设指令:【例】假设指令:MOV BX, BX+SIMOV BX, BX+SI,在执行时,(,在执行时,(DSDS)=1000H=1000H,(,(BXBX)=2100H=2100H,(,(SI SI)=0011H=0011H,内存单元,内存单元12111H12111H的的内容为
33、内容为1234H1234H。问该指令执行后,。问该指令执行后,BXBX的值是什么?的值是什么? OP CS DS34H12H 10000H 12111H BX:2100H SI:0011H EA:2111H DS:1000H 12111H12 34 BX解:操作数的物理地址解:操作数的物理地址PAPA为:为: PA=PA=(DSDS)* *16+ 16+ (BXBX)+ +(SI SI) =1000H=1000H* *16+ 16+ 2100H+0011H =12111H2100H+0011H =12111H所以,该指令的执行效果是:所以,该指令的执行效果是:把从物理地址为把从物理地址为121
34、11H12111H开始开始的一个字的值传送给的一个字的值传送给BXBX。 安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 34基址变址寻址的用途这种寻址方式同样适用于表格(或数组),首地址可存放在基址寄存器中,而用变址寄存器来访问表格中的各项,由于两个寄存器都可以 修改,所以使用起来比寄存器相对寻址更灵活。安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 353.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式定定 义:操作数在存储器中,其有效地址是一个基址寄存器义:操作数在存储器中,
35、其有效地址是一个基址寄存器(BXBX、BPBP)的值、的值、一个变址寄存器一个变址寄存器(SI SI、DIDI)的值和指令中的的值和指令中的8 8位位/16/16位偏移量之和。位偏移量之和。 汇编格式:汇编格式:X BR+IRX BR+IR功功 能:能:操作数存放在存储器,操作数存放在存储器,BRBR内容加内容加IRIR内容加位移量内容加位移量X X是操作数的偏移地是操作数的偏移地址址EAEA。图形表示:图形表示:存储器存储器基址值基址值基址寄存器基址寄存器操作数操作数段基地址段基地址基址寄存器基址寄存器 变址寄存器变址寄存器 位移量位移量指令指令变址值变址值变址寄存器变址寄存器EAEA安徽工
36、业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 363.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式【例【例3.73.7】假设指令:】假设指令:MOV AX, BX+SI+200HMOV AX, BX+SI+200H,在执行时,在执行时,(DSDS)=1000H=1000H,(,(BXBX)=2100H=2100H,(,(SI SI)=0010H=0010H,内存单元,内存单元12310H12310H的内容为的内容为1234H1234H。问该指令执行后,。问该指令执行后,AXAX的值是什么?的值是什么? BX:2100H SI:001
37、0H 0200H EA:2310H DS:1000H 12310HOP CS DS34H12H 10000H 12310H12 34 AX解:该操作数的物理解:该操作数的物理地址应由地址应由DSDS和和EAEA的值的值形成,即:形成,即:PA=12310HPA=12310H所以,该指令的执行所以,该指令的执行效果是:效果是:把从物理地址为把从物理地址为12310H12310H开始的一个字开始的一个字的值传送给的值传送给AXAX。安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 37相对基址加变址寻址的用途 这种寻址方式对堆栈中数组的访问提供了方便
38、,通常可用BP指向栈顶(MOV BP,SP). 从栈顶到数组第一个元素的距离用位移量表示,变址寄存器(SI或DI)用来指出数组元素。BP 栈顶 存储器 低地址 位移量 SI 高地址 A(0) A(1) A(n)安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 38v 跨段越问题跨段越问题 凡是使用寄存器为凡是使用寄存器为BXBX、SI SI、DIDI时,其默认段为时,其默认段为DSDS,使用,使用BPBP时,默认段为时,默认段为SSSS。该规定为系统默认状态。当要否定默认状态,。该规定为系统默认状态。当要否定默认状态,到非约定段寻找操作数时,必须
39、用跨段前缀指明操作数的段寄到非约定段寻找操作数时,必须用跨段前缀指明操作数的段寄存器名。存器名。汇编格式:汇编格式:功能:冒号功能:冒号“:”之前的段寄存器名指明操作数所在的段。之前的段寄存器名指明操作数所在的段。 该例中,该例中,DSDS:,:,SSSS:均为跨段前缀,此时默认状态无效,:均为跨段前缀,此时默认状态无效,操作数的物理地址操作数的物理地址PAPA由段寄存器内容左移由段寄存器内容左移4 4位加偏移位加偏移EAEA形成。形成。上述上述2 2条指令的源操作数物理地址分别为:条指令的源操作数物理地址分别为: PA1 =PA1 =(DSDS)左移)左移4 4位位+BP+BP PA2 =
40、PA2 =(SSSS)左移)左移4 4位位+ SI+ SI3.2.1 3.2.1 与数据有关的寻址方式与数据有关的寻址方式安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 39寻址方式与数据结构的关系寻址方式与数据结构的关系 操作数寻址方式支持高级语言的数据结构,由于存储单元地址的线性排列,故存取一个元素或数据项的问题转变为表示和计算单元地址的问题(即寻址)。现将几种数据结构与存储器的寻址关系列表如下:安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 403.2.2 3.2.2 与转移地址有关的寻址
41、方式与转移地址有关的寻址方式 用来确定转移指令及转子程序(用来确定转移指令及转子程序(callcall)指令的转向地址)指令的转向地址。转移地址是由各种寻址方式得到的有效地址和段地址相。转移地址是由各种寻址方式得到的有效地址和段地址相加而成的,加而成的,有效地址存入有效地址存入IPIP寄存器中,段地址指定为寄存器中,段地址指定为CSCS段段寄存器内容寄存器内容。 段内寻址段内寻址 段内直接寻址段内直接寻址 段内间接寻址段内间接寻址 段间寻址段间寻址 段间直接寻址段间直接寻址 段间间接寻址段间间接寻址 安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系
42、统 413.2.2 3.2.2 与转移地址有关的寻址方式与转移地址有关的寻址方式 段内转移是指程序在同一代码段内,仅改变段内转移是指程序在同一代码段内,仅改变IPIP寄存器的值,而不寄存器的值,而不改变改变CSCS寄存器的值所发生的转移。段内转移又分为段内直接转移寄存器的值所发生的转移。段内转移又分为段内直接转移和段内间接转移和段内间接转移。 转向的有效地址转向的有效地址 = = 当前(当前(IPIP) + + 位移量(位移量(8bit/16bit) 8bit/16bit) 位移量位移量IPIP寄存器寄存器EAEA安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻
43、址方式和指令系统 42 1 1)JMP SHORT QUESTJMP SHORT QUEST ; ; 短转移使用标号与当前短转移使用标号与当前IPIP的的8 8位位移位位移 其中其中QUESTQUEST表示转移的符号地址,操作符表示转移的符号地址,操作符SHORTSHORT表示是个表示是个8 8位位带符号数,数的范围是带符号数,数的范围是80H 7FH80H 7FH,即,即 -128 +127-128 +127。它只能相对。它只能相对于当前于当前IPIP(转移指令的下一条指令的首地址)所指的位置作(转移指令的下一条指令的首地址)所指的位置作-128 -128 +127+127范围内跳转,所以称
44、为范围内跳转,所以称为。2 2)JMP NEAR PTR PROGA ; JMP NEAR PTR PROGA ; 近转移使用标号与当前近转移使用标号与当前IPIP的的1616位位位位移移 其中其中PROGAPROGA表示转移的符号地址,操作符表示转移的符号地址,操作符NEAR PRTNEAR PRT表示是个表示是个1616位带符号数,数的范围是位带符号数,数的范围是8000H 7FFFH8000H 7FFFH,即,即 -32768 -32768 +32767+32767。它只能相对于当前。它只能相对于当前IPIP所指的位置作所指的位置作-32768 +32767-32768 +32767范范
45、围内跳转,所以称为近跳转。围内跳转,所以称为近跳转。 3.2.2 3.2.2 与转移地址有关的寻址方式与转移地址有关的寻址方式安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 43 转向的有效地址是一个寄存器或存储单元的内容。可使转向的有效地址是一个寄存器或存储单元的内容。可使用除立即数以外的任何一种数据寻址方式得到,所得到的转用除立即数以外的任何一种数据寻址方式得到,所得到的转向的有效地址取代向的有效地址取代IPIP寄存器的内容。寄存器的内容。转向的有效地址转向的有效地址指令指令数据寻址方式数据寻址方式或或根据数据寻址根据数据寻址方式计算出方式
46、计算出EAEA值值转向的有效地址转向的有效地址存储单元存储单元3.2.2 3.2.2 与转移地址有关的寻址方式与转移地址有关的寻址方式安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 44 JMP BX ; JMP BX ; (IPIP)=1256H=1256H JMP WORD PTR TABLEBX ; JMP WORD PTR TABLEBX ; (IPIP)=3280H=3280H JMP WORD PTR BXSI ; JMP WORD PTR BXSI ; (IPIP)=2450H=2450H3.2.2 3.2.2 与转移地址有关的寻
47、址方式与转移地址有关的寻址方式【例【例】 已知已知 TABLE=20A2H TABLE=20A2H ,(,(BXBX)=1256H =1256H ,(,(SI SI)=528EH=528EH,(DSDS)=2000H =2000H ,(,(232F8H232F8H)= 3280H = 3280H ,(,(264E4H264E4H)=2450H=2450H安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 45用指令中提供的转向段地址和偏移地址取代用指令中提供的转向段地址和偏移地址取代CS CS 和和 IPIP。指令指令偏移地址偏移地址IPIP寄存器
48、寄存器段地址段地址CSCS寄存器寄存器 当程序从一个代码段转移到另一个代码段时,不仅要改变当程序从一个代码段转移到另一个代码段时,不仅要改变IPIP寄存器的值,同时也要改变寄存器的值,同时也要改变CSCS寄存器的值,这种转移称为段间寄存器的值,这种转移称为段间转移。段间转移又分为段间直接转移和段间间接转移。转移。段间转移又分为段间直接转移和段间间接转移。 3.2.2 3.2.2 与转移地址有关的寻址方式与转移地址有关的寻址方式安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 46【例【例】JMPJMPFAR PTR NEXTROUNTFAR PT
49、R NEXTROUNT; ;远转移同时使用标号的段属性和远转移同时使用标号的段属性和偏移属性偏移属性新新IPIP新新CSCS3232EAEA0101000010101010CS=0000HCS=0000H CSCS00000000000200002000 IPIPIP=2000HIP=2000H CSCSCS=1000HCS=1000HNEXTROUNTNEXTROUNTIP=0132HIP=0132H101321013210000100003.2.2 3.2.2 与转移地址有关的寻址方式与转移地址有关的寻址方式安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址
50、方式和指令系统 47 用存储器中的两个相继字的内容取代用存储器中的两个相继字的内容取代CS CS 和和 IPIP,存储单,存储单元的地址可用存储器寻址方式得到元的地址可用存储器寻址方式得到。 指令指令数据寻址方式数据寻址方式根据数据寻址根据数据寻址方式计算出方式计算出EAEA值值转向的有效地址转向的有效地址转向的段地址转向的段地址存储器中的两个相继字存储器中的两个相继字IPIPCSCS3.2.2 3.2.2 与转移地址有关的寻址方式与转移地址有关的寻址方式低字为低字为EA,高字为段,高字为段地址地址安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统
51、 48 如如DS=3000HDS=3000H,BX=1200HBX=1200H,INTERS=0020HINTERS=0020H, 则存储单元的物理地址则存储单元的物理地址PA=30000+0020+1200=31200HPA=30000+0020+1200=31200H 指令执行前,指令执行前,CS=0000HCS=0000H,IP=1000HIP=1000H,(,(31220H31220H)=40H=40H, (3122131221)=01H=01H,(,(31222H31222H)=00H=00H,(,(3122331223)=10H=10H。 指令执行后,指令执行后,CS=1000HC
52、S=1000H,IP=0140HIP=0140H,(,(31220H31220H)=40H=40H, (3122131221)=01H=01H,(,(31222H31222H)=00H=00H,(,(3122331223)=10H=10H。3.2.2 3.2.2 与转移地址有关的寻址方式与转移地址有关的寻址方式【例【例】 JMPJMPDWORD PTR INTERS+BXDWORD PTR INTERS+BX安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 49指令存储和执行情况:指令存储和执行情况:JMPDWORDPTRINTERBXCS=00
53、00H CS0000001000 IPIP=1000H CSCS=1000H IPIP=0140H1014010000代码段代码段01400010DS=3000H DS3000031220INTER+BX数据段数据段新新IP新新CS3122131222312233.2.2 3.2.2 与转移地址有关的寻址方式与转移地址有关的寻址方式安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 503.1 指令的基本格式 3.2 8086/8088寻址方式 安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 518
54、0X8680X86指令系统分为以下指令系统分为以下6 6组:组: 在学习汇编指令时,指令的功能是我们学习和掌握的重点,在学习汇编指令时,指令的功能是我们学习和掌握的重点,但要准确、有效地运用这些指令,我们还要熟悉系统对每条指令但要准确、有效地运用这些指令,我们还要熟悉系统对每条指令的一些规定或约束。因此,对指令要掌握以下几个方面内容:的一些规定或约束。因此,对指令要掌握以下几个方面内容:安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 523.3. .数据传送指令数据传送指令 数据传送指令数据传送指令。它相对于高级语言里的赋值语句。它相对于高级语
55、言里的赋值语句。 :MOV MOV PUSH POP PUSH POP : IN OUT XLATIN OUT XLAT: LEA LEA LDS LES LDS LES: LAHF SAHF PUSHF POPFLAHF SAHF PUSHF POPF:CBW CWDCBW CWD安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 53 数据传送是计算机中最基本、最重要的一种操作数据传送是计算机中最基本、最重要的一种操作, ,传送指令也是最常使用的一类指令传送指令也是最常使用的一类指令 传送指令把数据从一个位置传送到另一个位置传送指令把数据从一个
56、位置传送到另一个位置 除标志寄存器传送指令外,均不影响标志位除标志寄存器传送指令外,均不影响标志位 重点掌握重点掌握MOV XCHG PUSH POP IN OUT XLAT LEA3.3. .数据传送指令数据传送指令安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 543.3. .数据传送指令数据传送指令指令格式指令格式:MOV opd, ops 操作操作:opd ops 实现立即数、寄存器与内存间的数据传送(复制操作复制操作). 例: MOV AL, BL MOV DI, AX MOV CX,1000H MOV BL, 40 MOV WORD
57、 PTRSI,01HWORD PTR 字长度标记;字长度标记;BYTE PTR 字节长度标记字节长度标记DWORD PTR 双字长度标记双字长度标记 (伪指令)(伪指令)影响标志的情况影响标志的情况:所有通用传送指令都不影响标志位。:所有通用传送指令都不影响标志位。安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 55MOV指令允许传送数据的路径体现一个原则:除了立即数寻址以外,双操作数指令至少要有一个操作数在寄存器源操作数可以是寄存器、存储器、立即数,目的操作数是除CS和IP以外的寄存器或存储器。安徽工业大学2022-4-17第第3章章 808
58、6/8088寻址方式和指令系统寻址方式和指令系统 56举例:举例:mov cl,4;cl4,字节传送,字节传送mov dx,0ffh;dx00ffh,字传送,字传送mov bx,al;bxal,字节传送,字节传送mov ds,ax;dsax,字传送,字传送mov al,bx;alds:bxmov dx,bp+4;dxss:bp+4mov ax,ds;axds明确指令是字节操作还是字操作明确指令是字节操作还是字操作3.3. .数据传送指令数据传送指令安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 57非法指令的主要现象:非法指令的主要现象: 两个
59、操作数的类型不一致两个操作数的类型不一致 无法确定是字节量还是字量操作无法确定是字节量还是字量操作 两个操作数都是存储器两个操作数都是存储器 段寄存器的操作有一些限制段寄存器的操作有一些限制3.3. .数据传送指令数据传送指令安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 58非法指令两个操作数类型不一致非法指令两个操作数类型不一致在绝大多数双操作数指令中,目的操作数和源在绝大多数双操作数指令中,目的操作数和源操作数必须具有一致的数据类型,或者同为字操作数必须具有一致的数据类型,或者同为字量,或者同为字节量,否则为非法指令量,或者同为字节量,否
60、则为非法指令MOV AL, 050AH;非法指令,;非法指令,修正:修正:;mov ax,050ahMOV SI, DL;非法指令,;非法指令,修正:修正:;mov dh,0;mov si,dx3.3. .数据传送指令数据传送指令安徽工业大学2022-4-17第第3章章 8086/8088寻址方式和指令系统寻址方式和指令系统 59非法指令无法确定是字节量还是字量操作非法指令无法确定是字节量还是字量操作当无法通过任一个操作数确定是操作类型时,当无法通过任一个操作数确定是操作类型时,需要利用汇编语言的操作符显式指明需要利用汇编语言的操作符显式指明MOV BX+SI, 255;非法指令,;非法指令,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中华传统美德心得体会(10篇)
- 员工表扬信15篇
- 会飞的教室读后感集合
- 中国好人李培生先进事迹
- 他乡的童年日本纪录片观后感
- 二八定律读后感
- 个人无收入证明书(9篇)
- DB12∕T 1050-2021 畜禽粪污异位发酵床处理技术规范
- 报关实务-教学课件 第三章 海关检验检疫
- 影响我国自主创新因素的SVAR分析
- DB3305-T 104-2019环境污染责任保险风险评估技术规范
- GB/T 23132-2024电动剃须刀
- 门窗维修简单合同范本(2024版)
- 糖尿病酮症酸中毒
- 飞控系统讲解
- 农村土地承包租赁合同范本版
- 中医病专科申报课件
- 2024年重庆国丰实业有限公司招聘笔试冲刺题(带答案解析)
- 2024年新个人借款合同电子版(3篇)
- 多发性骨髓瘤教学查房
- web前端开发工程师职业生涯规划
评论
0/150
提交评论