C语言反汇编

这篇博客通过keil4软件演示了如何将C语言程序反汇编为汇编语言。作者以简单的C语言代码为例,解释了条件判断和死循环在汇编语言中的实现。例如,条件判断通过赋值、异或比较和跳转指令实现,而while(1)循环则由无条件跳转指令SJMP构成,形成无限循环。文章强调了记录和理解这些过程对于巩固学习成果的重要性。
摘要由CSDN通过智能技术生成

这里使用的是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的初始状态,特殊寄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值