c语言函数翻译成汇编指令 c语言函数翻译成汇编指令是什么

C语言转换成汇编语言

这是用keil自动翻译的,自己整理一下吧。

公司主营业务:成都做网站、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出浪卡子免费做网站回馈大家。

; FUNCTION delay05s (BEGIN)

;---- Variable 'i' assigned to Register 'R7'

0000 7F05 MOV R7,#05H

0002 ?C0001:

;---- Variable 'j' assigned to Register 'R6'

0002 7EC8 MOV R6,#0C8H

0004 ?C0004:

;---- Variable 'k' assigned to Register 'R5'

0004 7DFA MOV R5,#0FAH

0006 ?C0007:

0006 DDFE DJNZ R5,?C0007

0008 ?C0006:

0008 DEFA DJNZ R6,?C0004

000A ?C0003:

000A DFF6 DJNZ R7,?C0001

000C ?C0010:

000C 22 RET

; FUNCTION delay05s (END)

; FUNCTION main (BEGIN)

0000 ?C0011:

;---- Variable 'j' assigned to Register 'R4'

0000 7C01 MOV R4,#01H

;---- Variable 'i' assigned to Register 'R3'

0002 E4 CLR A

0003 FB MOV R3,A

0004 ?C0013:

0004 EC MOV A,R4

0005 F4 CPL A

0006 F590 MOV P1,A

0008 120000 R LCALL delay05s

000B EC MOV A,R4

000C 25E0 ADD A,ACC

000E FC MOV R4,A

000F 0B INC R3

0010 BB08F1 CJNE R3,#08H,?C0013

0013 ?C0014:

0013 7C80 MOV R4,#080H

0015 E4 CLR A

0016 FB MOV R3,A

0017 ?C0016:

0017 EB MOV A,R3

0018 C3 CLR C

0019 9408 SUBB A,#08H

001B 50E3 JNC ?C0011

001D EC MOV A,R4

001E F4 CPL A

001F F590 MOV P1,A

0021 120000 R LCALL delay05s

0024 EC MOV A,R4

0025 C3 CLR C

0026 13 RRC A

0027 FC MOV R4,A

0028 0B INC R3

0029 80EC SJMP ?C0016

; FUNCTION main (END)

如何将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 即可

如何将 C 语言翻译成汇编语言

方法很多

比如 你看懂C语言 然后用汇编重新实现

或者用编译器自带的命令,比如gcc,可以gcc a.c -o a.S -S 就可以生成汇编

也可以先生成bin,然后反编译。

如何将单片机C语言程序翻译成汇编?

你在kile

软件

里面的仿真中。有一个(disassembly

window)图标点击一下,可以把c

翻译

汇编

,disassembly

window是一个

反汇编

的窗口

求将下面C语言翻译成汇编语言

.section__TEXT,__text,regular,pure_instructions

.globl_main

.align4, 0x90

_main:

Leh_func_begin1:

pushq%rbp

Ltmp0:

movq%rsp, %rbp

Ltmp1:

subq$32, %rsp

Ltmp2:

movl$1, -12(%rbp)

movl$10, -16(%rbp)

movl$0, -20(%rbp)

movl$1, -12(%rbp)

jmpLBB1_2

LBB1_1:

movl-12(%rbp), %eax

movl-12(%rbp), %ecx

imull%ecx, %eax

movl-20(%rbp), %ecx

addl%ecx, %eax

movl%eax, -20(%rbp)

movl-12(%rbp), %eax

addl$1, %eax

movl%eax, -12(%rbp)

LBB1_2:

movl-12(%rbp), %eax

movl-16(%rbp), %ecx

cmpl%ecx, %eax

jleLBB1_1

movl-20(%rbp), %eax

xorb%cl, %cl

leaqL_.str(%rip), %rdx

movq%rdx, %rdi

movl%eax, %esi

movb%cl, %al

callq_printf

movl$0, -8(%rbp)

movl-8(%rbp), %eax

movl%eax, -4(%rbp)

movl-4(%rbp), %eax

addq$32, %rsp

popq%rbp

ret

Leh_func_end1:

.section__TEXT,__cstring,cstring_literals

L_.str:

.asciz "sum=%d\n"

.section__TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support

EH_frame0:

Lsection_eh_frame:

Leh_frame_common:

Lset0 = Leh_frame_common_end-Leh_frame_common_begin

.longLset0

Leh_frame_common_begin:

.long0

.byte1

.asciz "zR"

.byte1

.byte120

.byte16

.byte1

.byte16

.byte12

.byte7

.byte8

.byte144

.byte1

.align3

Leh_frame_common_end:

.globl_main.eh

_main.eh:

Lset1 = Leh_frame_end1-Leh_frame_begin1

.longLset1

Leh_frame_begin1:

Lset2 = Leh_frame_begin1-Leh_frame_common

.longLset2

Ltmp3:

.quadLeh_func_begin1-Ltmp3

Lset3 = Leh_func_end1-Leh_func_begin1

.quadLset3

.byte0

.byte4

Lset4 = Ltmp0-Leh_func_begin1

.longLset4

.byte14

.byte16

.byte134

.byte2

.byte4

Lset5 = Ltmp1-Ltmp0

.longLset5

.byte13

.byte6

.align3

Leh_frame_end1:

.subsections_via_symbols


网页标题:c语言函数翻译成汇编指令 c语言函数翻译成汇编指令是什么
标题来源:http://myzitong.com/article/hgecop.html