访问电脑版页面

导航:老古开发网手机版51单片机51单片机汇编编程

基于80C51单片机位寻址编程

导读:
关键字:
51单片机,RAM,寄存器,

80C51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式。所谓位寻址,就是对内部RAM或可位寻址的特殊功能寄存器SFR内的某个位,直接加以置位为1或复位为0。

位寻址的范围,也就是哪些部份可以进行位寻址:

1、我们在学习51单片机的存储器结构时,我们已知道在单片机的内部数据存储器RAM的低128单元中有一个区域叫位寻址区。它的单元地址是20H-2FH。共有16个单元,一个单元是8位,所以位寻址区共有128位。这128位都单独有一个位地址,其位地址的名字就是00H-7FH。

这里就有一个比较麻烦的问题需要大家理解清楚了。我们在前面的学习中00H、01H。。。。7FH等等,所表示的都是一个字节(或者叫单元地址),而在这里,这些数据都变成了位地址。我们在指令中,或者在程序中如何来区分它是一个单元地址还是一个位地址呢?这个问题,也就是我们现在正在研究的位寻址的一个重要问题。其实,区分这些数据是位地址还是单元地址,我们都有相应的指令形式的。这个问题我们在后面的指令系统学习中再加以论述。

2、对专用寄存器位寻址。这里要说明一下,不是所有的专用寄存器都可以位寻址的。具体哪些专用寄存器可以哪些专用寄存器不可以,请大家回头去看看我们前面关于专用寄存器的相关文章。一般来说,地址单元可以被8整除的专用寄存器,通常都可以进行位寻址,当然并不是全部,大家在应用当中应引起注意。

专用寄存器的位寻址表示方法:

下面我们以程序状态字PSW来进行说明

D7

D6

D5

D4

D3

D2

D1

D0

CY

AC

F0

RS1

RS0

OV

P

1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示为D5H
MOV C,D5H

2、位名称表示:表示该位的名称,例如PSW的位5是F0,所以可以用F0表示

MOV C,F0

3、单元(字节)地址加位表示:D0H单元位5,表示为DOH.5

MOV C,D0H.5

4、专用寄存器符号加位表示:例如PSW.5

MOV C,PSW.5

这四种方法实现的功能都是相同的,只是表述的方式不同而已。

来源:未知   作者:工程师周亮  2018/9/25 15:08:00
栏目: [ 51单片机汇编编程]

相关阅读

在 KEIL C51 中如何直接嵌入汇编

在C51中如何实现汇编的DA A指令?

#pragma asm是什么意思?

51单片机对交通灯的控制设计

请问怎样用89C51采集多路脉冲信号?

CRC16-STANDARD的快速算法,51汇编

双字节十六进制小数转换成双字节BCD码小数

MCS-51单片机汇编伪指令的用法解析

MCS-51单片机实用子程序库

C51单片机的压缩BCD码相加程序

汇编中的ORG 0X0000H 在C51中如何实现

51单片机汇编语言-延时程序的延时时间

MCS-51单片机布尔处理功能解析

16位数据传送指令(1条)——mcs51单片机汇编语言

MCS-51单片机地址指针的应用

MCS-51单片机实用子程序库--浮点数除法

MSC-51单片机的3字节和4字节浮点数计算程序分析

使用汇编,中断响应后RETI返回后没有回到原处,而是回到另外一处,如何解决

单片机双机并行通信中所遇问题

51单片机的汇编语言指令中英文对照