(微机原理与接口技术)chapter03寻址方式课件.ppt

上传人(卖家):晟晟文业 文档编号:4841561 上传时间:2023-01-17 格式:PPT 页数:81 大小:656.50KB
下载 相关 举报
(微机原理与接口技术)chapter03寻址方式课件.ppt_第1页
第1页 / 共81页
(微机原理与接口技术)chapter03寻址方式课件.ppt_第2页
第2页 / 共81页
(微机原理与接口技术)chapter03寻址方式课件.ppt_第3页
第3页 / 共81页
(微机原理与接口技术)chapter03寻址方式课件.ppt_第4页
第4页 / 共81页
(微机原理与接口技术)chapter03寻址方式课件.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、1第第3章章 寻址方式寻址方式808680286微处理器的微处理器的数据寻址数据寻址方式包括方式包括寄存寄存器寻址,立即寻址,直接寻址,寄存器间接寻器寻址,立即寻址,直接寻址,寄存器间接寻址,基址加变址寻址,寄存器相对寻址和相对址,基址加变址寻址,寄存器相对寻址和相对基址加变址寻址。基址加变址寻址。80386 和更高档型号的微处理器还包含和更高档型号的微处理器还包含比例变址比例变址方式的存储器数据寻址。方式的存储器数据寻址。程序存储器寻址方式包括程序存储器寻址方式包括程序相对寻址,直接程序相对寻址,直接寻址和间接寻址。寻址和间接寻址。堆栈堆栈的操作的操作2在在808680286中,中,MOV

2、指令在寄存器之间或寄指令在寄存器之间或寄存器与存储器之间传送字节数据或者字数据。存器与存储器之间传送字节数据或者字数据。在在80386和更高档型号的微处理器中,和更高档型号的微处理器中,MOV指令指令在寄存器之间或寄存器与存储器之间传送字节、在寄存器之间或寄存器与存储器之间传送字节、字或双字。字或双字。3一条指令的体系结构一条指令的体系结构操作码操作码操作数操作数4寄存器寻址寄存器寻址5要点要点需使用相同长度的寄存器需使用相同长度的寄存器就寄存器类就寄存器类 MOV指令而言,段寄存器到段寄指令而言,段寄存器到段寄存器是不允许的存器是不允许的代码段寄存器不能用代码段寄存器不能用 MOV 指令改变

3、指令改变MOV 指令都不影响标志位指令都不影响标志位6立即寻址立即寻址7要点要点字母字母H表示十六进制数表示十六进制数如果十六进制数以字母开头,则要求在它前面加一如果十六进制数以字母开头,则要求在它前面加一个个0。例如,用。例如,用0F2H表示十六进制数表示十六进制数F2二进制数后面跟着字母二进制数后面跟着字母B时,表示该数据是二进制时,表示该数据是二进制数据数据十进制数不要求特殊的代码和符号十进制数不要求特殊的代码和符号一个一个ASCII码字符或几个字符可表示为立即数。例码字符或几个字符可表示为立即数。例如,如,A表示表示41H,AA表示表示4141H89程序中的每条语句由程序中的每条语句由

4、4个部分组成:个部分组成:标号,操作码,标号,操作码,操作数和注释操作数和注释当程序被汇编后,就会生成清单当程序被汇编后,就会生成清单 扩展名扩展名.LST 文件文件(ML编译时,带编译时,带/Fl 参数。例如:参数。例如:ML /Fl MY1.ASM)和指令的机器码或者数据一样,指令或数据的偏移和指令的机器码或者数据一样,指令或数据的偏移地址也由汇编程序生成地址也由汇编程序生成10直接寻址直接寻址11MOV指令(指令(3字节长)所用的直接寻址在数据段存字节长)所用的直接寻址在数据段存储单元与储单元与 AL,AX和和 EAX寄存器之间传送数据寄存器之间传送数据除了指令是除了指令是4字节或更多外

5、,字节或更多外,位移量寻址位移量寻址几乎等同几乎等同于于直接寻址直接寻址偏移地址加数据段地址形成存储数据单元偏移地址加数据段地址形成存储数据单元1213数据段以数据段以.DATA 语句开始语句开始模型的尺寸由模型的尺寸由 TINY调整调整 SMALL,因而包含了一个,因而包含了一个数据段数据段SMALL模型允许一个数据段和一个代码段模型允许一个数据段和一个代码段SMALL模型程序被汇编成执行模型程序被汇编成执行(.EXE)DB 和和DW 伪指令在数据段中分配存储单元伪指令在数据段中分配存储单元STARTUP 语句不仅指示代码段的开始,也将数据语句不仅指示代码段的开始,也将数据段的段地址装入数据

6、段寄存器段的段地址装入数据段寄存器14寄存器间接寻址寄存器间接寻址15寄存器寄存器 BP,BX,DI和和 SI 以以 为标志保存偏移地址为标志保存偏移地址80386 和更高档型号微处理器的寄存器间接寻址允许和更高档型号微处理器的寄存器间接寻址允许使用使用ESP以外的任何扩展寄存器以外的任何扩展寄存器 BX,DI和和 SI寻址存储器时,默认使用数据段;如果寻址存储器时,默认使用数据段;如果用用BP寻址寻址 存储器,默认使用堆栈段存储器,默认使用堆栈段对于对于80386和更高档型号的微处理器,和更高档型号的微处理器,EBP默认寻址默认寻址堆栈段中的存储器,而堆栈段中的存储器,而 EAX,EBX,E

7、CX,EDI 和和ESI 默认寻址数据段中的存储器默认寻址数据段中的存储器16汇编伪指令汇编伪指令 BYTE PTR,WORD PTR,DWORD PTR指明由存储器指针指明由存储器指针(PTR)寻址的存储器数据的寻址的存储器数据的长度长度伪指令只用于带有立即数的通过指针或变址伪指令只用于带有立即数的通过指针或变址寄存器寻址的存储单元寄存器寻址的存储单元17例如例如任务任务:要建立一个从要建立一个从 0000:046C存储单元开始,包存储单元开始,包含含50个采样值的信息表个采样值的信息表条件条件:单元单元0000:046C含有一个由含有一个由 PC实时时钟维实时时钟维持的计数器持的计数器 步

8、骤步骤 1:将表的起始地址装入将表的起始地址装入BX中中,用寄存器间用寄存器间接寻址方式顺序存储这接寻址方式顺序存储这50个采样值个采样值步骤步骤 2:初始化计数器,再将初始化计数器,再将50装入装入CX寄存器,寄存器,采用采用DB指令去分配数据段中的存储单元指令去分配数据段中的存储单元注意注意 MOV BX,DATAS 与与 MOV BX,OFFSET DATAS 的区别的区别181920要点要点程序用程序用 MOV AX,ES:046CH 指令从附加段存指令从附加段存储单元储单元46CH读出数据读出数据利用寄存器利用寄存器BX中的偏移地址,使用间接寻址方中的偏移地址,使用间接寻址方式将数据

9、存入存储单元中式将数据存入存储单元中BX 递增指向表的下一个单元递增指向表的下一个单元LOOP指令使计数器指令使计数器CX递减递减在地址在地址0000:046C0000:046F处,存放定时器的处,存放定时器的计数值。这个值在午夜计数值。这个值在午夜0时为时为0,然后每秒增加,然后每秒增加18.2次。次。21基址加变址寻址基址加变址寻址22在在808680386中中,基址加变址基址加变址寻址用一个基址寄存器寻址用一个基址寄存器(BP或或BX)保存存储器数组的起始位置地址和一个变保存存储器数组的起始位置地址和一个变址寄存器址寄存器(DI或或 SI)保存数组元素的相对位置保存数组元素的相对位置BP

10、 寄存器和堆栈段寄存器两者生成有效地址寄存器和堆栈段寄存器两者生成有效地址 在在 80386 和更高档型号的微处理器中,和更高档型号的微处理器中,基址加变址基址加变址寻址方式允许除了寻址方式允许除了ESP以外的任意两个以外的任意两个32位扩展寄存位扩展寄存器组合使用器组合使用如果用如果用EBP寄存器,数据在堆栈段中而不在数据段寄存器,数据在堆栈段中而不在数据段中中2324用途用途:寻址存储器数组中的元素寻址存储器数组中的元素将数组的起始地址装入寄存器将数组的起始地址装入寄存器BX(基址)(基址)把要存取的元素在数组中的序号数存入寄存器把要存取的元素在数组中的序号数存入寄存器DI(变址)(变址)

11、25例如例如任务任务:将数组中将数组中 10H号元素装入数组单元号元素装入数组单元 20H注意注意:用装入用装入DI寄存器中的数组元素序号寻址数寄存器中的数组元素序号寻址数组元素组元素2627寄存器相对寻址寄存器相对寻址28用位移量加基址或变址寄存器用位移量加基址或变址寄存器(BP,BX,DI或或 SI)的内容寻址存储器段中的数据的内容寻址存储器段中的数据BX,DI或或SI寻址数据段,寻址数据段,BP寻址堆栈段寻址堆栈段 在在 80386 和更高档型号的微处理器中,位移量和更高档型号的微处理器中,位移量可以是可以是32位的数字,寄存器可以是除了位的数字,寄存器可以是除了ESP以外以外的任何的任

12、何32位寄存器位寄存器位移量可以是在位移量可以是在 符号内加到寄存器上的一个数,符号内加到寄存器上的一个数,还可以是加在还可以是加在 符号前面的偏移地址,或者两种符号前面的偏移地址,或者两种情况一起出现。情况一起出现。29应用应用:寄存器相对寻址方式寻址数组数据寄存器相对寻址方式寻址数组数据例如例如:把数组把数组10H单元的内容传送到数组单元的内容传送到数组20H单元,单元,以完成和基址加变址一样的任务以完成和基址加变址一样的任务不用不用BX寄存器寻址寄存器寻址ARRAY存储区域,而是将存储区域,而是将ARRAY作为位移量作为位移量变址寄存器变址寄存器DI用于存取元素用于存取元素3031.MO

13、DEL SMALLDB 16 DUP(?).DATA.STARTUPMOV DI,10HMOV AL,ARRAYDI.EXITEND0000000017 BF 0010001A 8A 85 0000 R;select SMALL model;start of DATA segment;get element 10H;address element 20H;exit to DOS;end of file;setup array.CODE;start of CODE segment001E BF 00200021 88 0000 R0000 0010 ARRAY0000;start of prog

14、ramMOV ARRAYDI,AL0010 29DB 29H0011 001E DB 30 DUP(?)00;sample data at element 10HMOV DI,20H;address element 10H;save in element 20H32相对基址加变址寻址相对基址加变址寻址33类似于基址加变址寻址方式,但是它用基址寄类似于基址加变址寻址方式,但是它用基址寄存器和变址寄存器加位移量形成存储器地址存器和变址寄存器加位移量形成存储器地址在在80386和更高档型号的微处理器中,由两个和更高档型号的微处理器中,由两个32位寄存器和位寄存器和32的位移量之和产生有效地址的位移量

15、之和产生有效地址应用应用:因为它有点复杂,这种寻址方式通常用来因为它有点复杂,这种寻址方式通常用来寻址存储器的二维数组中的数据寻址存储器的二维数组中的数据用相对基址加变址寻址方式访问数组:假定存用相对基址加变址寻址方式访问数组:假定存储器中的文件包含多个记录,每个记录包含多储器中的文件包含多个记录,每个记录包含多个元素个元素34例如例如任务任务:将记录将记录A中的元素中的元素0复制复制C中的元素中的元素2注意注意:位移量寻址文件,基址寄存器寻址记录,位移量寻址文件,基址寄存器寻址记录,而变址寄存器寻址记录中的元素而变址寄存器寻址记录中的元素此例中的此例中的 FILE 包含包含4个记录,每个记录

16、包含个记录,每个记录包含10个元素个元素3536.MODEL SMALLEQU THIS BYTE.DATA0000;reserve 10 bytes for RECA;start of DATA segment;assign FILE to this byte0000=0000FILE0000 000A DB 10 DUP(?)RECA00000A 000A DB 10 DUP(?)RECB000014 000A RECC00001E 000A RECD00DB 10 DUP(?)DB 10 DUP(?);SMALL model;reserve 10 bytes for RECB;reser

17、ve 10 bytes for RECC;reserve 10 bytes for RECD37.STARTUPMOV BX,OFFSET RECAMOV DI,0.EXITEND0017 BB 0000 R001A BF 0000;address element 0;address element 20H;exit to DOS;end of file.CODE;start of CODE segment001D 8A 81 0000 R0021 BB 0014 R0000;start of programMOV BX,OFFSET RECCMOV AL,FILE BX+DI;address

18、 RECA;address RECCMOV DI,2MOV FILEBX+DI,AL;address element 2;save data0024 BF 00020027 88 81 0000 R38比例变址寻址比例变址寻址39这种寻址方式是这种寻址方式是80386Pentium微处理器特有的微处理器特有的使用使用32位寄存器(基址寄存器和变址寄存器)位寄存器(基址寄存器和变址寄存器)访问存储器访问存储器第第2个寄存器(变址寄存器)与比例因子相乘,个寄存器(变址寄存器)与比例因子相乘,比例因子可以是比例因子可以是1X,2X,4X是或是或8X比例因子比例因子2X用来寻址字存储器数组,比例因子用

19、来寻址字存储器数组,比例因子4X用来寻址双字存储器数组用来寻址双字存储器数组40例如例如任务任务:访问访问LIST字数组数据字数组数据,这个程序将单元这个程序将单元2中的中的内容内容2存储到单元存储到单元4和单元和单元7注意注意:.386 伪指令选择伪指令选择80386微处理器,这个伪指令微处理器,这个伪指令必须放在必须放在.MODEL语句后面语句后面4142数据结构数据结构数据结构用来规定信息怎样存储到存储器数组中数据结构用来规定信息怎样存储到存储器数组中STRUC定义结构的开始,定义结构的开始,ENDS语句定义结构的结语句定义结构的结束束例例3.11 43程序存储器寻址程序存储器寻址直接程

20、序存储器寻址直接程序存储器寻址相对程序存储器寻址相对程序存储器寻址间接程序存储器寻址间接程序存储器寻址44直接程序存储器寻址直接程序存储器寻址45在实模式下,远转移通过改变在实模式下,远转移通过改变CS和和 IP两者的内两者的内容,访问存储器第一个容,访问存储器第一个1MB内的任何单元内的任何单元在保护模式操作中,远转移访问描述符表里的新在保护模式操作中,远转移访问描述符表里的新的代码段描述符,允许转移到存储器中的任何存的代码段描述符,允许转移到存储器中的任何存储单元储单元46相对程序存储器寻址相对程序存储器寻址JMP指令的格式是指令的格式是1字节操作码加字节操作码加1个或个或2个字节的个字节

21、的位移量,位移量将与指令指针相加位移量,位移量将与指令指针相加相对相对 JMP和和CALL指令指令 8位或位或16位带符号的位移量,位带符号的位移量,允许向前或者向后访问存储器允许向前或者向后访问存储器47间接程序存储器寻址间接程序存储器寻址对于对于JMP和和CALL指令,微处理器提供几种间接指令,微处理器提供几种间接程序存储器寻址形式,可以使用任何程序存储器寻址形式,可以使用任何16位寄存器位寄存器(AX,BX,CX,DX,SP,BP,DI或或 SI),任何相对寄任何相对寄存器存器(BP,BX或或SI),或任何带有位移量的相或任何带有位移量的相对寄存器对寄存器48堆栈存储器寻址堆栈存储器寻址

22、堆栈存储器是堆栈存储器是 后进先出后进先出 存储区存储区PUSH和和 POP 指令指令CALL 指令用堆栈保存程序返回地址,而指令用堆栈保存程序返回地址,而 RET 指令从堆栈取出返回地址指令从堆栈取出返回地址堆栈指针堆栈指针(SP或或ESP)和堆栈段寄存器和堆栈段寄存器(SS)49当字数据被压入堆栈时,高当字数据被压入堆栈时,高8位放入由位放入由SP-1寻址寻址的单元,低的单元,低8位放入由位放入由SP-2寻址的单元,然后寻址的单元,然后SP中的值减中的值减2当数据从堆栈弹出时,低当数据从堆栈弹出时,低8位从位从SP寻址的单元移寻址的单元移出。高出。高8位从位从SP+1寻址的单元移出,然后寻

