当前位置: > 财经>正文

8051单片机指令系统有哪几种寻址方式? 外汇价值形式有哪几种形式表示出来的意思

2023-09-10 11:45:43 互联网 未知 财经

8051单片机指令系统有哪几种寻址方式?

8051单片机指令系统有哪几种寻址方式?

寄存器寻址、直接寻址、立即寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。 寄存器寻址:以通用寄存器的内容为操作数的寻址方式。通用寄存器为A、B 、DPTR以及R0~R7 。 例:

CLR A ;A←0INC DPTR ;DPTR←DPTR+1 ADDR5,# 20H ;R5←#20H+R5。

在8051单片机中,没有专门的通用硬件寄存器,而是把内部数据RAM区中00H1FH地址单元作为工作寄存器使用,共有32个地质单元,分成四组,每组8个工作寄存器,命名为R0R7,每次使用其一,当以R0~R7来表示操作数时,就属于寄存器寻址方式。例如:

MOV A,R0ADD A,R0

一条指令由操作码和操作数组成。操作码指明执行什么操作,例如数的传送、加法、减法等。操作数则表示这条指令所完成的操作对象,即是对谁进行操作。指令由指令字节组成,不同的指令,指令的字节数不相同。有单字节指令、双字节指令和三字节指令。 直接寻址:直接给出操作数地址。8051单片机中,用直接寻址方式可以访问片内数据RAM中DATA空间的00H~7FH共128个单字节及所有的特殊功能寄存器。

MOVA,30H ;A←(30H)

立即寻址:若指令的操作数是一个8位或16位二进制数,就称是立即寻址,指令中的操作数称为立即操作数。在立即数前冠以“#”。如#3AH表示立即数3AH,而直接写3AH则表示RAM区中地址为3AH的字节单元。例如:

MOV A,#3AHMOV A, 3AH.

注:8051单片机中,只有一条16位立即数指令:MOV DPTR , #data16,将16位立即数送往数据指针寄存器。 寄存器间接寻址: 以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。间接寻址的存储器空间包括内部数据RAM和外部数据RAM。能用于寄存器间接寻址的寄存器有R0,R1和DPTR。在寄存器名称前面加 一个符号@来表示寄存器间接寻址。 例:

MOV A , @R0 ;A ← ((R0)) MOVX @DPTR,A ;由(DPTR)指示的外部RAM←A

变址寻址:变址寻址是以DPTR或PC的内容为基本地址,然后在这个基址上A的内容作为地址偏移量,才是真正的操作数地址。 例:

MOVC A,@A+DPTR ;A←((A)+(DPTR)) MOVC A,@A+PC ;A←((A+(PC))

相对寻址:以当前程序计数器PC的内容为基础,加上指令给出的一字节补码数偏移量,再加上2,形成新的PC值。相对寻址用于修改PC值,主要用于实现程序的分支转移。 例:

SJMP 08H ;PC←PC+08H+2

位寻址: 位寻址只能对有位地址的单元作位寻址操作。位寻址其实是一种直接寻址方式,不过其地址是位地址。 例:

SETB 10H ;将10H位置1 MOV 32H,C ;32H←进位位CY CLR PSW.4 ;将PSW.4位清0

8051内部RAM中有1个可位寻址区,地址为20H~2FH,共16个单元,其中每个单元的每一位都可单独作为操作数,共128位。另外如果特殊功能寄存器的地址值能被8整除,则该特殊功能寄存器也可以进行位寻址。 注:

位地址的表示可以采用以下几种方式:(1) 直接用位地址00H~FFH来表示,如20H单元的0~7位可表示为20H~27H。(2) 采用第n字节第n位的表示方法,如25H.5,表示25H字节的第5位。(3) 对于特殊功能寄存器可直接用寄存器名加位数的表示方法,如ACC.3,PSW.7等。(4) 用汇编语言中的伪指令定义。

版权声明: 本站仅提供信息存储空间服务,旨在传递更多信息,不拥有所有权,不承担相关法律责任,不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请发送邮件至 举报,一经查实,本站将立刻删除。