微机原理寻址方式总结

基本格式:操作码  [目的操作数据][源操作数]

#“[]”表示可有可无

零操作数指令:操作码               (隐含操作对象)

单操作数指令:操作码  操作数

双操作数指令:操作码 操作数 操作数

多操作数指令:三个操作数及以上


A.立即寻址:

      #也就是立即数寻找,且立即数只在源操作数。

   例:MOV AX,1200H


B.寄存器寻址:

     #参加操作的操作数在cpu的通用寄存器中

  例:MOV AX,BX


C.存储器寻址:

          #指令操作对象在内存中

          #操作数据用[偏移地址]表示,下面提到的偏移地址都是写在[]内,表示此偏移地址所指向的内存中的数据

          #存储器操作数的字长本身不确定,其字长取决于另一个寄存器的操作数,

             或通过其他方式确定字长,如(MUL BYTE PTR[BX])

     1.直接寻址:指令中直接给出操作数的偏移地址

               例:MOV AX [1200H]

                        操作数默认为数据段,但允许段重设:

                                                        MOV AX,ES:[1200H]       #重设到代码段

     2.寄存器间接寻址

           #有路由器间接给出地址

           #仅有4个通用寄存器可用于存放数据的偏移地址:BX,BP,SI,BI

                       其中:BX,SI,DI———默认数据段

                                  BP—————默认堆栈段

           例:

                MOV BX,1200H

                MOV  AX,[BX]


     3.   寄存器相对寻址:

                   #操作数的偏移地址为寄存器内容加上一个位移量

                   #一般用于一维数组的操作

               例:MOV AX,[BX+DATA]

       4.基址变址寻址:

                     #操作数的偏移地址为:一个基址寄存器内容+一个变址寄存器内容

                      #段地址由基址寄存器决定

                                BX--------数据段

                                 BP--------堆栈段

                  例:MOV SI,1100H

                         MOV BX,SI

                         MOV AX,[SI+BX]                    #偏移地址在数据段   

        5.基址,变址,相对寻址

                 #偏移地址=基址寄存器 + 变址寄存器 + 位移量

                 #段地址由基址寄存器决定

                 #主要用于二维表

              例:

                      MOV DI,1100H

                      MOV BP,DI

                      MOV AL,[BP][DI][S]


D.隐含寻址方式:

         #指令中隐含一个或两个操作数的地址,即操作数在默认地址中

   例:    MUL BL


总结:通过以上总结:寻址方式可以分成立即数寻址,寄存器寻址,存储器寻址,隐含寻址,

           其中存储器寻址包括:直接寻址,寄存器间接寻址,相对寻址,基址变址寻址,基址变址相对寻址。

            所以总共就有8大寻址方式




           









你可能感兴趣的:(微机原理寻址方式总结)