三级PC技术寻址方式的复习_第1页
三级PC技术寻址方式的复习_第2页
三级PC技术寻址方式的复习_第3页
三级PC技术寻址方式的复习_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、级PC技术寻址方式的复习(从上可知汇编语言在三级 PC技术考试中的重要性。熟悉并灵活地应用机器所采用的各种寻址方式,对汇编语言程序设计是至关重要的。指令系统常常要用到寻址方式,主要 是要弄懂具体各条指令的源操作数和目的操作数放在什么地方,也就是操作数的寻址方式。在具体应用编程时,如果弄不懂寻址方式就无法下手。可以说寻址方式是学习汇编这门低 级语言的入场券,但寻址方式往往也是学习过程中的瓶颈问题。F面和大家谈谈如何掌握 80X86系列微处理器(以Intel8086/8088 为例)的寻址方 式。在学习Intel8086/8088 微处理器中寻址方式时,涉及的寻址概念有七个:寄存器寻 址、立即寻址

2、、直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基 址加变址寻址。其中寄存器寻址、立即寻址、直接寻址相对来说好理解,而寄存器间接寻 址、寄存器相对寻址、基址加变址寻址、相对基址加变址寻址这四种寻址方式之间有许多 密切联系之处,极其容易混淆。如何找出它们之间的区别和联系,从而形成正确的概念呢?我们知道,分析、比较与综合是思维的基本过程,也是重要的逻辑思维方法。根据汇 编抽象的特点,在进行概念学习时,借助比较的方法提高我们的辨析能力,最后综合应用PC技术的考题以帮所学到的概念来编程解决实际问题。F面应用比较分析法来谈谈这七种寻址方式的学习,并结合三级助大家理解。、寄存器寻址指令所指

3、明的寄存器就是操作数的存放地址。汇编格式:R( R是寄存器名)功能:寄存器R的内容是操作数。寄存器寻址的寻址方式如右图所示:对寄存器寻址方式,我们要牢牢掌握操作数存放在指令规定的寄存器中,不需访问内 存,工作效率高。对于 16位操作数,寄存器可以是 AX BX CX、DX SI、DI、SP或BP;而对8位操作数,寄存器可以是 AH AL BH BL CH CL DH或DL。例 1.MOVAX,BX执行过程如下图所示:分析:源操作数 BX 和目的操作数 AX 都是寄存器寻址。执行前:( AX)=8A9DH(BX)=1234H执行:(BX f AX执行后:( AX)=1234H( BX)= 1 2

4、34H由于寄存器是CPU的一部分,因此采用寄存器寻址方式可以提高工作效率。特别是累 加器AX若用它存放运算结果,则指令的执行时间要短些。对于那些需要经常存取的操作 数,采用寄存器寻址方式较为合适。在直接寻址方式中,操作数的偏移地址(EA)是指令的一部分,它与操作码一起存放PA)在代码段中,而操作数可以存放在数据段,也可以存放在其他段。操作数的物理地址( 由其所在段的段寄存器内容左移 4位与指令中给出的偏移地址(EA)相加形成。汇编格式:含有变量的地址表达式或段寄存器名: EA功能:指令下一字单元的内容是操作数的偏移地址EA。PA=(段寄存器)X 10H+EA直接寻址的寻址方式如图所示:这种寻址

5、方式和前两种的的区别就是:指令执行时需要再存取存储器,也就是存取操 作数时需要访问内存,而前两种寻址方式存取操作数时不需要访问内存。例:? XXXX 4三级PC考题?若有BUFDW/12、3、4,则可将数据02H取到AL寄存器中的指令是A) MOVA,L BYTEPTRBUF+1B)MOVA,L BYTEPTRBUF+2C)MOVA,L BYTEPTRBUF+3D)MOVA,L BUF2答案:分析:根据数据定义伪指令 BUFDW、1 2、3、4 画出内存分配示意图,在存储单元相应位置标出变量名和 EA答案D中目的操作数 AL的类型为字节,而源操作数BUF2前无BYTEPTR则BUF2类型为字,

6、两个操作数的类型不一致,指令是错误的,因此答案排除。变量BUF的EA为0,数据02H在内存中的EA为2。答案ABC中指令的源操作数都 是直接寻址,而只有BUF+2的EA为2,所以选B4 寄存器间接寻址EA在指令指寄存器间接寻址得到的操作数存放在内存储器中,而操作数的偏移地址明的寄存器中,即寄存器的内容为操作数的偏移地址EA。汇编格式:RR( Register寄存器的简写,只能是 SI,DI,BX BP其中之一)功能:R的内容为操作数的偏移地址 EA即操作数的有效地 EA存放在基址寄存器(BX或 BP或变址寄存器( DI 或 SI )中:EA=R用R作间接寻址寄存器时。寄存器间接寻址的寻址方式如

7、图所示:若用寄存器SI,DI,BX间接寻址,则操作数在当前数据段中。PA= ( DS X 10H+EA若用寄存器BP间接寻址,则操作数在当前堆栈段中。PA= ( SS)X 10H+EA寄存器间接寻址和寄存器寻址在汇编格式上相比较多了个中括号,也就是因为这样, 他们的寻址方式截然不同,寄存器寻址不需访问内存,操作数就在指令指定的寄存器中,而寄存器间接寻址需要访问内存,操作数的偏移地址EA就是寄存器的内容。例:? XXXX 8三级PC考题?根据下面的指令和伪指令序列,AX寄存器的内容是多少?TABDW1,2,3,4,5,6ENTRYEQU3MOVBX,OFFSETTABADDBX,ENTRYMOV

8、AX,WORDPTRBXA) 0300H( B) 0003H( C) 0506H(D)0403H答案: A内存分配示意图:分析:根据数据定义伪指令 BUFDW、1 2、 3、4 画出内存分配示意图,在存储单元相应 位置标出变量名和 EA OFFSETTA得到的是变量 TAB的EA。TAB这个变量的EA为0则MOVB, OFFSETTA这个指令的源操作数 OFFSETTA是立即寻址,(BX)=0。ENTRY为符号常量,指令 ADDBX ENTRY的源操作数 ENTRY也是立即寻址(BX +3 BX ( BX) =3。MOVA,WORDPTRBX令中源操作数BX是寄存器间接寻址,前面的 wordp

9、TR明内存操作数为字类型。指令执行后把偏移地址为3的字单元的内容传给 AX所以答案选A。EA是指令指X?, ? XR? )X?R? (或 ? R在寄存器相对寻址方式中,操作数在内存储器中,而操作数的偏移地址 明的寄存器的内容与指令中给出的位移量相加之和。汇编格式:功能:R的内容与X相加之和为操作数的偏移地址 EA(Register寄存器的简写,只能是 SI, DI, BX BP其中之一。)表示位移量,其值是用 8 位或 16 位二进制补码表示的有符号数。X,在计算EA时寄存器相对寻址就要多加上位移量X。寄存器相对寻址和寄存器间接寻址在汇编格式相比较就是多了位移量EA = ?R?+ X寄存器相对寻址的寻址方式如图所示。若用寄存器SI , DI, BX变址寻址,则操作数在当前数据段中。PA =( DS)X10H EA若用寄存器BP变址寻址,则操作数在当前堆栈段中。PA =( SS)X 10H EA例: MOVA?l?BX5?它是BX的内容加上8位位移量05H作为操作数存放的单元的偏移地址。如果使用BP,则隐含地表示操作

温馨提示

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

评论

0/150

提交评论