51单片机汇编伪指令

上传人:新** 文档编号:509539635 上传时间:2022-11-16 格式:DOCX 页数:13 大小:27.57KB
返回 下载 相关 举报
51单片机汇编伪指令_第1页
第1页 / 共13页
51单片机汇编伪指令_第2页
第2页 / 共13页
51单片机汇编伪指令_第3页
第3页 / 共13页
51单片机汇编伪指令_第4页
第4页 / 共13页
51单片机汇编伪指令_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《51单片机汇编伪指令》由会员分享,可在线阅读,更多相关《51单片机汇编伪指令(13页珍藏版)》请在金锄头文库上搜索。

1、51 单片机汇编伪指令0、 ALTNAME功能: 这一伪指令用来自定义名字,以替换源程序中原来的保留字,替换的保留字均可等效地用于子 程序中。格式: ALTNAME 保留字 自定义名注意: 自定义名与保留字之间首字符必须相同。1、BIT功能:指令用于将一个位地址赋给指定的符号名。指令格式:符号名 BIT 位地址经 BIT 指令定义过的位符号名不能更改。例如:X_ON BIT 60H ;定义一个绝对位地址X_OFF BIT 24h.2 ;定义一个绝对位地址BIT定义位命令格式: 字符名称 BIT 位地址功能用于给字符名称定义位地址。SPK BIT P3.7经定义后,允许在指令中用SPK代替P3.

2、7。2、BSEG功能:绝对选择指令指令 BSEG 选择绝对位寻址数据段指令格式如下: BSEG AT 绝对地址表达式3、CODE功能:用于将程序存储器 ROM 地址赋给指定的符号名。指令格式:符号名 CODE 表达式例如: RESET CODE 00H4、CSEG功能:绝对选择指令 CSEG 选择绝对代码段;指令格式如下: CSEG AT 绝对地址表达式5、DATA(BYTE)功能:指令用于将一个内部 RAM 的地址赋给指定的符号名指令格式:符号名 DATA 表达式数值表达式的值应在 0255 之间,表达式必须是一个简单再定位表达式。例如:REGBUF DATA (BYTE)40HPORT0

3、DATA( BYTE)80HDATA 与 BYTE 的区别:DATA与BYTE是相类似的伪指令。当程序运行到DATA伪指令定义的符号名时,该符号名将被显示; 而由BYTE定义的符号名不被显示。6、DB功能:DB伪指令用于定义一个连续的存储区,给该存储区的存储单元赋值。该伪指令的参数即为存储单 元的值,在表达式中对变元个数没有限制,只要此条伪指令能容纳在源程序的一行内,其格式为:标号: DB 表达式只要表达式不是字符串,每一表达式值都被赋给一个字节。计算表达式值时按16 位处理,但其 结果只取低8位,若多个表达式出现在一个DB伪指令中,它们必须以逗号分开。表达式中有字符串时,以单 引号“”作分隔

4、符,每个字符占一个字节,字符串不加改变地被存在各字节中,并不将小写字母转换成大写 字母。例如: DB 00H 01H 03H 46HDB This is a demo!7、DBIT功能:在内部数据区的 BIT 段以位为单位保留存储空间。指令格式: 标号: DBIT 数值表达式其操作类似于 DB。8、DS功能:DS为定义存储内容的伪指令,用它定义一个存储区,并用指定的参数填满该存储区。DS伪指令包 含两个变元,第一个变元定义了存储区的长度的字节数,在汇编时,汇编程序将跳过这些单元把其它指 令汇编在这些字节之后,因此在使用DS伪指令时第一个变元不可活力第二个变元表示在这些单元中真入什 么值,第二个

