[专业课笔记] 单片机 第四章 汇编语言程序设计知识

本文详细介绍了单片机编程的基础知识,包括编程步骤、编程方法技巧、程序结构以及各种伪指令的使用,如org、end、equ、data、db、dw和ds等。讲解了如何通过这些指令进行程序的组织和数据存储,同时强调了程序模块化、注释重要性和合理使用伪指令来提高代码可读性和效率。
摘要由CSDN通过智能技术生成

本人单片机学习各文的中转站

正文

编程入门

应该只有无基础学习单片机的才需要看这部分把

编程步骤

  1. 提出问题
  2. 确定算法(思路)
  3. 画程序流程图
    (个人认为是绝大多数编程入门都要讲, 但是实际上用不到的一个东西)
  4. 编写程序
    • 标号
    • 操作码
    • 操作数
    • 注释(注释符号为==;==)

编程方法技巧

程序功能模块化

少用无条件转移

多写注释

这些难道不是什么语言都适用吗

程序结构

  1. 顺序
  2. 分支(jz等指令配合使用可实现)
  3. 循环(djnz等指令可实现)

伪指令

不同的微机系统有不同的汇编程序, 也定义了不同的汇编指令
以下这些英文字母表示的汇编指令不是真正的指令, 没有对应的机器码, 汇编时也不产生目标程序(机器码), 只是用来对汇编过程进行某种控制
它们被称为伪指令

org 汇编起始指令

格式:
org addr16
功能是规定该伪指令后的程序的汇编地址, 即汇编后生成的目标程序的起始地址
例如

org 0030h   ; 规定下一条指令的起始地址是0030h

end 汇编结束指令

告知汇编程序在此结束汇编, 在end之后的所有指令不予以汇编

equ 赋值指令

格式
字符名称 equ 项(数值或者汇编符号)
用(前者) 一个字符名称指代(后者) 项(数值或者汇编符号)
类似C语言的宏定义
例如

aa equ r0   ; 指可以用aa指代寄存器r0, 之后的指令比如mov aa, a就等价于将a中数据放入r0中

data 数据地址赋值指令

格式
字符名称 data 表达式
equ有所区别:
data允许后定义先使用
data只能给字符名称赋予数据
data可以把一个表达式的值赋予字符名称(表达式需要是可求值的)
data往往用来在程序里定义数据地址
例如

LED_lits data 72h   ; 存放led排灯每个灯开关的数据

db 定义字节指令

用于在当前ROM地址位置中存放常数, 例如字符串常量, 数组等等
格式
db 项或者项表
例如

org 0072h
db 00h, 01h, 05h
db 'abc'

表示从地址0072h开始在ROM依次存放00h, 01h, 05h, ‘a’, ‘b’, 'c’几个数据
经汇编后,ROM中则有:
(0072h) = 00h
(0073h) = 01h
(0074h) = 05h
(0075h) = ‘a’(的ascii码, 也就是61h)
(0076h) = ‘b’(的ascii码, 也就是62h)
(0077h) = ‘c’(的ascii码, 也就是63h)

dw 定义字命令

用于在当前ROM地址位置中存放16位数据项或者项表, 每个数据都是高8位先放, 低8位后放
格式
dw #data16[,…]
例如

org 0072h
dw 00h, 1001h, 05h

(0072h) = 00h
(0073h) = 00h

(0074h) = 10h
(0075h) = 01h

(0076h) = 00h
(0077h) = 05h

ds 定义存储空间命令

从当前ROM地址位置开始保留指定数目的存储单元
格式
ds 保留的单元个数
例如

org 0072h
ds 05h
db 00h

从ROM的0072h开始保留5个单元不被之后的程序和其他定义占用
因此下一个伪指令db所存放的00h的ROM地址为0077h

以上伪指令db, dw, ds都只对程序存储器起作用

bit 位地址符号命令

格式
字符名称 bit 位地址
例如

a1 bit p0.1;  之后就可以用a1指代p0.1

说明

在实际编程中, 使用的汇编程序不同, 可能可使用的伪指令集会有增减

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值