USING的用法说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用汇编语句

参数使用表达式

描述USING语句指定使用哪个寄存器组(0-3)对AR0-AR7寄存器进行编码。所选寄存器组在目标文件中记录,并且存储器区域由链接器保留。

某些8051指令(如PUSH和POP)仅允许使用绝对地址。汇编程序将绝对寄存器(AR0-AR7)替换为当前寄存器组中寄存器的物理地址。当指令PUSH R0无效时,PUSH AR0有效。但是,汇编程序必须知道使用哪个寄存器组来计算正确的物理地址。这是USING语句的目的。USING语句不会生成任何用于切换当前寄存器库的代码。汇编程序必须选择正确的寄存器组。例如,以下代码选择寄存器组2:

PUSH PSW ;保存当前的寄存器组

MOV PSW,#(2 SHL 3);设置寄存器组2

.

.

.

POP PSW ;恢复保存的寄存器组

物理地址计算如下:

(寄存器组×8)+寄存器

注意

小心使用EQU语句为绝对寄存器(AR0-AR7)定义符号。符号值在定义时计算(而不是在使用时)。如果随后使用USING语句更改了寄存器组,则定义的符号将具有不正确的地址,并且生成的代码可能会失败。示例(编号为0~3)

USING 3 ;选择第4组寄存器(编号为3)

PUSH AR2 ;入栈到第4组的R2(地址1Ah)

USING 1 ;选择第2组寄存器(编号为1)

PUSH AR7 ;入栈到第2组的R7(地址0Fh)

相关文档
最新文档