5、变元可以活力活力时这些字节将不处理。下例中0173处有一条DS9,则空出9个字节,下一第 指令被汇编到017C处;在017C处空出1BH个单元,在这些字节中被27H所填充。DS指令的格式如下:标号:DS表达式1,表达式2表达式1定义了存储区的长度(以字节为单位)。这个变元不能省略。表达式2是可选择的,它的 值低8位用以填入所定义的存储区。若省略则这部分存储单元不处理。例: 0000 04 INC A0001 DS 9000A 04 INC A000B DS 1BH,27H0026 04 INC ADS 预留存储区命令格式: 标号: DS 表达式值 其功能是从指定地址开始,定义一个存储区,以备源

6、程序使用。存储区预留的存储单元数由表达式的值决定。TMP: DS 1从标号TEP地址处开始保留1个存储单元(字节)。9、DSEG功能:绝对选择指令 DSEG 内部绝对数据段指令格式如下: DSEG AT 绝对地址表达式10、DW功能:DW为以字节为单元(十六位二进制)来给一个的存储区赋值,其格式为: 标号: DW 表达式例如: 0000 3035 D46B DW 12341,54379,10110100101110B11 、END功能:END语句标志源代码的结束,汇编程序遇到END语句即停止运行。若没有END语句,汇编将报错。 END 语句有一个参数,可以是数值 0,也可以是表达式,其格式是:

7、 标号: END 表达式它的值就是程序的地址并且作为一个特殊的记录写入HEX文件。若这个表达式省略,HEX文件中其值 就是 0。12、EQU(=)存器名赋给一个指定符号名。指令格式:符号名EQU (=)表达式符号名EQU(=)寄存器名经过 EQU 指令赋值的符号可在程序的其它地方使用,以代替其赋值。例如: MAX EQU 2000则在程序的其它地方出现MAX,就用2000代替。表达式必须是一个简单再定位表达式。用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者直接当做一个立即数使用。13、EXTRNEXTRN 是与 PUBLIC 配套使用的,要调用其它模块的函数,就必须先

8、在模块前声明。指令格式:EXTRN段类型(符号,符号)例如: EXTRN CODE (TONGXING,ZHUANHUAN)调用外部 TONGXING 和 ZHUANHUAN 程序。14、IDATAIDATA 指令用于将一个间接寻址的内部 RAM 地址赋给指定的符号名。指令格式:符号名 IDATA 表达式例如: FULLER IDATA 60H15 、IF条件伪操作格式:IF 表达式 程序块 1ELSE 程序块 2ENDIF当 IF 指令中的表达式为真时,被汇编的代码段是程序块 1; 当 IF 指令中的表达式为假时,被汇编的 代码段是程序块2。 在一个条件结构中,仅有一个代码段被汇编,其它的则

9、被忽略。16、INCLUDE功能: 利用此伪指令可将一个源文件插入到当前源文件中一起汇编,最终成为一个完整的源程序。格式: INCLUDE 驱动器名: 路径名 文件名注意:1、文件名中若没有扩展名,则系统默认是。ASM(该文件必须是能打开的)。2、被插入的源程序中不能包含 END 伪指令,否则汇编会停止运行。被链接文件的每一行,在程序清单中以“1“开头。3、 链接伪指令可有8级嵌套,若要求嵌套的多,则要修改DOS中的CONFIG.SYS文件的FILES 参 数。17、ISEG功能:绝对选择指令ISEG内部间接寻址绝对数据段idata指令格式如下:ISEG AT绝对地址表达式18、MACRO宏指

10、令格式 宏指令名 MACRO 形式参数,。 代码段ENDM宏调用格式 宏指令名 实在参数,。19、LIST 它们的格式为:$LIST功能:LIST伪指令使汇编时主生程序清单,但即使不用该指令,汇编也会自动产生清单。但如果使用了 NOLIST伪指令后需要继续主生清单则必须使用LIST伪指令。20、NAME功能: 用来给当前模块命名。指令格式:NAME模块名例如: NAME TIMER定义一个模块名为 TIMER 的模块。21、NOCODE其格式为$NOCODENOCODE 伪指令使得在汇编时,条件汇编程序结构中那些真值为假的条件不产生清单。有关条件汇编 结构在下面介绍。如果没有这条伪指令,汇编将

