访问电脑版页面

导航:老古开发网手机版其他

A51 4.5.1 PROC / ENDP(仅适用于 AX51 和 A251 )

导读:
关键字:

我们可以使用伪指令 PROC ENDP 为一个程序片段定义一个标记,叫做一个过程 (procedure) 。对于 Philips 80C51MX 和 Intel/Atmel WM 251 架构,一个过程既可以是 NEAR 型,也可以是 FAR 型。过程的类型不同,调用指令也不同,对于 NEAR 型使用 LCALLACALL,对于 FAR型使用 ECALL。不象 C 函数,汇编器过程不为标记提供局部范围。因为可视范围是整个模块,所以 A251 中的标识符必须唯一。伪指令 PROC/ENDP 的格式如下:

name PROC   [ type  ]
  ; procedure text (过程代码)
 
 
  RET
name ENDP

其中

name 是过程的名称。
type 指明过程的类型,过程的类型必须是下表中类型之一:

类型 说明
none 默认为 NEAR 型
NEAR 定义一个 near 型过程;由指令 LCALL 或 ACALL 调用。
FAR 定义一个 far 型过程;由指令 ECALL 调用。

如果我们要从另外一个 64K 字节段中调用该过程,我们应该把它指明为 FAR 型。过程通常以指令 RET 结尾。软件指令 RET 将自动被转换为一条适当的机器返回指令。例如:

RET 从一个 near 型过程中返回。
ERET 从一个 far 型过程中返回。

例程:

P100 PROC NEAR  
  RET   ; near 型返回
  ENDP    
       
P200 PROC FAR  
  RET   ; far 型返回
  ENDP    
       
P300 PROC NEAR  
  CALL P100 ; LCALL
  CALL P200 ; ECALL
  RET   ; near 型返回
  ENDP    
       
  END
来源:   作者:  2006/9/25 16:50:53
栏目: [ ]

相关阅读

安森美推出新的高功率图腾柱PFC控制器,满足具挑战的能效标准

动态功耗低至60μA/MHz!助力设备超长续航,首选国民技术低功耗MCU!