汇编语言中的标号有什么规定?

汇编语言中的标号有什么规定?,第1张

1、常数类型:

十进制数:以d结尾,可省略、十六进制数:以h结尾,如果以字母a-f开头,需要在前面加0,以免被识别为助记符、二进制数:以b结尾、八进制数:以q结尾。

2、this类型名:

在程序中,如果需要以另一种数据类型来访问某一存储单元时,可用强制属性 *** 作符PTR来实现。但如果在程序中要经常以某种其它的数据类型来访问该存储单元的话,那么,就必须在每次访问时都要加上强制属性 *** 作符PTR。这样做虽然可行,但在编写程序时就显得比较麻烦。

为了克服上述不便,汇编语言提供了另一种 *** 作符THIS,它为同一存储单元取另一别名,该别名可具有其自身的数据属性,但其段地址和偏移量是不变的。

扩展资料

在汇编语言中,标号、内存变量名、子程序名和宏名等都是标识符,它一般最多由31个字母、数字及规定的特殊字符(?、@、_、$)等组成,并且不能用数字开头。

通常情况下,汇编语言不区分标识符中字母的大小写。和高级语言的变量名一样,一般要求标识符尽可能取得有点含义,这会大大改善程序的可读性,并有助于对程序的理解。

但标识符不能是汇编语言的保留字,汇编语言的保留字主要是指:指令助忆符、伪指令定义符、寄存器名以及一些具有特殊含义的字符串等。

例如:MSG1、ERRMSG2、ASC1、asc2等是合法的标识符,而1a、ah、mov等就不是合法的标识符。试比较ABCDH和0ABCDH之间的差异。前者是标识符,而后者是十六位进制数值!

汇编语言中标号有以下几层意思:

1、作为转移指令所要到达地址的标记。

例如:

MOV A,R2

CJNE A,#10,NXT

NXT:

JC NXT1

CLR C

NXT1:

SETB C

RET

2、作为一个子程序的名称。

例如:

SETB P1.0

LCALL DELAY

CLR P1.0

LCALL DELAY

......

DELAY:

MOV R2,#200

DJNZ R2,$

RET

3、作为一个表格的起始地址

例如:

MOV DPTR,#TAB

CLR A,R2

MOVC A,@A+DPTR

......

TAB:

DB 0C0H,............


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11476603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存