汇编语言的寻址方式(针对16位寻址)

时间:2022-11-26 01:19:33

寻址方式

  • 立即寻址 mov ax,3064H(操作数放在指令的下一个单元中)
  • 寄存器寻址 mov ax,bx,(操作数放在寄存器中)
  • 前两种地址都是基于本代码段的
  • 直接寻址 mov ax,[2000H],(操作数放在内存中,指令中直接给出内存地址)(其实是偏移地址,物理地址还应该加上段地址)
  • 寄存器间接寻址 mov bx,[di] (操作数的地址放在寄存器中)
    若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS;
    若有效地址用BP来指定,则其缺省的段寄存器为SS(即:堆栈段)。
    该寻址方式物理地址的计算方法如下:
    BX
    物理地址PA=16×DS + SI
    DI

    物理地址PA=16×SS+ BP
  • 寄存器相对寻址 mov ax,[si+100h]
    操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容和指令中的8位/16位偏移量之和。
    (传送的是地址,最后分配的还是内容)

  • 基址变址寻址方式 MOV AX,[BX][SI] 取基址和变址的内容之和的地址的内容传送给它(不要忘记段地址)

  • 相对基址变址寻址方式 MOV AX, [BX+SI+200H]
  • 相对比例的没有16位寻址,所以不赘述