RET指令的功能

 我来答
手机用户93075
2016-05-29 · TA获得超过104个赞
知道答主
回答量:201
采纳率:66%
帮助的人:130万
展开全部

从堆栈中退出pc的高8位和低8位字节,把堆栈指针加2,从pc值开始继续执行程序。不影响任何标志。
例子
;主程序
MAIN:SETB P1.0 ;(1)开始主程序,P1.0口置1(P1.0 口输出为高,可以控制LED点亮)
LCALL DELAY ;(2)此时当前堆栈指针加2 ,调用(6)DELAY延时子程序
CLR P1.0 ;(3)P1.0口清零(P1.0 口输出为低,可以控制LED熄灭)
LCALL DELAY ;(4)此时当前堆栈指针加2 ,调用(6)DELAY延时子程序
LJMP MAIN ;(5)跳转到主程序,这样LED实现循环点亮
;子程序
DELAY:MOV R7,#250 ;(6)250-->R7
D1:MOV R6,#250 ;(7)250--->R6
D2:DJNZ R6,D2 ;(8)(R6-1),等于零执行下一条,不等于零,则跳转到D2
DJNZ R7,D1 ;(9)(R7-1),等于零执行下一条,不等于零,则跳转到D1
RET ; (10)当前堆栈指针减2,返回到(3)CLR P1.0继续执行MAIN 主程序。
END . (11)程序结束(伪指令)

意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,具有以下基本参数:1. 工作频率:72MHz2. 外部时钟:最高可达120MHz3. 存储器容量:64K bytes4. 数据总线宽度:32位5. 输入/输出端口... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式