单片机汇编指令 ACALL 怎么用?

能不能给一个简单的小例子加以说明?... 能不能给一个简单的小例子加以说明? 展开
 我来答
一万光年MEGn0
2013-06-30 · TA获得超过3712个赞
知道大有可为答主
回答量:4602
采纳率:67%
帮助的人:1077万
展开全部
ACALL 是调用子程序的指令。
例如:

F_A: MOV A,#10
ADD A,#10

MOV R0,A
RET

MAIN: MOV SP ,#60H
ACALL F_A
SJMP $
ACK119
2013-06-30 · TA获得超过620个赞
知道小有建树答主
回答量:1233
采纳率:0%
帮助的人:494万
展开全部
格式:ACALL add11 功能:绝对调用子程序
说明:
addr11:11 位目标地址,在下条指令的2K 范围内转移或调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WAX95
2013-06-30 · TA获得超过107个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:180万
展开全部
比如说调用延时子程序
ACALL DELAY
*******(正常的其他程序)
DELAY:
MOV R4 ,#10
D2:MOV R5,$
DJNZ R4,D2
RET
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhxiufan
2015-05-29 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38387
国家科技进步奖

向TA提问 私信TA
展开全部
ACALL是51汇编的子程序调用指令,其使用范围是±2K范围,超出这个范围的调用将会出错,这时可以使用LCALL即长调用语句。
调用格式如下:
ACALL 标号(子程序名)
例程:
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
MAIN:
MOV SP,#5FH
ACALL INIT ;调用初始化子程序
SJMP $
INIT:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-1000)
MOV TL0,#LOW(65536-1000)
SETB TR0
SETB ET0
SETB EA
RET
T0ISR:
CPL P1.0
RETI
END
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式