汇编语言之寻址方式

目录

 

寻址方式

立即数寻址方式

寄存器寻址方式

存储器寻址方式

转移地址寻址


参照自:https://www.cnblogs.com/exRunner/p/7567334.html

寻址方式

立即数寻址方式

立即数(imm)可以是8位数值,也可以16位数值。

立即数寻址方式常用来给寄存器赋值

MOV AX, 1234H

寄存器寻址方式

操作数存放在CPU的内部寄存器中,

通用寄存器:AX,BX,CX,DX,

SI,DI,BP,SP

段寄存器:CS,DS,SS,ES

MOV BX, AX

存储器寻址方式

    直接寻址方式:有效地址在指令中直接给出。默认段在DS段中。可以使用段前缀改变。

    mov ax, [2000H]

    mov ax, ES:[2000H]

 

    寄存器间接寻址:寄存器内容与有符号8位或16位位移之和。寄存器可以是BX,BP,SI,DI

    EA = BX/BP/SI/DI+8/16位位移。

    段地址BX/SI/DI默认是DS,BP寄存器默认是SS。

    mov ax, [DI+06H]

    mov bx, [BP+06H]

 

    基址变址寻址:

    mov ax, [BX+SI]

    mov ax, [BP+DI]

    mov ax, DS:[BP+DI]

 

    相对基址变址寻址:

    EA = BX/BP+SI/DI+8/16

    BX基址寄存器默认DS BP基址对应SS。

mov ax, [BX][SI]
    ;相当于mov ax, [BX+SI]
mov ax, COUNT[SI]
    ;相当于mov ax, [SI+COUNT]
mov ax, WNSUM[BX][SI]
    ;相当于mov ax, WNSUM[BX+SI]
    ;相当于mov ax, [BX+SI+WNSUM]

 

转移地址寻址

1、段内直接寻址。

CS不变,只变IP。

JMP SHORT QUEST    ;偏移8位 -128~127

JMP NEAR PTR QUEST   ;偏移量 -32768~+32767

2、段内间接寻址

设(DS)=2000H, (BX)=1256H, (SI)=528FH
位移量=20A1H, (232F7H)=3280H, (264E5H)=2450H

 JMP  BX         ;(IP)=1256H
 JMP  TABLE[BX]  ;(IP)=3280H
 JMP  [BX][SI]   ;(IP)=(264E5H)=2450H

 3、段间直接寻址:

不在同一段内,同时改变CS和IP。段间直接转移,指令中直接给出了新的段地址CS和偏移地址IP。偏移地址(IP)在低地址,段地址在高地址。
指令格式:
JMP FAR PTR NEXTROUTINT

4、段间间接寻址:

新的段地址(CS)和偏移地址(IP)在存储器的连续4个字节单元中(段地址在高地址中,偏移地址在低地址中)。存储器的地址由指令中给出的各种寻址方式(立即寻址方式和寄存器寻址方式除外)求得。其段地址隐含为数据段。
指令格式:
JMP DWORD PTR[INTERS+BX]

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值