单片机交流
登录
直播中
周煌煦
7年用户
998经验值
私信
关注
[问答]
如何使用keil4软件将编写的C语言程序汇编成汇编语言?
开启该帖子的消息推送
keil4
如何使用keil4软件将编写的C语言程序汇编成汇编语言?
回帖
(1)
李培珠
2021-10-14 11:38:59
这里使用的是keil4软件,将编写的C语言程序汇编成汇编语言。
这里只用最简单的C语言做了一下参考,所举的例子是最简单的,只能用于了解一下汇编的表达方式。
如图所示,条件判断语句的汇编语句表达是赋值后与进行异或比较,再判断是否进行跳转。
将立即数03赋值给累加器A,然后将累加器A的值与立即数05进行异或(XRL是异或运算指令)之后赋值给A,相同的两个数值进行异或运算会得到0的结果,之后判断A的值是否为0,JNZ是A不为零就跳转到C:080F地址处,若A为零则运行下一条语句。
while(1)的实现方式十分简单,只是一条无条件跳转语句SJMP,执行到这一条语句就跳转回C:080F,一遍遍执行while括号里的指令,死循环,不跳出。
若不存在死循环,主函数main执行完一遍后回进行复位,将所有寄存器复位成00的初始状态,特殊寄存器SP复位为0x07,之后跳转程序开头(C:0800)重复执main函数。
将学到的东西纪录下来,既是对当天学习成果的总结,也是对自身的检验,看自己到底是只过了一遍脑,还是真得掌握了所学的知识。
这里使用的是keil4软件,将编写的C语言程序汇编成汇编语言。
这里只用最简单的C语言做了一下参考,所举的例子是最简单的,只能用于了解一下汇编的表达方式。
如图所示,条件判断语句的汇编语句表达是赋值后与进行异或比较,再判断是否进行跳转。
将立即数03赋值给累加器A,然后将累加器A的值与立即数05进行异或(XRL是异或运算指令)之后赋值给A,相同的两个数值进行异或运算会得到0的结果,之后判断A的值是否为0,JNZ是A不为零就跳转到C:080F地址处,若A为零则运行下一条语句。
while(1)的实现方式十分简单,只是一条无条件跳转语句SJMP,执行到这一条语句就跳转回C:080F,一遍遍执行while括号里的指令,死循环,不跳出。
若不存在死循环,主函数main执行完一遍后回进行复位,将所有寄存器复位成00的初始状态,特殊寄存器SP复位为0x07,之后跳转程序开头(C:0800)重复执main函数。
将学到的东西纪录下来,既是对当天学习成果的总结,也是对自身的检验,看自己到底是只过了一遍脑,还是真得掌握了所学的知识。
举报
更多回帖
rotate(-90deg);
回复
相关问答
keil4
请问有
C
语言
至
汇编语言
的转换
软件
吗?
2020-03-20
1416
lib封装库如何反
汇编成
C
语言
2015-06-12
7779
C
语言
和
汇编语言
的优缺点是什么?
2021-10-14
2117
KEIL
查看
汇编语言
(?
C
?ULDIV) 是什么意思?
2023-10-08
248
请问.
C
语言
中可以嵌套
汇编语言
吗?
2019-09-20
1718
用
C
语言
编写
51单片机
程序
与用
汇编语言
编写
51单片机
程序
有何不同?
2021-07-15
1670
请问
C
语言
中可以嵌套
汇编语言
吗?
2019-09-25
1706
如何利用
C
语言
去
编写
单片机
程序
呢
2021-11-02
1536
求助关于
汇编语言
的两道题~
2012-04-23
3873
请问
汇编语言
和
C
语言
哪个好用些
2019-04-23
2356
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分