依入式来发开变与应用实验放餐ADS下的伪操作符GNU下的伪操作符INCLUDEincludeTCLK2 EOU PB25.equTCLK2,PB25EXPORT-globalIMPORTexternDCDlongifdefIF: DEF:ELSEelse.endifENDIF:OR::SHLRNreqGBLA-globalBUSWIDTHSETA16.equBUSWIDTH,16MACROmacroMEND.endmEND.endAREAWOrd,CODE, READONLY.text.dataAREABIOck,DATA,READWRITECODE32arm或.CODE[32]CODE16thumb或.CODE[16]LTORGItorg%fillEntryEntry:ldrpc.pc.#&18]ldrpc.[pc.#+0x18]ldrpc.[pc,#-&18]ldrpc.[pc.#-0x18
5.2嵌入式系统汇编程序举例1、简单的ARM指令程序GUN与ADS环境下编程比较(P233).global startAREA ARMeX.CODE.READONLYENTRY.textstart:MOVR0,#10startMOVR0,#10MOVR1#3MOVR1.#3ADDRO.RO.R1ADD R0.R0.R1MOVR0,#0x18MOVR0,#0x18stop:stopLDRR1,=0X20026LDRR1,=0X20026SWI 0X123456SWI0X123456END.end
5.2 嵌入式系统汇编程序举例 1、简单的ARM指令程序GUN与ADS环境下编程比较(P233) .global _start .text _start: MOV R0, #10 MOV R1, #3 ADD R0,R0,R1 stop: MOV R0, #0x18 LDR R1, =0X20026 SWI 0X123456 .end AREA ARMex,CODE,READONLY ENTRY start MOV R0, #10 MOV R1, #3 ADD R0,R0,R1 stop MOV R0, #0x18 LDR R1, =0X20026 SWI 0X123456 END
2、示例90数据块复制(P234)dstsrc--X....演示002asm2
2、示例90 数据块复制(P234) 8 8 src dst 演示002_asm2
3、示例91利用跳转表实现程序跳转(P236)BLFuncFunc:ADRR3,JTableLDR PC,[R3,R0,LSL,#2]JTable:DCD/*4字节子程序入口地址*DoAddDCD/*4字节子程序入口地址*/DoSubDoAdd:DoSub:演示002 asm2
3、示例91利用跳转表实现程序跳转(P236) BL Func . Func: . ADR R3,JTable LDR PC,[R3,R0,LSL,#2] JTable: DCD DoAdd /*4字节子程序入口地址*/ DCD DoSub /*4字节子程序入口地址*/ DoAdd: . DoSub: . 演示 002_asm2
4.3嵌入式C语言程序设计基础C语言“预处理伪指令”嵌入式程序设计中的函数及函数库嵌入式程序设计中常用的C语言语句嵌入式程序设计中C语言的变量、数组、结构、联合
4.3 嵌入式C语言程序设计基础 ⚫C语言“预处理伪指令” ⚫嵌入式程序设计中的函数及函数库 ⚫嵌入式程序设计中常用的C语言语句 ⚫嵌入式程序设计中C语言的变量、数组、结构、联合