我想将ASM文件转换为C程序。有没有可用的工具。 我的目的是将PIC 16F877A程序的汇编程序转换为C程序......
答案 0 :(得分:1)
自动将程序集转换为C的工具是一种反编译器。 x86汇编语言有几个反编译器。 虽然我没有使用它,但我听说交互式反汇编程序IDA具有反编译转C选项,并支持Microchip PIC汇编语言。
知道PIC程序集的人可以很好地手动将代码从PIC程序集移植到C. 第一步是将“.asm”文件的内容复制到“.c”文件,并使用“asm”关键字将其包装。使用SDCC语法,生成的文件类似于:
// the_program.c
__asm
; some assembler code
goto $0056
__endasm;
您应该能够编译该“.c”文件并使用“diff”来确认它编译为相同的可执行文件。 一个人有时可以将汇编程序转换为编译为相同可执行文件的C函数(使用“diff”进行比较)。 下一步通常看起来像
// the_program.c
__asm
; some assembler code
__endasm;
int main(void){
for(;;){ // forever
__asm
; more assembler code
__endasm;
};
}
__asm
; yet more assembler code
goto $0056
__endasm;
从这里开始,您可以采取两种方式: