equ命令(equ函数)

equ命令(equ函数)

1. equ命令

单片机中,EQU是一个伪指令,意思跟“=”差不多,相当于C语言中的sbit 和sfr两个指令。

2. equ函数

TEMP1 EQU 30H ;

TEMP2 EQU 31H ;

RAM_STA EQU 50H ;定义排序区域的首地址!

RAM_END EQU 70H ;定义排序区的结束地址!

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN:

ACALL MIN_SORT; 调用由小到大排序的程序

SJMP $

MIN_SORT: ;排序函数

MOV R0,#RAM_STA; 用了两个指针,R0和R1,作用是在排序区中获得两个数比较和存放操作

MOV R1,#RAM_STA+1;先把首地址装好

LOOP: MOV A,@R0; 取出两个排序区单元内容放到暂存单元中

MOV TEMP1,A

MOV A,@R1

MOV TEMP2,A

ACALL MIN ; 调用MIN函数,对两个单元进行排序

INC R1; R1指向下一单元

CJNE R1,#RAM_END+1,LOOP; 一直比较到规定结束地址

INC R0; R0指向下一单元

MOV A,R0

INC A;

MOV R1,A R1指向R0的下一单元

CJNE R0,#RAM_END,LOOP; 全部判断结束?

RET 返回

MIN: ; 比较@R0与@R1二者大小,小的放@R0,大的放@R1

PUSH PSW ;保护程序状态

CLR C ;清进位标志,方便下面的操作

MOV A,TEMP1

SUBB A,TEMP2 ;两数相减

JC MIN_END ;有进位表示前者小于后者,否则要交换

MOV A,TEMP2 ;两数交换

MOV @R0,A

MOV A,TEMP1

MOV @R1,A

MIN_END:POP PSW ;恢复程序状态

RET ;返回

END

大概的排序方式为:先找出最小的放到最低RAM中(50H),这里是用最低RAM(50H)与其他RAM逐一比较,比它小的话就两者交换(这样50H中就始终是最小的),得到最小的,再找第二小的...一直判断下去,最后就实现了你要的效果了!

3. equ语句

在汇编定义变量的时候会用到dup。变量名类型初值表Dup用于把一个相同值赋值若干次。重复次数dup(数据项)具体比如:sdb30dup(0)定义一个字节型变量,该变量占用30个字节,所有字节被初始化成0equ是一个代码替换指令比如:sequbx+simovcx,[s]那么上面两句代码相当于如下指令:movcx,[bx+si]

扩展资料:

EQU等价语句1、一般格式等价语句的一般使用格式如下:符号名EQU表达式作用是左边的符号名代表右边的表达式。注意:等价语句不会给符号名分配存储空间,符号名不能与其它符号同名,也不能被重新定义。2、用符号名代表常量或表达式当把一个常量或表达式定义成一个具有一定含义的符号名后,在程序中就可以用该符号名来代表该常量或表达式。例如:NUMBEREQU100;给缓冲区的长度取一个符号名BUFF_LENEQUNUMBER+2CREQU13;给“回车”符的ASCII码定义一个符号名LFEQU10;给“换行”符的ASCII码定义一个符号名…BUFFERDBNUMBER,?,NUMBERDUP(?);用符号名来定义缓冲区…3、用符号名代表字符串用一个具有一定含义的符号名定义某一个较长的字符串,在随后的程序中就用该符号名。例如:GREETINGEQU"Howareyou!"在该定义之后,就可使用符号名GREETING来代表字符串"Howareyou!"。4、用符号名关键字或指令助忆符用一个(组)程序员自己习惯的符号名来代替汇编语言中的关键字或指令助忆符。但在此建议不要这样做,因为程序的编写者习惯,程序的其他阅读者可能会觉得很别扭。例如:MOVEEQUMOV;给指令MOV取另一个符号名MOVECOUNTEREQUCX;给寄存器CX取一个叫“计数器”的符号名上面的定义只是给原来的助忆符MOV和CX起了另一个别名,而原来助忆符MOV和CX仍然可以使用,所以,我们可编写如下语句:MOVEAX,CX;相当于指令:MOVAX,CXMOVCOUNTER,BX;相当于指令:MOVCX,BX5、用符号名定义存储单元的别名可对一片存储单元定义另一个数据类型的符号名,有关叙述参见前面的操作符THIS。例如:WORD1EQUTHISWORD;给后面的字节存储单元取一个字属性的符号名;BYTE1DB12h,21hFLAGDW1234HFLAG1EQUbyteptrFLAG;给FLAG的低字节取一个字节属性的符号名;FLAG2EQUbyteptrFLAG+1;给FLAG的高字节取一个字节属性的符号名;有了上述定义后,可编写如下语句:MOVAX,WORD1;执行后,(AX)=2112HMOVBL,FLAG1;执行后,(BL)=34H

4. equ是什么指令

db定义的是一变量,会开辟占用内存。equ定义的是常数、字符串等等,不会开辟占用内存。简言之,定义变量用db,定义常量用equ。

5. EQU的功能

雪佛兰equinox就是雪佛兰探界者。属于紧凑型运动型SUV多用途车。

雪佛兰Equinox凭借其最新的风格及宽敞、灵活的内部结构,将有助于重新诠释了凑型运动型SUV多用途车。Equinox更精良的设备、更佳的乘坐和操纵性能及更高的舒适度,提供了更多超出传统SUV的功能,将使更多客户能在大小适中的车身内体验到更多时尚、功能和乐趣。

6. equ伪指令

有!表示将20H地址单元里面的内容赋予TMP

---------

6、数据地址赋值伪指令 DATA

将表达式指定的数据地址赋予规定的字符名称

格式: 字符名称 DATA 表达式

注:该指令与EQU 指令相似,只是,可先使用后定义,放于程序开头、结尾均可。

7. equ指令有什么用

ORG 0000H是伪指令,没有机械码伪指令对於编译器有用,起到安排程序存储空间的作用,因它就不在单片机的指令集内,当然就没有对应的机械码,对程序运行更是没有影响常用的伪指令还有:表示 程序结尾的 END宏定义命令 EQU 它们都没有机器码

8. equ指令什么意思

微机原理中dw与db分别代表:双字和字 double word 和double byte。

db和dw都是数据类型描述伪指令,它们告诉编译器为这个变量分配多少内存空间。

一、类型的区别:

db为字节类型,dw为字类型。

二、长度单位的区别:

1个db的长度为8位,即一个字节。

三、定位的区别:

1dw的长度为2db,即16位,两个字节。(DW定义16位数据,每个数据需两个单元存放。高8位数据字节先存入低地址字节中,而低8位数据字节则再存入高地址字节中。)

扩展资料:

微机原理汇编语言包括下列几类:

1、汇编语言的格式。

2、语句行的构成。

3、指示性语句。

4、指令性语句。

5、汇编语言程序设计的过程。

6、程序设计。

7、宏汇编与条件汇编。

参考资料来源:

相关内容