23、址的单元移出,然后SP寄存寄存器加器加2508086-80286 微处理器是微处理器是16位位80386 和更高档型号的微处理器中,任何和更高档型号的微处理器中,任何32位扩位扩展寄存器都可以压入堆栈展寄存器都可以压入堆栈PUSHA和和POPA 指令指令PUSHAD 和和 POPAD 指令指令PUSHF 指令指令PUSHFD 指令指令51 小结小结1.数据寻址方式包含:数据寻址方式包含:_、_、_、_、_、_和和_。在。在80386Pentisum 4微处理器中,增加了称为比例变址微处理器中,增加了称为比例变址寻址的一种新的寻址方式。寻址的一种新的寻址方式。2.程序存储器寻址方式包括:程序存储

24、器寻址方式包括:_、_ 和和_。523.表表3.12列出了用于列出了用于808680286的所有实模式的数据寻的所有实模式的数据寻址方式。注意,址方式。注意,80386和更高档型号的微处理器除了和更高档型号的微处理器除了使用这些模式外,又增加了本章定义的其他许多方式。使用这些模式外,又增加了本章定义的其他许多方式。在保护模式中,段寄存器的功能是寻址包含存储器段在保护模式中,段寄存器的功能是寻址包含存储器段基地址的基地址的_。4.80386Pentium 4微处理器又增加了一些寻址方式,微处理器又增加了一些寻址方式,允许扩展寄存器允许扩展寄存器EAX,EBX,ECX,EDX,EBP,EDI和和E

25、SI寻址寄存器。这些寻址方式以表的形式列出来要占很寻址寄存器。这些寻址方式以表的形式列出来要占很多篇幅,一般而言,这些扩展寄存器的作用域表多篇幅,一般而言,这些扩展寄存器的作用域表3.12中列出的那些寄存器是相同的。例如中列出的那些寄存器是相同的。例如MOV AL,TABLEEBX+2*ECX+10H 是用于是用于 80386Pentium 4 微处理器的有效寻址方式。微处理器的有效寻址方式。535.MOV 指令将指令将_ 内容复制到内容复制到_ 操作数中,操作数中,任何此类指令都不改变源操作数。任何此类指令都不改变源操作数。6.寄存器寻址可以使用任何一个寄存器寻址可以使用任何一个8位寄存器位

26、寄存器(AH,AL,BH,BL,CH,CL,DH或或 DL)或任何一个或任何一个16位寄存位寄存器器(AX,BX,CX,DX,SP,BP,SI或或 DI)。在段寄存。在段寄存器与器与16位寄存器位寄存器/存储单元之间传送数据时,或者存储单元之间传送数据时,或者在在PUSH 及及 POP指令中,也可以用段寄存器指令中,也可以用段寄存器(CS,DS,ES或或 SS)寻址。寻址。80386 Pentium 4微处理器中,微处理器中,扩展寄存器也可以用于寄存器寻址,分别是:扩展寄存器也可以用于寄存器寻址,分别是:EAX,EBX,ECX,EDX,ESP,EBP,EDI和和 ESI。80386和更高档型号

27、的微处理器还可以用和更高档型号的微处理器还可以用FS和和GS段段寄存器。寄存器。547.MOV立即数据指令将直接跟在操作码后面的字节立即数据指令将直接跟在操作码后面的字节或字送到寄存器或存储单元。立即寻址方式操作或字送到寄存器或存储单元。立即寻址方式操作程序中的常数。在程序中的常数。在80386和更高档型号的微处理器和更高档型号的微处理器中,可以将双字立即数装入中,可以将双字立即数装入32位寄存器或存储单位寄存器或存储单元。元。8.汇编语言使用的汇编语言使用的.MODEL语句定义文件的开始和语句定义文件的开始和文件使用的存储模型。如果是文件使用的存储模型。如果是TINY模型,程序只模型,程序只

