首页 理论教育 单片机实用教程:3种常用伪指令

单片机实用教程:3种常用伪指令

时间:2023-11-16 理论教育 版权反馈
【摘要】:在汇编时,汇编程序会将源程序中的每条汇编语言指令转换成相应的机器指令,如果在汇编时需要汇编程序对源程序进行一些处理,可在源程序中加入一些特殊的指令,由于这些指令只是告诉汇编程序在汇编时如何处理源程序,而并不会被转换成机器指令,故将这些指令称为伪指令。

单片机实用教程:3种常用伪指令

单片机是无法识别汇编语言程序的,所以用汇编语言写好程序后,还要用汇编程序将汇编语言程序(以下称作源程序)汇编(翻译)成单片机能识别的机器语言程序(又称目标程序),然后再通过编程器将目标程序写入单片机的程序存储器中。

在汇编时,汇编程序会将源程序中的每条汇编语言指令转换成相应的机器指令,如果在汇编时需要汇编程序对源程序进行一些处理,可在源程序中加入一些特殊的指令,由于这些指令只是告诉汇编程序在汇编时如何处理源程序,而并不会被转换成机器指令,故将这些指令称为伪指令。常用的伪指令见表3-38~表3-45。

表3-38 汇编起始指令(Origin)

978-7-111-43252-4-Chapter03-86.jpg

表3-39 定义字节指令(Define Byte)

978-7-111-43252-4-Chapter03-87.jpg

表3-40 定义字指令(Define Word)

978-7-111-43252-4-Chapter03-88.jpg

表3-41 定义预留存储单元指令(Define Space)

978-7-111-43252-4-Chapter03-89.jpg

表3-42 等值指令(Equate)

978-7-111-43252-4-Chapter03-90.jpg

表3-43 数据地址赋值指令

978-7-111-43252-4-Chapter03-91.jpg

表3-44 位地址符号赋值指令

978-7-111-43252-4-Chapter03-92.jpg(www.xing528.com)

表3-45 汇编结束指令

978-7-111-43252-4-Chapter03-93.jpg

【例3-9】用取表法设计实现小灯的巡回流动,即只有一个LED亮,由右边移置左边,再由左边移回到右边,如此来回不断的移动。

解答:本例设计要点如下:

1)取表法是单片机程序中很常用的一种编程思想。它的原理是在汇编程序末尾附加一个数据表,这个数据表可以是字节型的数据,也可是英文字母等数据。数据表与汇编程序一起可以被汇编,之后数据表就成为程序的一部分包含在生成的.HEX文件中。通过下载之后,数据表和程序代码就固化在单片机的程序存储器中。

2)建立表格使用伪指令中的定义字节指令(DB),例如:

978-7-111-43252-4-Chapter03-94.jpg

当程序下载到单片机后,指令的执行代码和数据表中的数据一起保存在程序存储器中,存在存储器的某一段地址空间中。而数据表的名称TABLE就像一个指针,指向第一个数据0FEH所在的地址,如下表中斜体部分。

978-7-111-43252-4-Chapter03-95.jpg

3)查表指令使用变址寻址指令MOVC,它有两种格式“MOVC A,@A+DPTR”和“MOVC A,@A+PC”。

流程图与程序设计如下:

978-7-111-43252-4-Chapter03-96.jpg

978-7-111-43252-4-Chapter03-97.jpg

978-7-111-43252-4-Chapter03-98.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