ARM SDT下汇编到GNU汇编的转换

本文介绍从ARMSDT和ARMADS汇编语言移植到GCCforARM编译器的方法。包括注释、伪指令、操作数及运算符的转换规则,以及宏定义的使用等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将ARM SDT下的汇编码移植到GCC for ARM编译器时,经常要做如下修改:
1、注释行以“@”或“”代替“;” <wbr><br>2、伪操作符替换: <wbr><br>INCLUDE 替换成 .INCLUDE <wbr><br>TCLK2<wbr> EQU<wbr> PB25 替换成<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> .equ<wbr> TCLK2, PB25 <wbr><br>EXPORT 替换成 .global <wbr><br>IMPORT 替换成 .extern <wbr><br>DCD 替换成 .long <wbr><br>IF :DEF: 替换成<wbr> .IFDEF <wbr><br>ELSE 替换成 .ELSE <wbr><br>ENDIF 替换成 .ENDIF <wbr><br>:OR: 替换成 | <wbr><br>:SHL: 替换成 &lt;&lt; <wbr><br><br>END<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 替换成<wbr><wbr><wbr><wbr><wbr> .end <wbr><br>符号定义加":"号 <wbr><br><br>AREA Word, CODE, READONLY --&gt; .text <wbr><br>AREA Block, DATA, READWRITE --&gt; .data <wbr><br>CODE32 --&gt; .arm <wbr><br>CODE16 --&gt; .thumb <wbr><br>LTORG --&gt; .ltorg <wbr><br>% --&gt; .fill <wbr><br><br>3、操作数及运算符号替换 <wbr><br>ldr pc, [pc, #&amp;18]<wbr> 替换成<wbr><wbr> ldr<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

第二部分

将ARM ADS下的汇编码移植到GCC for ARM编译器时,有如下规则:
1, 注释行以"@"或"/* ... */"代替";"
2, GET或INCLUDE => .INCLUDE
如:get option.a => .include "option.a"
3, EQU => .equ
TCLK2 EQU PB25 => .equ TCLK2, PB25
SETA ==> .equ
SETL ==> .equ
BUSWIDTH SETA 16 => .equ BUSWIDTH, 16
4, EXPORT => .global
IMPORT => .extern
GBLL => .global
GBLA => .global
5, DCD => .long
6, IF :DEF: => .IFDEF
ELSE => .ELSE
ENDIF => .ENDIF
:OR: => |
:SHL: => <<
7, END =>.end
NOTE:在被include的头文件中,如"option.a"中,不再需要.end,否则会导致主汇编程序结束。
8, 符号定义加":"号
Entry => Entry:
AREA Word, CODE, READONLY ==> .text
AREA Block, DATA, READWRITE ==> .data
CODE32 ==> .arm
CODE16 ==> .thumb
9, MACRO ==> .macro
MEND ==> .endm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值