汇编程序 代码
回帖(1)
2021-11-26 09:57:29
在Keil下完成一个汇编程序的编写,学习动态调试变量;并注意观察最终生成 hex文件的各段的大小,以及Hex文件前8个字节内容,解释其含义。
因为完成一个汇编程序的编写,所以写代码的时候创建一个新的.s文件
创建好文件后写入代码
AREA MYDATA, DATA AREA MYCODE, CODE ENTRY EXPORT __main __main MOV R0, #10 MOV R1, #11 MOV R2, #12 MOV R3, #13 ;LDR R0, =func01 BL func01 ;LDR R1, =func02 BL func02 BL func03 LDR LR, =func01 LDR PC, =func03 B . func01 MOV R5, #05 BX LR func02 MOV R6, #06 BX LR func03 MOV R7, #07 MOV R8, #08 BX LR
可以打开.hex文件查看内容
我们把每一行分为五个部分
第一个Byte为数据长度
第二第三两个Byte代表地址偏移量
第四个Byte代表数据类型,
接下来是数据区,
最后一个Byte是校验码。
用汇编程序完成一个输出“Hello world”到串口的程序;
通过用零或空指令NOP填充,来使当前位置与一个指定的边界对齐 END 编译后烧录至开发板
用的之前的LED显示的工程
烧录成功后用调试助手查看
在Keil下完成一个汇编程序的编写,学习动态调试变量;并注意观察最终生成 hex文件的各段的大小,以及Hex文件前8个字节内容,解释其含义。
因为完成一个汇编程序的编写,所以写代码的时候创建一个新的.s文件
创建好文件后写入代码
AREA MYDATA, DATA AREA MYCODE, CODE ENTRY EXPORT __main __main MOV R0, #10 MOV R1, #11 MOV R2, #12 MOV R3, #13 ;LDR R0, =func01 BL func01 ;LDR R1, =func02 BL func02 BL func03 LDR LR, =func01 LDR PC, =func03 B . func01 MOV R5, #05 BX LR func02 MOV R6, #06 BX LR func03 MOV R7, #07 MOV R8, #08 BX LR
可以打开.hex文件查看内容
我们把每一行分为五个部分
第一个Byte为数据长度
第二第三两个Byte代表地址偏移量
第四个Byte代表数据类型,
接下来是数据区,
最后一个Byte是校验码。
用汇编程序完成一个输出“Hello world”到串口的程序;
通过用零或空指令NOP填充,来使当前位置与一个指定的边界对齐 END 编译后烧录至开发板
用的之前的LED显示的工程
烧录成功后用调试助手查看
举报
更多回帖