单片机的汇编语言伪指令(单片机常用伪指令)
本篇目录:
- 1、51单片机汇编语言后缀
- 2、单片机中的伪指令是什么意思?
- 3、列出5种80c51单片机的伪指令
- 4、什么叫伪指令?伪指令与指令有什么区别
- 5、单片机的汇编程序,我画问号的那一条语句中的$是什么意思?
51单片机汇编语言后缀
一般都用Keil来编的,当然还有其他软件。编写的程序是.asm后缀的,经编译后形成.hex文件,这个程序文件是51单片机可以识别的,载到单片机里面就可以执行的了。用C语言编出来的是高级语言,还要变成汇编语言。
单片机是指一个集成在一块芯片上的完整计算机系统。
指令”,因而它只存在于汇编语言中。高级语言中不叫指令,叫语句;(2)由于是“伪”指令,也即“假”指令,因而不是可执行指令,不会产生机器代码,不会占用ROM空间,只用于汇编过程中为汇编程序提供汇编信息。
点击保存按钮后出现下第一张图所示对话框,在箭头所指的地方输入源文件名称加后缀名(如果你是用C语言编写程序后缀名为*.c;如果你是用汇编语言编写程序则后缀名为*.asm)并点击确认保存。
这其实是一段键盘去抖处理程序,第一个MOV A,P0判断是否有按键;第二个MOV A,P0再次判断是否有按键(延时一会后),有按键则处理按键。
单片机中的伪指令是什么意思?
1、单片机中指令是对应CPU的可执行代码,在编译时会分配存储单元,运行时CPU按指令指引的方向和功能执行。
2、ADRL 伪指令 将相对于程序或相对于寄存器的地址载入寄存器中。 与 ADR 指令相似。ADRL 所加载的地址比 ADR 所加载的地址更宽,因为它可生成两个数据处理指令。
3、单机片中EQU指令是伪指令,作用是用赋值伪操作给重复出现的数值或寄存器赋予一个名字,即把一个符号名称与一个整数表达式或一个任意文本连接起来,方便操作。db定义的是一变量,会开辟占用内存。
列出5种80c51单片机的伪指令
单片机80C51指令的基本格式由 “标号:操作码 操作数;注释 ”组成标号标号:指令的符号地址。用于一段功能程序的识别标记或控制转移地址。指令前的标号代表该指令的地址,是用符号表示的地址。
C51的堆栈遵循 后进先出 原则,它是临时在 片内RAM 内开辟的区域。1LCALL指令的调用范围为 64 K;它必须和 RET 指令成对使用。
单片机位操作指令又称布尔操作,它是以位为单位进行的各种操作。
【答案】:80C51单片机的工作方式共有四种:复位方式、程序执行方式、低功耗方式和片内ROM编程(包括校验)方式。
什么叫伪指令?伪指令与指令有什么区别
1、指令是CPU执行的依据,编程、编译、执行都是有效的。伪指令只为编译服务,编译完成后,伪指令作用消失。例如:ORG 0000H ;ORG是伪指令,定位以一句语句的起始位置 LJMP MAIN ;LJMP是指令,长跳转到MAIN标号。
2、“伪指令”,顾名思义,它不是真正的指令,是用于指示汇编程序如何汇编源程序的。伪指令(Pseudo Instruction)是用于对汇编过程进行控制的,该类指令并不是可执行指令,没有机器代码,只用于汇编过程中为汇编程序提供汇编信息。
3、伪指令是程序员发给汇编程序的命令,只有在汇编前的源程序中才有伪指令,即在汇编过程中的用来控制汇编过程的命令。所谓“伪”是体现在汇编后,伪指令没有相应的机器代码产生。
4、汇编语言中,指令一般用大写, 是机器码的助记符号,与一定的机器码相对应。而伪指令(汇编命令和宏命令等)通常用.开头,小写。
单片机的汇编程序,我画问号的那一条语句中的$是什么意思?
1、就是代表,不断跳回本指令。也就是一种预设的死循环。
2、leng equ $-str 就是当前地址减去str1的初始地址,即可得到str1的长度。在字符串中是结束标志,就是字符串遇到$才会结束,类似于c语言中字符串中结尾的0。
3、代指本指令的地址。如果SJMP $的起始地址是1010H,则在编译的时候编译器把$编译为这个起始地址1010H,就等于SJMP 1010H,执行完这指令后还跳到这个地址再执行它。无限循环直到单片机没电。
4、dup (?)语句,紧接着X1的终止地址,那么它的首地址相对于X1偏移4 - 1个字节单元;X2的终止地址相对于其首地址偏移16 - 1个字节单元,相对于X1偏移18个字节单元。那么 - X1实际上是当前地址与X1首地址之差。
5、是延时等待的意思,相当于NOP,在51单片机的汇编语言里经常这么用。
6、sjmp 是 单片机中的 无条件跳转命令,后面跟随的是 跳转的地址;而 $ 该符号,在汇编语言中,表示 本行地址 的意思,于是 SJMP $,就表示跳转到本行。表现的结果就是:死循环。
到此,以上就是小编对于单片机常用伪指令的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。