
51单片机实用汇编子程序库(含中文文档)
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
《51单片机实用汇编子程序库》是一本包含大量中文文档支持的资源书,提供了丰富的汇编语言子程序供51系列单片机开发者使用。书中详细介绍了每个子程序的功能和用法,帮助读者快速掌握和应用这些程序,提高开发效率。
### 51单片机实用汇编子程序库解析
#### 片内RAM初始化子程序 (IBCLR)
此子程序用于初始化片内RAM区域,通过清零指定范围内的内存来实现。
**功能说明:**
- **输入参数:** R0(RAM起始地址)
- **输出结果:** 无
- **占用资源:** A、R1
- **堆栈需求:** 无
- **具体操作:**
- 将R0赋值给R1。
- 清空A寄存器(即置0)。
- 使用循环将A寄存器中的0写入由R1指向的RAM地址,并递增R1。
- 重复上述步骤直至R7为0。
- 返回主程序。
#### 片外RAM初始化子程序 (EBCLR1 和 EBCLR2)
这两个子程序分别用于初始化片外RAM的单字节和双字节单元。
**EBCLR1(单字节单元初始化):**
- **输入参数:** ADDPL(低8位地址)、ADDPH(高8位地址)
- **输出结果:** 无
- **占用资源:** A、DPL、DPH
- **堆栈需求:** 无
- **具体操作:**
- 将ADDPH和ADDPL赋值给DPH和DPL。
- 清除累加器A。
- 循环将A中的0写入DPTR指向的地址,并递增DPTR。
- 当R7减至0时退出循环并返回。
**EBCLR2(双字节单元初始化):**
- **输入参数:** ADDPL(低8位地址)、ADDPH(高8位地址)、R7(重复次数)
- **输出结果:** 无
- **占用资源:** A、R6、DPL、DPH
- **堆栈需求:** 无
- **具体操作:**
- 初始化DPTR为外部RAM地址。
- 检查R7是否为0,如果不为0,则递增R6。
- 清除A。
- 将A中的0写入DPTR指向的地址,递增DPTR。
- 循环执行上述步骤直到R7和R6都减至0。
- 返回主程序。
#### 内部RAM数据复制程序 (IBMOV)
该子程序用于在内部RAM之间进行数据复制。
**功能说明:**
- **输入参数:** R0(源地址),R7(复制长度)
- **输出结果:** 无
- **占用资源:** A
- **堆栈需求:** 2字节
- **具体操作:**
- 计算目标地址(R0 + R7)并保存在R1。
- 递减R0和R1,将R0指向的数据读入A,再将A写入R1指向的位置。
- 重复上述步骤直至R7减至0。
- 返回主程序。
#### 外部RAM数据复制程序 (EBMOV1 和 EBMOV2)
这两个子程序用于在外部RAM间或外部RAM到内部RAM的数据复制。
**EBMOV1(外部RAM间复制):**
- **输入参数:** ADDPL(低8位地址)、ADDPH(高8位地址)、R7(复制长度)
- **输出结果:** 无
- **占用资源:** ACC
- **堆栈需求:** 2字节
- **具体操作:**
- 初始化DPTR为外部RAM地址。
- 计算新的DPTR地址。
- 递减R0并检查是否为0xFFH。
- 如果不是则继续递减P2(外部地址的高位)。
- 读取DPTR指向的数据,写入R0指向的位置。
- 重复上述步骤直至R7减至0。
- 返回主程序。
**EBMOV2(外部RAM间复制,支持双字节):**
- **输入参数:** ADDPL(低8位地址)、ADDPH(高8位地址)、R6(外部地址偏移量)、R7(复制长度)
- **输出结果:** 无
- **占用资源:** ACC
- **堆栈需求:** 2字节
- **具体操作:**
- 初始化DPTR为外部RAM地址。
- 计算新的DPTR地址。
- 递减R0并检查是否为0xFFH。
- 如果不是则继续递减P2(外部地址的高位)。
- 读取DPTR指向的数据,写入R0指向的位置。
- 重复上述步骤直至R7和R6都减至0。
- 返回主程序。
**ITEMOV(外部RAM到内部RAM复制
全部评论 (0)


