欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5680|回復: 23
收起左側

怎么將C語言轉換為匯編語言,求大佬

  [復制鏈接]
ID:829993 發表于 2020-10-14 21:53 | 顯示全部樓層 |閱讀模式
怎么將C語言轉換為匯編語言,求大佬給具體一點操作過程
回復

使用道具 舉報

ID:328014 發表于 2020-10-14 22:36 | 顯示全部樓層
不能轉的,放棄吧,只能從頭開始重寫匯編代碼
回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:830046 發表于 2020-10-15 00:12 | 顯示全部樓層
1.使用gcc

        使用gcc -S 1.c可以把1.c轉成特殊的1.s,感覺其實是類似于匯編,然后可以修改其代碼,要想繼續編譯可以用gcc -s 1.s然后就可以實現

2.使用VC++ 編譯器 自帶的 dumpbin 就可以 做反匯編。
       如vc++中在C:\Program Files\Microsoft Visual Studio\VC98\BIN\DUMPBIN.exe
       dumpbin /DISASM abc.exe
       dumpbin /DISASM abc.exe /OUT:abc.asm

3.在vc或者vs的時候按alt+8可以進行匯編調試,不僅可以查看程序的匯編代碼,而且也可以查看此時的變量。

4.通過修改項目 -> 屬性 -> C/C++ -> 輸出文件 -> 匯編輸出之后,每次運行后都可以在debug下面找到一個asm文件
回復

使用道具 舉報

ID:88256 發表于 2020-10-15 00:13 | 顯示全部樓層
打開KEIL,點擊調試按鈕 51hei圖片20201015000751.png ,進入調試界面,就有對應的匯編程序了
51hei圖片20201015001221.png


回復

使用道具 舉報

ID:401564 發表于 2020-10-15 09:05 | 顯示全部樓層
地板是正解
但是看為明白的,調試之后你就會發現:C里面的位移實際上是用加法來完成的,延時有時候是一大堆的NOP指令,這都是機器的算法,很難看明白的
回復

使用道具 舉報

ID:584814 發表于 2020-10-15 09:24 | 顯示全部樓層
目前的技術,靠機器翻譯的東東會讓人一頭霧水的,人類語言如此機器語言也一樣。
回復

使用道具 舉報

ID:420836 發表于 2020-10-15 10:08 | 顯示全部樓層
編譯C程序后,使用反向匯編語言工具獲取匯編代碼。
回復

使用道具 舉報

ID:342954 發表于 2020-10-15 15:45 | 顯示全部樓層
小程序可以,大程序就轉出來,也沒有啥用
回復

使用道具 舉報

ID:830326 發表于 2020-10-15 16:16 | 顯示全部樓層
貌似不能轉的,還是老老實實學習匯編吧!
回復

使用道具 舉報

ID:123289 發表于 2020-10-15 17:03 | 顯示全部樓層
平臺會自動生成,不用你動手。
回復

使用道具 舉報

ID:798631 發表于 2020-10-15 19:59 | 顯示全部樓層
奇葩需求,自己重新編都比轉過來好
回復

使用道具 舉報

ID:414556 發表于 2020-10-15 21:23 | 顯示全部樓層
我覺得你應該學好匯編直接用匯編寫,不然C轉的你會看了頭暈的
回復

使用道具 舉報

ID:382454 發表于 2020-10-17 11:45 | 顯示全部樓層
你能牛肉轉換成豬肉,馬肉轉換成羊肉,她就能把C轉換成匯編。
回復

使用道具 舉報

ID:235954 發表于 2020-10-17 13:44 | 顯示全部樓層
用HEX文件生成的匯編文件,看起來也是頭疼
回復

使用道具 舉報

ID:818003 發表于 2020-10-17 14:31 | 顯示全部樓層
地板是正解
但是基本上看不明白,調試之后你就會發現這些匯編僅供參考。。
回復

使用道具 舉報

ID:155507 發表于 2020-10-17 15:34 | 顯示全部樓層
KEIL原本就必須將C轉成匯編,再轉成機器碼。在設置勾選項中(輸出文件)中找找。
將C與其生產匯編對比,對于提升及理解C,有極大的好處。



就在 *.lst 文件里面,你可以打開 main.lst 看看
回復

使用道具 舉報

18#
無效樓層,該帖已經被刪除
ID:673169 發表于 2020-10-19 10:51 | 顯示全部樓層
1. 預處理:負責執行C語言中的#include, #if, #else 等預處理指令。注意,這里是去執行這些預處理指令。這些預處理指令的作用是根據你的系統環境配湊出最終版的源代碼。

C語言

2. 詞法分析:把你定義的函數名、變量名、預留的關鍵字等抽象化,用一個符號來代替,方便編譯程序處理。例如上圖中的main, return, printf等單詞,都被看作一個符號,轉換成M, R, P。在這個過程中,會檢查你的變量名、函數名名稱是否正確。

3. 語法分析:經過詞法分析處理之后,程序代碼已經變成一堆符號了,例如 I S T F ... M I R P(放心,人已經不認識了,但是計算機能認識)。這時的符號是打散的,語法分析負責把這些符號按照一定的結構組織起來,形成一個抽象語法樹(這個結構跟你寫的程序代碼的結構是對應起來的)。

C語言

4. 語義分析:當構造出這樣一個樹的結構之后,編譯就就會檢查語法是否正確,并且去掃描這棵樹。根據這棵樹的結構,生成中間指令了。這個中間指令已經非常接近匯編。中間指令跟匯編還是有區別的,因為不同廠家的CPU指令有所不同,所以還要根據不同廠家的CPU指令集,把這個中間指令轉換成匯編。

C語言

5. 優化:因為程序員有時代碼寫的不太好,會導致一些多余的操作,或者效率低的指令。優化過程可以找出這些毛病,自動替換成更好的指令。

6. 鏈接:以上過程只編譯了一個模塊,一個大型程序往往包含好多個模塊。最后的鏈接過程負責把所有模塊組裝起來,構造出最后可以執行的程序。
回復

使用道具 舉報

ID:981034 發表于 2021-12-28 10:50 | 顯示全部樓層
k5自帶了匯編程序,不用轉吧?
回復

使用道具 舉報

ID:953461 發表于 2021-12-28 11:03 | 顯示全部樓層
用編譯器就可以
回復

使用道具 舉報

ID:883242 發表于 2021-12-28 14:24 | 顯示全部樓層
編譯器有輸出匯編的開關,看編譯器手冊吧。
回復

使用道具 舉報

ID:997051 發表于 2022-2-4 23:52 | 顯示全部樓層
用HEX文件反匯編, 就得到匯編文件了
回復

使用道具 舉報

ID:997051 發表于 2022-2-4 23:53 | 顯示全部樓層
用HEX文件反匯編, 就得到匯編文件了
回復

使用道具 舉報

ID:1003232 發表于 2022-2-5 08:04 | 顯示全部樓層
轉出來的根實際的不一樣,還是自已學吧
回復

使用道具 舉報

ID:587810 發表于 2022-2-5 21:18 | 顯示全部樓層
使用Keil軟件中的調試功能可以直接轉換,有時候需要一點點的修改
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表