這是用keil自動(dòng)翻譯的,自己整理一下吧。
公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)公司推出浪卡子免費(fèi)做網(wǎng)站回饋大家。
; 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)
如果是VC則在編譯器命令行參數(shù)再加 /FA 則會(huì)生成匯編代碼。如果參數(shù)是 /FAs 則會(huì)同時(shí)將源碼和匯編代碼。
/FA 程序集代碼;.asm
/FAc 機(jī)器碼和程序集代碼;.cod
/FAs 源代碼和程序集代碼;.asm
/FAcs 機(jī)器碼、源代碼和程序集碼;.cod
/Fa的用法
/Fa 為編譯中的每個(gè)源代碼文件創(chuàng)建一個(gè)源文件.asm。
/Fa文件名 將文件名.asm 放到當(dāng)前目錄中。僅在編譯單個(gè)源代碼文件時(shí)有效。
/Fa文件名.擴(kuò)展名 將文件名.擴(kuò)展名放到當(dāng)前目錄中。僅在編譯單個(gè)源代碼文件時(shí)有效。
/Fa目錄\ 為編譯中的每個(gè)源代碼文件創(chuàng)建一個(gè)源文件.asm,并將其放到指定目錄中。請(qǐng)注意必須有后綴反斜杠。只允許使用當(dāng)前磁盤上的路徑。
/Fa目錄\文件名 將文件名.asm 放到指定目錄中。僅在編譯單個(gè)源代碼文件時(shí)有效。
/Fa目錄\文件名.擴(kuò)展名 將文件名.擴(kuò)展名放到指定目錄中。僅在編譯單個(gè)源代碼文件時(shí)有效。
如果你是用gcc 或 g++編譯器,如dev c++則加入命令行參數(shù) -S 即可
方法很多
比如 你看懂C語(yǔ)言 然后用匯編重新實(shí)現(xiàn)
或者用編譯器自帶的命令,比如gcc,可以gcc a.c -o a.S -S 就可以生成匯編
也可以先生成bin,然后反編譯。
你在kile
軟件
里面的仿真中。有一個(gè)(disassembly
window)圖標(biāo)點(diǎn)擊一下,可以把c
翻譯
成
匯編
,disassembly
window是一個(gè)
反匯編
的窗口
.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
網(wǎng)頁(yè)標(biāo)題:c語(yǔ)言函數(shù)翻譯成匯編指令 c語(yǔ)言函數(shù)翻譯成匯編指令是什么
鏈接地址:http://muchs.cn/article8/hgecop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站、微信公眾號(hào)、App開發(fā)、ChatGPT、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)