您的位置:首页 > 其它

寻址方式——汇编学习笔记(三)

2013-05-30 14:18 253 查看
操作数寻址方式有多种,其目的是缩短指令长度,扩大寻址空间,提高编程的灵活性。最基本的寻址方式有如下几种





(1)隐含寻址

   

      在指令中并不直接给出操作数的地址,而是隐含着操作数的地址。

        例:ADD B ;另一个操作数的地址即隐含为累加器AC

 (2)立即寻址

    

     指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即

   寻址。

 

     优点:不需操作数地址寻址,速度快。

      例: ADD B,#3 ;#3为立即数

 (3)直接寻址

  

     直接寻址是一种基本的寻址方式,其特点是:在指令格式的地址字段中直接指出操作

   数在内存的地址D,即有效地址等于形式地址。 E=D

     例:INC 3A00H

     这是一条加1指令,指令有效地址E=3A00H

            


 (4)间接寻址

     间接寻址是相对于直接寻址而言的,在间接寻址的情况下,指令地址字段中的形式地

   址D不是操作数的有效地址,而是操作数地址的指示器,即D单元的内容才是操作数的有效

   地址。 E=(D)

     优点:提供编程的灵活性;

     缺点:增加了访存时间,速度慢。

      例: INC (3A00H)

        这是一条加1指令,指令有效地址E=(3A00H)=4000H

                  


 (5)寄存器寻址方式和寄存器间接寻址方式

    · 寄存器寻址方式---当操作数不放在内存中,而是存放在CPU的通用寄存器中时,可采

               用寄存器寻址方式。

               优点:用寄存器暂存操作数,无需访存,速度快。

                  例:INC R1

                    这是一条加1指令,指令有效地址E = R1

           


    · 寄存器间接寻址方式---指令中的寄存器内容不是操作数,而是操作数的地址,该地

                 址指明的操作数应在内存中。E=(Ri)

                  例:INC (R1)

                    这是一条加1指令,指令有效地址E=(R1)=3A00H

                 


 (6)相对寻址

      把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。  

           E=(PC)± D

      优点:相对于当前指令地址进行浮动。

       例: INC [PC+200H]

           这是一条加1指令,指令有效地址E=(PC)+200H=2200H



            


 (7)基址寻址方式

      将CPU中基址寄存器Bx的内容加上指令格式中的形式地址而形成操作数的有效地址。

           E=(Bx)± D

       如:INC [Bx+300H]

          这是一条加1指令,指令有效地址E=(Bx)+300H=0380H

            


 (8) 变址寻址方式

      把CPU中某个变值寄存器Rx的内容与偏移量D相加来形成操作数的有效地址。

           E=(Rx)± D

      如:INC [Rx+300H]

         这是一条加1指令,指令有效地址E=(Rx)+300H=0380H



            

 

      ☆ 变址寻址和基址寻址寻址方法十分类似,但用途不同:

         · 变址寻址:主要便于数组访问

         · 基址寻址:可扩大寻址范围,可实现程序浮动。

 (9) 块寻址方式

    实现数据块的传送。

    · 指示数据块长度的方法:

       ① 指令中划出字段给出块长度;

       ② 指令中划出字段指出块的首地址、末地址;

        ③ 由块结束字符指出数据块长度。

 (10) 段寻址方式

  

    Intel 8086 CPU中采用了段寻址方式(基址寻址的特例)。

    由16位段寄存器和16位偏移量产生20位物理地址,示意图见教科书P138图4.4。

(11)复合寻址方式

    --多种寻址方式的组合

    例1:相对、间址寻址方式

        INC [(PC+100H)]

          这是一条加1指令,指令有效地址:E=((PC)+100H)=2000H

             


    例2:间址、变址寻址方式

        INC [(Rx)+(100H)]

          这是一条加1指令,指令有效地址:E=(Rx)+(100H)=1060H



             
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: