产品概述

单片机 伪指令 写程序我们常常听到伪指令这个词,伪指令有几种呢?一起来看看

小编 2024-10-06 产品概述 23 0

写程序我们常常听到伪指令这个词,伪指令有几种呢?一起来看看

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

在汇编时,汇编程序会将源程序中的每条汇编语言指令转换成相应的机器指令,如果在汇编时需要汇编程序对源程序进行一些处理,可在源程序中加入一些特殊的指令,由于这些指令只是告诉汇编程序在汇编时如何处理源程序,而并不会被转换成机器指令,故将这些指令称为伪指令。常用的伪指令有下面8条。今天我们先看四条

1, 汇编起始指令(Origin)

汇编起始指令

操作码助记符:ORG

格式:ORG 16位地址

功能:该指令用于指示下一条指令在程序存储器中的起始地址。

举例:ORG 2000H

MOV A,36H

“ORG 2000H”的功能是指示它的下一条指令“MOV A,36H”的起始地址为2000H。

2 定义字节指令(Define Byte)

定义字节指令

操作码助记符:DB

格式:DB 字节内容

功能:该指令用于定义字节内容。

举例:ORG 3000H

DB 45H,36H,56H,7AH

第1行指令的功能是指示它的下一条指令的起始地址为3000H;第2行指令的功能是依次让3000H、3001H、3002H、3003H单元中的数据为45H、36H、56H、7AH,即让(3000H)=45H、(3001H)=36H、(3002H)=56H、(3003H)=7AH。

3 定义字指令(Define Word)

定义字指令

操作码助记符:DW

格式:DW 字内容

功能:该指令用于定义字内容。

举例:ORG 4000H

DW 4510H,3621H,5600H

第1行指令的功能是指示它的下一条指令的起始地址为4000H;第2行指令的功能是依次让4000H、4001H、4002H、4003H、4004H、4005H单元中的数据为45H、10H、36H、21H、56H、00H,即让(4000H)=45H、(4001H)=10H、(4002H)=36H、(4003H)=21H、(4004H)=56H、(4005H)=00H。

4 定义预留存储单元指令(Define Space)

定义预留存储单元指令

操作码助记符:DS

格式:DS 保留单元数目

功能:该指令用于定义在存储器中留出一定数目的存储单元。

举例:ORG 30H

DS 08H

DB 23H,E8H

第1行指令的功能是指示它的下一条指令的起始地址为30H;第2行指令的功能是从30H地址开始,留出30H~37H的8个存储单元;第3行指令的功能是让38H、39H单元中的数据分别为23H、E8H。

跟电师傅学单片机(10):单片机数据传送指令(一)

一:单片机指令符号说明

单片机指令符号说明表

二:MCS-51单片机指令

数据传送指令:29条(用得最多)

算术运算指令:24条

逻辑运算指令:24条

控制转移指令:17条(较重要)

位操作指令:17条

常用伪指令:17条

三:单片机数据传送指令

——8位数据传送指令(15条)

4条以A为目的操作数的传送指令

3条以Rn为目的操作数的传送指令

5条以直接地址direct1为目的操作数的传送指令

3条以@Ri为目的操作数的传送指令

——16位数据传送指令(1条)

MOV DPTR,#data16 (唯一一条单片机16位数据传送指令)

属于单片机立即寻址方式,占用3个字节。指令作用是将16位立即数传送至16位地址寄存器DPTR中,DPTR由DPH和DPL组成。指令执行结果是把高8位立即数送入DPH,把低8位立即数送入DPL。

#data16:表示16位立即数。

例如:

MOV DPTR,#6789H;将立即数6789H送到DPTR中。

相关问答

单片机 里EQU是什么 指令 ?作用?

伪代码,即用EQU前面的符号来代替后面的地址、表达式、寄存器等。P0、P1本身有定义,你这样定义会出错。伪代码,即用EQU前面的符号来代替后面的地址、表达式、...

单片机 的第一行 指令 是什么?

如果是C,一般是#include等一些伪指令什么的。真正地程序开始肯定是main(){}如果是ASM汇编语言,那么第一句一般是ORGXXXX,也可以再前面有一些定义和库的引导...

单片机指令 中MOV @R7,A是合法指令吗?

不合法,因为R几这个是工作寄存器,这8个寄存器(共4组,共32个)叫工作寄存器,其中能用来做间接寻址的只能是R0和R1,其他几个不能间接寻址。@R7是错误的不合法,因...

51 单片机 cy 指令 ?

51单片机中Cy是进位标志位。在进行加法或减法运算时,若运算结果最高位有进位或借位,则Cy进位。51单片机是对所有兼容Intel8031指令系统的单片机的统称。该...

单片机 命令中str str16 sbit bit这几个命令具体用来做什么的,有什么区别呢?

是sfrsfr16不是strstr16sfr是特殊功能寄存器的缩写,定义像P0、P1等等8位特殊功能寄存器的伪指令,地址魏80H~FFHsfr16是定义想DPTR这样的16位特殊功能寄存器...

单片机 怎么设置代码?

要设置单片机的代码,首先需要选择合适的开发环境,如Keil、IAR等。然后编写代码,包括初始化设置、功能实现和中断处理等。根据单片机型号和功能需求,选择合适...

单片机 指令 集有哪些?

不知道你想问什么样的单片机?我假设51.不知道你要c语言的还是汇编的,我假设汇编的指令有很多,不可能一下子全部学习完毕,要警惕松鼠心态。希望我的回答能...

单片机指令 @符号代表什么?

@代表间接寻址例子:MOVA,@R0R0里面存的是地址,假设R0里存的数是30H,那么这条指令的意思是:把地址为30H的存储单元里存的数传,送给累加器A;假设R0里存的...@...

单片机 堆栈 指令 ?

单片机堆栈操作指令如下:PUSHdirect(堆栈指令)其作用是先将栈指针SP的内容加1,然后将直接寻址单元中的数压入到sP所指的单元中。若数据已入栈,则SP指...单...

单片机 add 指令 怎么用?

ADD指令可用于完成把src-byte所示的源操作数和累加器A的当前值相加。并将结果置于累加器A中。根据运算结果,若第7位有进位则置进位标志为1,否则清零;若第3位...

猜你喜欢