如何用Source Insight高效阅读ARM汇编代码?
关于Source Insight处理ARM汇编的问题解答
嘿,我来帮你捋捋这个问题~首先明确说一句:Source Insight并不是只支持x86汇编,它完全可以配置来完美适配Linux内核的ARM汇编代码,你之前按网上方案操作后格式混乱,大概率是配置步骤没踩对,或者没针对Linux内核ARM汇编的特殊语法做适配。
为什么默认情况下ARM汇编显示异常?
Source Insight默认的汇编语法规则是偏向x86架构的,而Linux内核里的ARM汇编有自己独特的语法风格:
- 用
@作为单行注释符(x86常用;) - 有大量ARM特有的伪指令(比如
.type、.align、.global)和指令集后缀 - 寄存器命名规则和x86完全不同(比如
r0-r15、sp、lr这些)
默认配置没覆盖这些规则,所以打开ARM汇编文件时,SI会把很多内容识别错,导致格式乱掉。
正确的配置步骤(亲测有效)
你可以按下面的步骤重新配置,先恢复默认再修改,避免旧配置冲突:
- 打开Source Insight,点击菜单栏的
Options->Document Types - 在弹出的窗口里找到
Assembly(如果你的版本里有单独的ARM Assembly选项更好),选中它 - 切换到
Syntax Formatting标签页,点击Edit进入语法规则编辑界面 - 分别调整以下几个关键组的内容:
- Instructions:添加ARM核心指令(比如
ldr、str、mov、bl、cmp),还有Thumb指令的变种(比如ldrh、strh) - Directives:添加Linux内核ARM汇编常用的伪指令,比如
.global、.type、.align、.rept、.endr - Registers:把ARM的通用寄存器(
r0-r15)、特殊寄存器(sp、lr、pc、cpsr)都加进去 - Comments:切换到
Comments标签,把Line comment character改成@,替换掉默认的;
- Instructions:添加ARM核心指令(比如
- 保存所有配置后,关闭并重新打开ARM汇编文件,你会发现语法高亮和格式都正常了
另外,Linux内核ARM汇编里的宏(比如ENTRY、ENDPROC),你也可以加到Macros组里,这样识别会更准确。
内容的提问来源于stack exchange,提问作者learnlearnlearn
相关产品推荐
相关产品推荐

