c语言函数编译成汇编 c语言中如何直接写汇编

如何将c语言程序转成汇编语言程序 。如果是VC则在编译器命令行参数再加 /FA 则会生成汇编代码 。如果参数是 /FAs 则会同时将源码和汇编代码 。
/FA 程序集代码;.asm
/FAc 机器码和程序集代码;.cod
/FAs 源代码和程序集代码;.asm
/FAcs 机器码、源代码和程序集码;.cod
/Fa的用法
/Fa 为编译中的每个源代码文件创建一个源文件.asm 。
/Fa文件名 将文件名.asm 放到当前目录中 。仅在编译单个源代码文件时有效 。
/Fa文件名.扩展名 将文件名.扩展名放到当前目录中 。仅在编译单个源代码文件时有效 。
/Fa目录\ 为编译中的每个源代码文件创建一个源文件.asm , 并将其放到指定目录中 。请注意必须有后缀反斜杠 。只允许使用当前磁盘上的路径 。
/Fa目录\文件名 将文件名.asm 放到指定目录中 。仅在编译单个源代码文件时有效 。
/Fa目录\文件名.扩展名 将文件名.扩展名放到指定目录中 。仅在编译单个源代码文件时有效 。
如果你是用gcc 或 g++编译器,如dev c++则加入命令行参数 -S 即可
VC++ 如何将c语言 , 变成汇编语言可以直接用IDA反汇编VC用C生成c语言函数编译成汇编的.exe文件c语言函数编译成汇编,这个是专业的结构清晰 。要用VC也行,不过里面含有调试信息不实纯粹的汇编,如果c语言函数编译成汇编你的C语言已经通
过 , 能编译成功,按F10就进入调试界面,然后点击“调试”小窗口下面一行的Disassembly就可以看到汇编的代码c语言函数编译成汇编了
C语言转换成汇编语言?win-tc
可以将C代码编译为汇编代码 。
在“运行”,“编译配置”里选取中编译目标为汇编文件 。
另外,将其它语言编译为汇编代码不叫“
反汇编
” 。
C语言怎样转换成汇编语言如果c语言函数编译成汇编你用TC 那么就是tcc -S -I(你的include文件夹) -L(你的lib文件夹) (你的文件)
例如c语言函数编译成汇编 , include在C:\tc\includelib在C:\tc\lib要编译文件hello.c
tcc -S -IC:\tc\include -LC:\tc\lib hello.c会在当前目录下生成一个hello.asm文件直接打开即可
(注意c语言函数编译成汇编?。。?S -I -L 全都是大写c语言函数编译成汇编,区分大小写)
如果你用gcc 那么就是gcc -S (你的文件)
例如hello.cgcc -S hello.c
会在当前目录下生成一个hello.S文件,直接用记事本打开不好看,最好用word打开(windows下的gcc,如果是linux直接vi hello.S 或 cat hello.S 或 less hello.S即可)
(注意?。。?S是大写,区分大小写)
c语言转换成汇编语言如下即可:
ORG0000H
LJMPSTART
ORG0003H
LJMPX0_INT
ORG0013H
LJMPX1_INT
ORG0030H
START:
SETBIT0
SETBIT1
SETBEX0
SETBEX1
SETBEA
;----------------------
MOVA, #0FEH
LOOP:
MOVP1, A
CALLDELAY
RLA
SJMPLOOP
;----------------------
X0_INT:
PUSHACC
PUSHPSW
SETBRS0
MOVA, #0F0H
MOVR2, #6
X0_1:
MOVP1, A
CALLDELAY
CPLA
DJNZR2, X0_1
POPPSW
POPACC
RETI
;----------------------
X1_INT:
PUSHACC
PUSHPSW
SETBRS1
MOVA, #0AAH
MOVR2, #6
X1_1:
MOVP1, A
CALLDELAY
CPLA
DJNZR2, X1_1
POPPSW
POPACC
RETI
;----------------------
DELAY:
MOVR5, #3
DJNZR7, $
DJNZR6, $ - 2
DJNZR5, $ - 4
RET
;----------------------
END
如何将c语言变成汇编理论上来说C语言改成汇编是完全可以的,当然实际上还是有一定难度 。

推荐阅读