汇编各寄存器作用

先来看寄存器相对寻址方式:

操作数的有效地址是一个寄存器的内容和指令中给定的一个位移量(disp)之和。对于16位寻址,这个寄存器只能是基址寄存器BX、BP或变址寄存器SI、DI;对于32位寻址,允许使用任何32位通用寄存器。位移量可以是8位、16位、32位(只适用于32位寻址情况)的带符号数。这种寻址方式常用在访问数组中的数据。

有效地址EA=(基址<或变址>寄存器)+disp

若指令中使用的是BX、SI、DI、EAX、EBX、ECX、EDX、ESI、EDI,则默认操作数在数据段,即它们默认与DS段寄存器配合;若使用的是BP、EBP、ESP,则默认操作数在堆栈段,即它们默认与SS段寄存器配合。这两种情况都允许使用段超越前缀。

关于BP寄存器:

MOV AX,[BP]就是把BP作为偏移地址,SS作为段所寻到的内存设为AX。如果不用[BP]而用[SP],就是把SP作为偏移。使用BP的理由是SP会随着PUSH,POP而改变,而BP却不变,可用于访问函数参数(请了解过程间传递参数的3种方式)。

 

注:上图来自张雪兰《Intel 80X86/Pentium汇编语言程序设计》(第3版)

转载于:https://www.cnblogs.com/cloud2rain/archive/2013/04/26/3045172.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值