11、主生所有条件下的清单,不论其真值是否为真。但是假的条 件,不产生目标码。而NOCODE伪指令使汇编清单中只列出那些由汇编程序用到的部分,因此,当使用NOCODE 伪指令时,程序清单与源程序并非逐行对应。22、NOLIST它们的格式为:$NOLIST功能:NOLIST伪指令使汇编时不产生清单,所有包含此伪指令及在这条伪指令之后的语句都不进入列 表文件。当不需要任何列表文件,并且不需要显示程序清单时,可以在启动汇编时不加.L附加项,且 在源代码的第一行加上NOLIST指令。使用NOLIST伪指令与附加项/L不同之处是NOLIST伪指令可加在源程序 中,与 LIST伪指令配合使用,使源程序中某些部分

12、不产生清单。而不加附加项/L则不产生任何程序清单。不过, 不管有无$NOLIST伪指令,程序在汇编时检查到的错误都将在屏幕上显示出错的源代码行及错误信息23 、PAGE功能:PAGE伪指令用于形成新的一中定义一面的行数。其格式为:$PAGE表达式若表达式缺省则开始新的一页,若有表达式,则每页行数重新定义。汇编开始时页长为66 行。一页中除出 页外,剩余55行用于打印源程序,这一格式适用于标准打印纸。如果变元值小于66,页内可打印的源代 码行将相应减少。页长最小值为 12。若小于 12 时,每页内除页上只打印一行源程序。页长变元是16 位字 节,因而每页最长可定义到 65535 行,这时分页打印

13、变为连续打印,在屏幕显示程序清单或在卷筒纸上打 印程序清单时,常常使用连续打印,如果在启动汇编时用/N选项,页长就是65535。24 、PUBLIC功能:声明可被其它模块使用的公共函数名。指令格式:PUBLIC符号,符号,符号,PUBLIC 后可跟多个函数名,用逗号格开。每个函数名都必须是在模块内定义过的。例如: PUBLIC INTER, _OUTER其中OUTER可供C调用。25 、RSEG功能:再定位段选择指令为RSEG,用于选择一个已在前面定义过的再定义段作为当前段,指令格式: RSEG 段名段名必须是在前面声明过的再定位段。例如:DATAS SEGMENT DATA :声明一个再定位

14、 DATA 段CODES SEGMENT CODE ;声明一个再定位 CODE 段BSEG AT 60HRSEG CODES ;选择前面声明的再定位CODE段作为当前段。绝对段选择指令CSEG绝对代码段DSEG内部绝对数据段XSEG外部绝对数据段ISEG 内部间接寻址数据段BSEG绝对位寻址数据段格式:CSEG AT 绝对地址表达式 DSEG AT 绝对地址表达式 XSEG AT 绝对地址表达式 ISEG AT 绝对地址表达式 BSEG AT 绝对地址表达式括号内是可选项,用来指定当前绝对段的基地址。 CSEG AT 0000H AJMP MAIN26 、SEGMENT功能:SEGMENT指令

15、用来声明一个再定位段和一个可选的再定位类型。指令格式:再定位段型 SEGMENT 段类型(再定位类型) 段类型用于指定所声明的段将处的储存器 地址空间,可用的段类型有CODE/XDATA/DATA/IDATA和BIT。例如: FLAG SEGMENT BITPONITER SEGMENT IDATA27、SET功能:SET指令类似于EQU指令,不同的是SET指令定义过的符号可重定义。指令格式:符号名 SET 表达式符号名 SET 寄存器名例如:MAX SET 2000MAX SET 300028 、TTILE功能:TITLE伪指令用于在列表文件页头建立一个标题,其格式为:$TITLE标题行这里标量行就是将出现在页头的标量与通常的字符串定义不同。这里标量行不加引号。汇编从$TITLE之后 的第一个可

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号