延边州住房城乡建设局网站,企业网站 单页,建立微信公众号的流程,网站备案 英文1、汇编启动源码 2、分析二进制#xff1a;0x0300006f
2.1、反汇编代码 2.2、jal指令 jal指令的作用#xff1a;跳转到当前PC值偏移offset处执行#xff0c;其中offset由jal指令的bi[31:12]表示#xff1b; 2.3、分析指令#xff1a;j 20030 reset
j 20030 //伪…1、汇编启动源码 2、分析二进制0x0300006f
2.1、反汇编代码 2.2、jal指令 jal指令的作用跳转到当前PC值偏移offset处执行其中offset由jal指令的bi[31:12]表示 2.3、分析指令j 20030 reset
j 20030 //伪指令跳转到0x20030地址处执行
j reset //伪指令跳转到reset标号处执行reset标号的地址就是0x20030
jal x0,0x30 //跳转到当前PC0x30处执行PC此时等于0x20000上面的三条指令是一样的只是不同的表达方式j指令是伪指令。 2.4、按照jal指令格式解析0x0300006f 2.5、为什么是当前PC偏移0x30 3、疑问写汇编指令和直接写指令的二进制的优劣
3.1、全志SDK包里的汇编启动代码 全志SDK里是通过代码来构建出jal跳转指令相较于韦东山老师写的0x0300006f要更灵活可以根据启动代码的头来动态计算出偏移量而韦东山老师写的代码头的大小只能是0x30字节。 3.2、为什么要写跳转指令的二进制而不是汇编代码 我认为直接用伪代码j reset让编译器去构建jal指令不是更方便吗代码可读性也更高不是很理解直接写二进制的方式但是看到全志的SDK官网代码也是这么写的是我没有领悟到这样写的好处吗有知道答案的博友欢迎在评论区交流。