linux 汇编 变址寻址,汇编--寻址方式(示例代码)

1、立即寻址方式

mov AL,5(AL)=05HmovAX,3064H   (AX)=3064Hmov EAX,123456H  (EAX)=123456H

2、寄存器寻址方式

movAX,BX (AX)=3064H (BX)=1234H (AX)=1234HMOV EXC,EDX

3、直接寻址方式

mov AX,[2000H] mov AX,2000H ;这两者等效

4、寄存器间接寻址方式

mov AX,[BX] 默认DS:[BX];也可以制定其他段跨越前缀来取得其他段中的数据

mov AX,ES:[BX]

5、寄存器相对寻址方式(直接变址寻址方式)

mov AX,COUNT[SI] mov AX,[COUNT+SI]

6、基址变址寻址方式

mov AX,[BX][DI]  MOV AX,[BX+DI] mov AX,[BX][BP] 是错误的。

7、相对基址变址寻址方式

mov AX,MASK[BX][SI]

mov AX,MASK[BX+SI]

MOV AX,[MASK+BX+SI]

8、比例变址寻址方式

MOV EAX,COUNT[ESI*4]

9、基址比例变址寻址方式

mov ECX,[EAX][EDX*8]

10、相对基址比例变址寻址方式

mov EAX,TABLE[EBP][EDI*4]

JMP

1、段内直接寻址

2、段内间接寻址

jmp BX ;(IP)=BX

jmp TABLE[BX]   ;(ip) = 16d*(ds) + (BX) +位移量

WORD PTR为操作符。指定地址是字

3、段间直接寻址

4、段间间接寻址

段内,段间区别是,段内修改(IP)的值,段间修改(CS:IP)的值

BP 是寄存器,它的用途有点特殊,是和堆栈指针SP联合使用的,作为SP校准使用的,只有在寻找堆栈里的数据和使用个别的寻址方式时候才能用到

比如说,堆栈中压入了很多数据或者地址,你肯定想通过SP来访问这些数据或者地址,但SP是要指向栈顶的,是不能随便乱改的,这时候你就需要使用BP,把SP的值传递给BP,通过BP来寻找堆栈里数据或者地址.

SI源变址寄存器,DI目地变址寄存器,既然是变址寄存器,那么他们肯定是在某个地址的基础上进行偏移变化,由此我们就得出了需要基址寄存器。

[SI]是寄存器间接寻址,它是指SI中地址的内容如

mov si,2000

mov ax,[si]    //将2000地址中的内容赋给ax而SI,寄存器寻址方式

SI 就是指SI本身的内容

mov si,2000

mov ax,si     //将SI中的内容2000赋给ax

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值