8086寻址方式

寻址方式是指令中用于说明操作数所在地址的方法

1.立即寻址

          MOV   AX,34EAH                   ;将十六进制数34EAH放入AX

          MOV   BL,20                           ;将十进制数20放入BL

2.寄存器寻址

          MOV   AX,BX                          ;将寄存器BX中的内容放入AX

3.直接寻址

          MOV   AX,ES:[3E4CH]             ;将段地址为ES、偏移地址为3E4CH中的内容放入AX,默认段地址为DS

4.寄存器间接寻址

          MOV   SI,34EAH          

          MOV   AX,[SI]                         ;将段地址为DS、偏移地址为SI中的内容即34EAH中的内容放入AX

                                                          SI、DI、BX默认对应的段地址为DS

                                                          BP、SP的默认段地址为SS

                                                          AX、CX、DX一般不能在寄存器间接寻址中使用

5.基址/变址寻址(也叫相对寻址):适合以一维表格存储在内存中的操作数

          使用寄存器BX、BP的叫基址寻址

          MOV   AX,36H[BX]               ;将段地址为DS、偏移地址为36H+BX中的内容放入AX

          使用寄存器BP、SP的叫变址寻址

          MOV   AX,-20[BP]                    ; 将段地址为SS、偏移地址为-20+BP中的内容放入AX

6.基址加变址寻址:       适合以二维表格存储在内存中的操作数

          MOV   AX,8AH[BX][SI]           ;将段地址为DS,偏移地址为8AH+BX+SI中的内容放入AX

7.串寻址:    仅在串指令中使用

          规定源操作数的逻辑地址为DS:SI,目的操作数的逻辑地址为ES:DI,执行串指令时根据标志位DF,SI和DI自动调整

8.I/O端口寻址

          IN  AX,25H                             ;将端口地址为25H的数据输入到AX中

          MOV  DX,3E4H                        ;当端口地址为十六位时要先将端口地址送入DX中

          OUT   DX,AL                            ;将AL的数据送入DX指向的端口(端口地址为3E4H的端口)


          MOV   AX,[SI]          

猜你喜欢

转载自blog.csdn.net/qq_36488756/article/details/80685054