8051寻址方式总结

8051单片机共有7种寻址方式。寻址方式是指令中确定操作数的形式,用来确定操作数所处的存储空间。

1.立即寻址:在指令中直接给出操作数 
MOV A, #80H 8位操作数 
MOV A, #2000H 16位操作数

2.直接寻址:指令中直接给出操作数地址 
(1)SFR,这一存储空间只能使用直接寻址 
MOV PSW, #50H 
(2)内部数据RAM,这一存储空间可以使用直接寻址和寄存器间接寻址 
MOV A, 30H

3.寄存器寻址:以通用寄存器的内容作为操作数(通用寄存器包括A, B, DPTR, R0~R7) 
INC DPTR 
注意:A、B既是通用寄存器,也是SFR(直接寻址)

4.寄存器间接寻址:以寄存器中的内容作为操作数的地址 
能够用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP 
区分内部数据RAM寻址和外部数据RAM寻址:外部数据RAM寻址指令上采用MOVX
对内部数据RAM寻址:使用8位的R0或者R1即可 
MOV @R0, A 
对外部数据RAM寻址:使用P2端口提供高8位地址,使用R0或者R1提供低8位地址;或者使用16位的DPTR提供地址 
MOVX A, @R1 
MOVX @DPTR, A

5.变址寻址:以基址寄存器PC或者DPTR与变址寄存器A中的内容之和作为操作数的地址 
变址寻址只能对程序存储器中的数据进行寻址,由于程序存储器是只读的,因此变址寻址只有读操作,指令上采用MOVC 
MOVC A, @A+DPTR 
MOVC A, @A+PC

6.相对寻址:用于修改PC的值,使得PC加上指令中给出的一字节的偏移量 
由于转移指令有两字节和三字节这两种形式,因此偏移量的范围分别为-126~+129和-125~+130 
SJMP 80H

7.位寻址:以位地址中的内容为操作数 
SETB 20H 
MOV 32H, C

总结一下各种寻址方式的使用场合: 
立即寻址:常数 
直接寻址:SFR和内部数据RAM 
寄存器寻址:寄存器区 
寄存器间接寻址:内部数据RAM和外部数据RAM 
变址寻址:程序存储器 
相对寻址:PC 
位寻址:位地址区

时间: 2024-10-13 13:54:15

8051寻址方式总结的相关文章

项目感悟 基于8051的数据采集系统-总纲

博文的内容是感想,是我在做一个小作品的时候记录下来的感想.现在将其整理好,分享出来. 我写博文的纲领是隐恶扬善,所以一些不好的事情,闭口不说.但别人对我的好,要尽力写出来. 虽然我不是大牛,感想有时显得有些幼稚,但是我依然希望你能通过我的感想得到一些启发,少走一些弯路. 博文的宗旨是:隐恶扬善. 作品名称:基于8051的数据采集系统 简介:下位机用 8051新手开发板,传感器采集需要的数据,通过USB通信接口发送给上位机,上位机的系统是win 7,用C#的Winform写的串口调试程序接收数据.

汇编--寻址方式

1.立即寻址方式 mov AL,5 (AL)=05H mov AX,3064H (AX)=3064H mov EAX,123456H (EAX)=123456H 2.寄存器寻址方式 mov AX,BX (AX)=3064H (BX)=1234H (AX)=1234H MOV EXC,EDX 3.直接寻址方式 mov AX,[2000H] mov AX,2000H ;这两者等效 4.寄存器间接寻址方式 mov AX,[BX] 默认DS:[BX] ;也可以制定其他段跨越前缀来取得其他段中的数据 mo

IAR Embedded Workbench for 8051 version 9.20 嵌入式系统+S.T.A. DATA 3Muri Pro v10.0.2.1结构分析软件

IAR Embedded Workbench for 8051 version 9.20 嵌入式系统软件IAR Embedded Workbench for 8051 version 9.20是一款嵌入式系统软件,主要用于单片机开发,拥有 是一套高度精密且使用方便的嵌入式应用编程开发工具.该集成开发环境中包含了IAR的C/C++编译器. 汇编工具.链接器.库管理器.文本编辑器.工程管理器和C-SPY调试器. 8051技术在低功耗.物联网传感器等方面已经变得非常流行.为了充分利用这些设备,开发人员

8051汇编命令记录。

15年初出了个差,到现在才回到园子里……工作忙一方面,另外确实好久没搞这些东西了. 原本想在8051单片机上搞个分时操作系统,所以看了下8051汇编下代码,总结记录如下: LJMP C:0149 //长跳转到0x0149地址开始执行命令,这条命令位于0x0000地址,是第一条命令.MOV R0,#0x7F //把立即数赋值给R0寄存器CLR A //目前看是清空寄存器AMOV @R0,A //把R0作为地址,对其内容赋值为0.DJNZ R0,C:014C //如果R0减1后不为0,就跳转到014

8086 寻址方式

(段超越前缀用来改变默认的段寻址,通常内址寻址是数据段或者堆栈段. 但是可以在指令前加上段超越前缀,来访问其他段的数据.比如 di,si,bx 的段默认位是 ds,bp 默认为 ss.) 1.立即寻址方式: 操作数包含在指令中,跟在操作码后存在在代码段. 立即数寻址方式主要用来给寄存器和存储单元赋值,因此这种寻址方式不能用于单操作数指令: 若用于双操作数指令,也只能用于源操作数字段,不能用于目的操作数字段. 比如 "mov ax, 1111H". 2.寄存器寻址方式: 不需要通过访问存

组成原理之指令寻址方式和操作数寻址方式图示

指令包括操作码和操作数两部分.指令的寻址方式即指令如何寻找下一条指令的:分为顺序寻址方式和跳跃寻址方式,其中顺序寻址方式是根据PC给出下一条要执行指令的地址,跳跃寻址方式是从执行指令中获取下一条指令的地址,之后更新PC数据,找到下一条要执行的指令. 顺序寻址方式: 如图 程序计数器+1可得到下一条指令 如图   跳跃寻址方式 如图 由指令3可以知道向下条指令为6,程序计数器的值变为6 如图 下面介绍操作数寻址方式,前面提到指令有操作码和操作数组成,一条指令中的操作数可以通过操作数地址寻找.寻找的

汇编语言之寻址方式

与数据有关的寻址方式 下面以数据传送指令MOV为例来说明.其汇编格式为:MOV  目标, 源 1.立即寻址方式(immediate addressing) 操作数直接包含在指令中,紧跟在操作码之后的寻址方式称为立即寻址方式,把该操作数称为立即数. MOV  AL, 6                       ;(AL)=6 MOV  AX, 3064H             ;(AX)=3064 2.寄存器寻址方式(register addressing) 操作数直接包含在寄存器中,由指令

8051指令周期表(转)

8051指令周期表 转载:http://wenku.baidu.com/view/483ccdc75fbfc77da269b1d7.html?re=view

ARM中的寻址方式

ARM处理器支持9中不同的寻址方式. 1.移位寄存器寻址: 有5种移位方式: LSL:逻辑左移.最低位用0补充,且移出的最后一位存放在cpsr中的C位中. LSR:逻辑右移.最高位用0补充,且移出的最后一位存放在cpsr中的C位中. ASR:算术右移.最高位用符号位补充,且移出的最后一位存放在cpsr中的C位中. ROR:循环右移(不涉及到CPSR中的C位的循环右移).且移出的最后一位存放在cpsr中的C位. RRX:扩展循环右移(带有C位的右移).只循环右移一位,且最高位用cpsr中的C位补充