久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5142|回復: 23
打印 上一主題 下一主題
收起左側

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

  [復制鏈接]
跳轉到指定樓層
樓主
怎么將C語言轉換為匯編語言,求大佬給具體一點操作過程
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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,點擊調試按鈕 ,進入調試界面,就有對應的匯編程序了



回復

使用道具 舉報

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

使用道具 舉報

6#
ID:584814 發表于 2020-10-15 09:24 | 只看該作者
目前的技術,靠機器翻譯的東東會讓人一頭霧水的,人類語言如此機器語言也一樣。
回復

使用道具 舉報

7#
ID:420836 發表于 2020-10-15 10:08 | 只看該作者
編譯C程序后,使用反向匯編語言工具獲取匯編代碼。
回復

使用道具 舉報

8#
ID:342954 發表于 2020-10-15 15:45 | 只看該作者
小程序可以,大程序就轉出來,也沒有啥用
回復

使用道具 舉報

9#
ID:830326 發表于 2020-10-15 16:16 | 只看該作者
貌似不能轉的,還是老老實實學習匯編吧!
回復

使用道具 舉報

10#
ID:123289 發表于 2020-10-15 17:03 | 只看該作者
平臺會自動生成,不用你動手。
回復

使用道具 舉報

11#
ID:798631 發表于 2020-10-15 19:59 | 只看該作者
奇葩需求,自己重新編都比轉過來好
回復

使用道具 舉報

12#
ID:414556 發表于 2020-10-15 21:23 | 只看該作者
我覺得你應該學好匯編直接用匯編寫,不然C轉的你會看了頭暈的
回復

使用道具 舉報

13#
ID:382454 發表于 2020-10-17 11:45 | 只看該作者
你能牛肉轉換成豬肉,馬肉轉換成羊肉,她就能把C轉換成匯編。
回復

使用道具 舉報

14#
ID:235954 發表于 2020-10-17 13:44 | 只看該作者
用HEX文件生成的匯編文件,看起來也是頭疼
回復

使用道具 舉報

15#
ID:818003 發表于 2020-10-17 14:31 | 只看該作者
地板是正解
但是基本上看不明白,調試之后你就會發現這些匯編僅供參考。。
回復

使用道具 舉報

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



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

使用道具 舉報

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

使用道具 舉報

18#
ID:981034 發表于 2021-12-28 10:50 | 只看該作者
k5自帶了匯編程序,不用轉吧?
回復

使用道具 舉報

19#
ID:953461 發表于 2021-12-28 11:03 | 只看該作者
用編譯器就可以
回復

使用道具 舉報

20#
ID:883242 發表于 2021-12-28 14:24 | 只看該作者
編譯器有輸出匯編的開關,看編譯器手冊吧。
回復

使用道具 舉報

21#
ID:997051 發表于 2022-2-4 23:52 | 只看該作者
用HEX文件反匯編, 就得到匯編文件了
回復

使用道具 舉報

22#
ID:997051 發表于 2022-2-4 23:53 | 只看該作者
用HEX文件反匯編, 就得到匯編文件了
回復

使用道具 舉報

23#
ID:1003232 發表于 2022-2-5 08:04 | 只看該作者
轉出來的根實際的不一樣,還是自已學吧
回復

使用道具 舉報

24#
ID:587810 發表于 2022-2-5 21:18 | 只看該作者
使用Keil軟件中的調試功能可以直接轉換,有時候需要一點點的修改
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美二区乱c黑人 | 成人国产免费视频 | 九九亚洲 | 亚洲精品在线国产 | 亚洲美女视频 | 国产精品自拍视频网站 | 久久精品欧美一区二区三区麻豆 | 国产精品久久久久久久久 | 免费播放一级片 | 91视视频在线观看入口直接观看 | 亚洲人va欧美va人人爽 | 亚洲精品乱码久久久久v最新版 | 中文字幕日韩在线观看 | m豆传媒在线链接观看 | 久久久久久免费观看 | 久久久国产精品入口麻豆 | 亚洲手机在线 | 久久久久91 | 国产精品亚洲精品久久 | 欧美综合在线观看 | 日本一区二区三区免费观看 | av在线三级 | 亚洲精品一区在线 | 日本免费小视频 | 亚洲毛片在线观看 | 视频一区二区三区四区五区 | 精品在线一区二区三区 | 性精品 | 午夜精品一区 | 在线观看www视频 | www亚洲成人 | h视频在线观看免费 | av在线免费看网址 | 中文久久 | 国产一区亚洲 | 日本色婷婷| 亚洲成人免费 | 色狠狠一区| 久久九九99 | 99国产精品久久久久久久 | 国产91在线 | 亚洲 |