28、有一个段(代码段)并且汇编为命令有一个段(代码段)并且汇编为命令(.COM)程序、程序、如果使用如果使用SMALL模型,程序使用代码段和数据段模型,程序使用代码段和数据段并且汇编为执行(并且汇编为执行(.EXE)程序。其他模型的规模)程序。其他模型的规模和属性列于附录和属性列于附录A中。中。559.直接寻址以两种形式出现在微处理器中:(直接寻址以两种形式出现在微处理器中:(1)直接寻址;(直接寻址;(2)位移量寻址。两种寻址方式是)位移量寻址。两种寻址方式是等同的,只是直接寻址用于在等同的,只是直接寻址用于在 EAX,AX或或 AL与存储器之间传送数据,而位移量寻址用于在与存储器之间传送数据,

29、而位移量寻址用于在任何寄存器与存储器之间传送数据。直接寻址任何寄存器与存储器之间传送数据。直接寻址需要需要3个字节存储空间,而位移量寻址需要个字节存储空间,而位移量寻址需要4个个字节。在字节。在80386和更高档型号的微处理器中,由和更高档型号的微处理器中,由于寄存器或操作数的超越前缀形式,这些指令于寄存器或操作数的超越前缀形式,这些指令可能还需要增加字节。可能还需要增加字节。5610.寄存器间接寻址允许通过基地址寄存器间接寻址允许通过基地址(BP和和BX)或变或变址寄存器址寄存器(DI和和 SI)指向的存储单元中的数据地指向的存储单元中的数据地址来访问数据。在址来访问数据。在80386和更高

30、档型号的微处理和更高档型号的微处理器中可以用扩展寄存器器中可以用扩展寄存器EAX,EBX,ECX,EDX,EBP,EDI和和 ESI寻址存储器数据。寻址存储器数据。11.基址加变址寻址通常是寻址数组中的数据。这基址加变址寻址通常是寻址数组中的数据。这种方式的存储器地址由基址寄存器、变址寄存种方式的存储器地址由基址寄存器、变址寄存器和器和10H倍的段寄存器的内容相加构成。在倍的段寄存器的内容相加构成。在80386和更高档型号微处理器中,基址寄存器和和更高档型号微处理器中,基址寄存器和变址寄存器可以是除了变址寄存器可以是除了EIP和和ESP以外的任何以外的任何32位寄存器。位寄存器。5712.寄存

31、器相对寻址用基址寄存器或者变址寄存器寄存器相对寻址用基址寄存器或者变址寄存器加位移量去访问存储器中的数据。加位移量去访问存储器中的数据。13.相对基址加变址寻址对于寻址二维存储器数组相对基址加变址寻址对于寻址二维存储器数组很有用。地址由基址寄存器、变址寄存器、相很有用。地址由基址寄存器、变址寄存器、相对偏移量和对偏移量和10H倍的段寄存器的内容相加构成。倍的段寄存器的内容相加构成。5814.比例变址只适用于比例变址只适用于80386 Pentium 4。两个寄存。两个寄存器中的第器中的第2个寄存器(变址寄存器)乘以比例因子个寄存器(变址寄存器)乘以比例因子 2X,4X或或8X,以便寻址存储器数

32、组中的字、双字,以便寻址存储器数组中的字、双字或四字。或四字。MOV AX,EBX+2*ECX 和和 MOV 4*ECX,EDX 就是比例因子寻址指令的例子。就是比例因子寻址指令的例子。15.数据结构是存储一组数据的模板,其中的数据用数据结构是存储一组数据的模板,其中的数据用数组名和字段名来寻址。例如,数组数组名和字段名来寻址。例如,数组 NUMBER中的字段中的字段TEN用用NUMBER.TEN寻址。寻址。5916.直接程序存储器寻址允许直接程序存储器寻址允许JMP和和CALL指令使用指令使用存储器系统中的任何单元。这种寻址方式中,存储器系统中的任何单元。这种寻址方式中,偏移地址和段地址存放

33、在指令中。偏移地址和段地址存放在指令中。17.相对程序存储器寻址允许相对程序存储器寻址允许JMP和和CALL指令向前指令向前或向后转移到当前代码段内或向后转移到当前代码段内32KB范围的位置。范围的位置。在在80386和更高档型号的微处理器中,和更高档型号的微处理器中,32位的位位的位移量允许转移到代码段内移量允许转移到代码段内2GB位移量的任何位移量的任何位置。位置。32位的位移量只能用于保护模式。位的位移量只能用于保护模式。6018.间接程序存储器寻址允许间接程序存储器寻址允许JMP和和CALL指令通过指令通过寄存器或存储单元间接寻址其他区域的程序或子寄存器或存储单元间接寻址其他区域的程序

34、或子程序。程序。19.PUSH和和POP指令在堆栈与寄存器或堆栈与存储指令在堆栈与寄存器或堆栈与存储单元之间传送字数据。为了把立即数放入堆栈,单元之间传送字数据。为了把立即数放入堆栈,用用PUSH立即指令。立即指令。PUSH和和POP在堆栈与寄存在堆栈与寄存器器AX,CX,DX,BX,BP,SP,SI和和DI之间传送数据。之间传送数据。在在80386和更高档型号的微处理器中,扩展寄存和更高档型号的微处理器中,扩展寄存器及扩展的标志也可以在寄存器与堆栈之间进行器及扩展的标志也可以在寄存器与堆栈之间进行传送。如传送。如PUSHFD指令存储指令存储EFLAGS,而,而PSHF指令存储指令存储FLAG

35、S。6120.例例3.15使用了本章中出现的许多寻址方式,这个使用了本章中出现的许多寻址方式,这个例子把例子把0000:0000到到0000:0009单元的内容填充单元的内容填充到到ARRAY1,把,把0到到9填充到填充到ARRAY2,最后将,最后将ARRAY1元素元素2的内容与的内容与ARRAY2元素元素3的内容的内容交换。交换。62习题习题1.下面的下面的MOV指令完成什么操作指令完成什么操作?(a)MOV AX,BX (b)MOV BX,AX (c)MOV BL,CH (d)MOV ESP,EBP (e)MOV AX,CS632.列出寄存器寻址使用的列出寄存器寻址使用的8位寄存器。位寄存

36、器。3.列出寄存器寻址使用的列出寄存器寻址使用的16位寄存器。位寄存器。4.列出列出80386Pentium4微处理器寄存器寻址使用的微处理器寄存器寻址使用的32位寄存器。位寄存器。645.列出由列出由MOV,PUSH,POP寄存器寻址使用的寄存器寻址使用的16位段位段寄存器。寄存器。6.指令指令MOV BL,CX存在什么错误存在什么错误?7.指令指令MOV DS,SS 存在什么错误存在什么错误?658.为下面的每个任务选择指令:为下面的每个任务选择指令:(a)复制复制EBX 到到 EDX (b)复制复制BL到到CL (c)复制复制SI到到BX (d)复制复制DS到到AX (e)复制复制AL到

37、到AH 9.为下面的每个任务选择指令:为下面的每个任务选择指令:(a)将将12H传送到传送到AL中中 (b)将将0CDH传送到传送到AX中中 (c)将将1000H 传送到传送到 SI中中 (d)将将1200A2H传送到传送到EBX中中6610.曾经用哪些特殊符号表示立即数?曾经用哪些特殊符号表示立即数?11.MODEL TINY语句的作用是什么?语句的作用是什么?12.什么样的汇编语言伪指令指明什么样的汇编语言伪指令指明CODE段的开始段的开始?6713.什么是标号什么是标号?14.MOV指令放在语句的什么字段?指令放在语句的什么字段?15.标号可以由哪些字符开始?标号可以由哪些字符开始?68

38、16.EXIT伪指令的作用是什么伪指令的作用是什么?17.MODEL TINY 语句可以被汇编成执行程序吗语句可以被汇编成执行程序吗?18.在在SMALL存储模型中,存储模型中,.STARTUP伪指令完成什么伪指令完成什么任务?任务?6919.什么是位移量?怎样确定什么是位移量?怎样确定MOV 2000H,AL 指令中指令中 的存储器地址?的存储器地址?20.符号符号 指示什么指示什么?7021.假定按实模式操作,假定按实模式操作,DS=0200H,BX=0300H,DI=400H,确定下面每条指令访问的存储器地址:,确定下面每条指令访问的存储器地址:(a)MOV AL,1234H (b)MO

39、V EAX,BX (c)MOV DI,AL7122.指令指令MOV BX,DI 的错误是什么的错误是什么?23.选择一条需要选择一条需要BYTE PTR的指令。的指令。24.选择一条需要选择一条需要WORD PTR的指令。的指令。25.选择一条需要选择一条需要DWORD PTR的指令。的指令。26.说明说明MOV BX,DATA和和MOV BX,OFFSET DATA 指令之间的区别。指令之间的区别。7227.给定给定 DS=1000H,SS=2000H,BP=1000H,DI=0100H.假定按实模式操作,确定下面每条指令寻址假定按实模式操作,确定下面每条指令寻址的存储器地址。的存储器地址。

40、(a)MOV AL,BP+DI (b)MOV CX,DI (c)MOV EDX,BP28.MOV AL,BX SI 指令中有错误吗指令中有错误吗?如果有,请说如果有,请说明它的错误是什么?明它的错误是什么?7329.假定假定DS=1200H,BX=0100H,SI=0250H。假定按实。假定按实模式操作,确定下面每条指令寻址存储器的地址。模式操作,确定下面每条指令寻址存储器的地址。(a)MOV 100H,DL (b)MOV SI+100H,EAX (c)MOV DL,BX+100H7430.假定假定DS=1100H,BX=0200H,LIST=0250H,SI=0500H。假定按实模式操作,确

41、定下面每条指令寻。假定按实模式操作,确定下面每条指令寻址存储器的地址。址存储器的地址。(a)MOV LIST SI,EDX (b)MOV CL,LIST BX+SI (c)MOV CH,BX+SI7531.假定假定DS=1300H,SS=1400H,BP=1500H,and SI=0100H。假定按实模式操作,确定下面每条指令寻。假定按实模式操作,确定下面每条指令寻址存储器的地址。址存储器的地址。(a)MOV EAX,BP+200H (b)MOV AL,BP+SI-200H (c)MOV AL,SI-0100H32.哪些基址寄存器可以寻址堆栈段的数据哪些基址寄存器可以寻址堆栈段的数据?7633

42、.给定给定EAX=00001000H,EBX=00002000H,DS=0010H。假定工作在实模式,确定下面每条指令所。假定工作在实模式,确定下面每条指令所访问的地址。访问的地址。(a)MOV ECX,EAX+EBX (b)MOV EAX+2*EBX,CL (c)MOV DH,EBX+4*EAX+1000H7734.给出有给出有5个字段的数据结构,字段名是个字段的数据结构,字段名是F1,F2,F3,F4和和F5,结构名是,结构名是FIELDS。35.在程序中怎样寻址习题在程序中怎样寻址习题34中数据结构的中数据结构的F3字段。字段。36.列出全部三种程序存储器寻址方式。列出全部三种程序存储器

43、寻址方式。37.存放远直接转移指令要用多少存储器字节?每个字存放远直接转移指令要用多少存储器字节?每个字节存储什么节存储什么?7838.段间转移和段内转移之间的区别是什么段间转移和段内转移之间的区别是什么?39.如果近转移指令使用如果近转移指令使用16位有符号的位移量,说明怎位有符号的位移量,说明怎样转移到当前代码段内的某一存储单元样转移到当前代码段内的某一存储单元?40.80386和更高档型号的微处理器用和更高档型号的微处理器用 _ 位的位移位的位移量转移到量转移到4GB代码段内的任何位置。代码段内的任何位置。41.什么是远转移什么是远转移?7942.如果如果JMP指令存储在当前代码段内的指

44、令存储在当前代码段内的100H地址,要地址,要转移到当前代码段内的转移到当前代码段内的200H地址,不能用地址,不能用 _转移转移43.如果如果JMP THERE指令存储在存储器地址指令存储在存储器地址10000H处,处,并且并且THERE地址是下面的一些值,指出地址是下面的一些值,指出JMP指令汇指令汇编为哪类(短、近或远)转移?编为哪类(短、近或远)转移?(a)10020H (b)11000H (c)30000H8044.构造一条构造一条JMP指令,转移到由指令,转移到由BX寄存器指示的地址。寄存器指示的地址。45.选择选择JMP指令转移到存储器地址表中的某个地址。指令转移到存储器地址表中的某个地址。假定是近假定是近JMP指令。指令。46.用用PUSH指令可以把多少个字节存放在堆栈中指令可以把多少个字节存放在堆栈中?47.解释解释PUSH DI指令是怎样工作的?指令是怎样工作的?8148.PUSHA指令将哪些寄存器放入堆栈中指令将哪些寄存器放入堆栈中?按什么顺序按什么顺序存放的存放的?49.PUSHAD 指令完成什么工作指令完成什么工作?50.在在Pentium4微处理器中,哪些指令把微处理器中,哪些指令把EFLAGS 存放存放在堆栈中在堆栈中?

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

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

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


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

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


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