您的位置:首页 > 其它

8051(2) -- 寻址方式

2016-11-14 22:11 435 查看
1,立即数寻址

例如:MOV A, #30H ;

立即数寻址的特点是,数据不是来自于数据区。

2,直接寻址

例如:MOV A, 30H;

直接寻址的数据来自于数据区,指令的参数是数据区地址。值得注意的是,立即寻址既可以是目的的,也可以是源的。即,立即寻址指令既可以是 MOV A, 30H; 也可以是 MOV 30H, A; 甚至还可以是 MOV 30H, 40H;

3,寄存器寻址

这里的“寄存器”指的是Bank Register。

例如:MOV R0, #30H;

4,寄存器间接寻址

这种寻址方式,寄存器里存储的是数据在数据区的地址。8052有一段数据空间称为IDATA,该段数据空间的地址范围是80~FF。若使用直接寻址,会访问到SFR区,因此应使用寄存器简介寻址访问该段数据。

例如:MOV @R0, #30H;

5,变址寻址

该寻址方式用于访问16-bit address bus连接的模块,即ROM、外部存储区。变址寻址确定目标地址的方法是:变址地址+基地址。其中ACC用作变址地址,PC或者DPTR作为基地址。

访问ROM区时,使用MOVC;访问外部存储区时,使用MOVX。

例如:MOVC A, @A+PC;

6,相对寻址

该寻址与变址寻址有些类似,不同之处在于,基地址为PC,跳转目的地由指令参数决定。

例如:SJMP 30H;

有一点需要注意,该指令的参数会被当作有符号数处理,因此指令的跳转范围是前后127 Bytes。指令执行完之后,新地址会被装载入PC。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: