編譯器怎麼知道源程序位置
『壹』 一個編譯器至少包含三個部分的進程是什麼
一個典型的編譯程序通常包含8個組成部分,它們是詞法分析程序、語法分析程序、語義分析程序、中間代碼生成程序、中間代碼優化程序、目標代碼生成程序、表格管理程序和錯誤處理程序。
(1) 編譯程序:如果源語言為高級語言,目標語言為某台計算機上的匯編語言或機器語
言,則此翻譯程序稱為編譯程序。
(2) 源程序:源語言編寫的程序稱為源程序。
(3) 目標程序:目標語言書寫的程序稱為目標程序。
(4) 編譯程序的前端:它由這樣一些階段組成:這些階段的工作主要依賴於源語言而與
目標機無關。通常前端包括詞法分析、語法分析、語義分析和中間代碼生成這些階
段,某些優化工作也可在前端做,也包括與前端每個階段相關的出錯處理工作和符
號表管理等工作。
(5) 後端:指那些依賴於目標機而一般不依賴源語言,只與中間代碼有關的那些階段,
即目標代碼生成,以及相關出錯處理和符號表操作。
(6) 遍:是對源程序或其等價的中間語言程序從頭到尾掃視並完成規定任務的過程。
詞法分析程序:輸人源程序,拼單詞、檢查單詞和分析單詞,輸出單詞的機內表達形式。
語法分析程序:檢查源程序中存在的形式語法錯誤,輸出錯誤處理信息。
語義分析程序:進行語義檢查和分析語義信息,並把分析的結果保存到各類語義信息表中。
中間代碼生成程序:按照語義規則,將語法分析程序分析出的語法單位轉換成一定形式的中間語言代碼,如三元式或四元式。
中間代碼優化程序:為了產生高質量的目標代碼,對中間代碼進行等價變換處理
『貳』 如何找到軟體的源代碼
軟體的源代碼,基本是沒有辦法的,因為軟體運行時都是編譯後的程序,也就是把源代碼翻譯成計算機能執行的代碼,一般的破解是破解功能限制,注冊限制,反編譯也只是能得到匯編代碼,也很難看懂的。
『叄』 編寫好c語言源程序後如何進行編譯和運行
編寫好C語言源程序後,需要按照以下步驟進行編譯和運行:
1. 保存源代碼文件,確保文件擴展名為「.c」。
2. 使用C語言編譯器將源代碼文件編譯成目標文件。在命令行中輸入「gcc 源文件名.c -o 目標文件名」即可進行編譯。如果編譯成功,將生成一個目標文件。
3. 將目標文件鏈接成可執行文件。在命令行中輸入「gcc 目標文件名.o -o 執行文件名」即可進行鏈接。如桐弊陵果鏈接成功卜敗,將生成一個可執行文件。
4. 運行可執行文件。在命令行中輸入「./執行文件名」即可運行程序。如果一切正常,程序將輸出預期的結果。
需要注意的是,編譯和運行C語言程序需要相應的環境配置,包括C語言編譯器和操作系統等。此外,不同的操作系統和編譯器可能具有不同的命令行語法和選項,因此需要根據實際情況進行調局戚整。
『肆』 keil如何快速找到代碼
高級查找
步驟一:首先工程編譯選項中要選擇如圖一:【Browse Infomation】選項,即瀏覽信息。
全編譯工程至沒有錯誤,這一點很重要,如果有嚴重的錯誤,則可能沒有編譯完,即一般的查找可能不會查到整個工程文件的內容,選成搜索的信息不全或是沒有。
圖一:設置編譯選項
步驟二:如圖二,雙擊需要查找的內容選中後,點擊右鍵,選擇查找項:
這里為簡單的查找方式,方便與快速。可以查找到相關的定義及調用情況,在哪個文件里。這里必須是全編譯通過的工程源碼。
圖二:選中並右鍵查找。
步驟三:如圖三,部分匯編函數的變數或是函數名無法找到。有時查不到,怎麼辦呢?繼續以下的方法。
圖三:簡單的查找沒有找到相關項。
步驟四:如圖四,選中後,通過Edit->Find in files..高級查找功能。這里要點就是設置搜索篩選的條件及文件范圍,如是否精確查找或是只要部分包含等選項。
圖四:打開高級查找功能:工程文件內容搜索。
步驟五:設置文件搜索的選項,尤其是工程文件夾,默認有可能不是整個工程文件夾。這里點擊瀏覽選擇整個工程文件。
圖五:設置搜索選項。
步驟六:保證搜索文件范圍為整個工程文件主目錄。選擇後,即可進行搜索了查找了。
圖六:選擇文件主目錄。
步驟七:點擊查找後,查看搜索到的信息。查看搜索到的結果,有可能很多,可以重新查找並修改查找選項等。
圖七:文件搜索到的信息。
步驟八:雙擊並定位查看指定的搜索信息。雙擊即可定位並查看查找的結果。
圖八:定位並查看指定的搜索信息。
有時需要對工程源碼進行從頭到尾的學習與消化,因此,查找功能還是比較有用的。從而讓變數定義或是函數定義等無處藏身。雖然步驟很多,其實很簡單。
最重要的,學習在於積累,有些技術的東西,就要多動手,然後再舉一返三,熟能生巧。
張世爭
微信公眾號
嵌入式開發技術經驗分享
打開CSDN,閱讀體驗更佳
keil c51 關鍵字_行知zzz的博客_c51擴展關鍵字
keil c51 關鍵字 一:KeilCx51擴展的關鍵字: •at•alien •bdata •bit •code •compac •data •far •idata •interrupt •large •pdata •priority•reentrant...
繼續訪問
KeilC51基本關鍵字_dylan_zhouhailiang的博客_c51關鍵字
KeilC51基本關鍵字 一、由ANSI標準定義的共32個: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof ...
繼續訪問
keil編輯環境下_「搜索」功能窗口中_Bookmark All命令的便捷之處
在keil編輯環境下,有時候調用一個函數,這個函數有執行的前提條件,比如要執行函數體內容得滿足:if (cmdArrived) 條件; 可是變數:cmdArrived在哪裡定義的? 在哪個函數里變數:cmdArrived滿足條件,要怎麼找比較快呢。 ctrl + F 打開搜索框,輸入「cmdArrived」,再點擊「Bookmark All」命令,所有的「cmdArrived」調用行全部使用了書簽,這樣就比較好著了; keil編輯環境工具欄搜索框輸入cmdArrived,點擊右邊搜索命令,再點擊「Book
繼續訪問
Keil 查找功能的使用
keil中如何查找和替換以及一個工程里所有文件所包含查找和替換的內容: 1、點擊 edit-find或者快捷鍵 ctrl+f; 2、在look in中 選擇current document就是查找或替換本文件的內容, 選擇current project就是查找或替換整個工程的包含的內容 ...
繼續訪問
MDK keiluvision Volatile關鍵字的用法_點點墨的博客
MDK keiluvision Volatile關鍵字的用法 在定義變數時,變數前面加volatile修飾,作用是防止相關變數被優化。 例如對外部寄存器的讀寫。對有些外部設備的寄存器來說,讀寫操作可能都會引發一定硬體操作,但是如果不加volatile,編譯器會把這些...
繼續訪問
Keil中的code關鍵字_weixin_30823001的博客
Keil中的code關鍵字 一般說來,我們在C語言中定義的每一個變數初始化後都會佔用一定的內存(RAM)空間。但是在keil中提供了一個特殊的關鍵字「code」,這個關鍵字在標准C中是沒有的。其語法舉例如下:...
繼續訪問
keil C51 中的庫函數
非常有用的keil c51 庫函數文檔,受益匪淺,
Keil C51 V9.00/uVision 4基礎
<br /> <br />Keil C51 V9.00 即09年發布的最新版本uVision 4,版本外觀改變比較大<br />可以使用以前的注冊文件<br />如果全新安裝,在VISTA或者WIN 7系統下,請使用管理員方式運行,然後注冊即可無限制運行<br />注冊方法:<br /> 1. 安裝Keil C51 V9.00版本,即uV4<br /> 2. 打開uVision4,點擊File---License Management...,打開License Management窗口,復制右上
繼續訪問
解決Keil 搜索關鍵字時不能跳轉到所在位置的問題
問題:KEIL搜索結果不能跳轉的問題分析過程:最近遇到一個問題:在keil5.1中ctrl+shift+s全局搜索,雙擊搜索結果後無法跳轉。重裝軟體,換版本,修復電腦我都試了,都沒用。最後發現,原先的程序可以跳轉,而後來修改的不行。相同的工程在相同的目錄下為什麼一個可以一個不行呢?發現唯一的區別就是兩個工程文件夾名稱不同,由於修改過的版本我在工程文件名附加了 「(0922)」,我把括弧去掉後就可以...
繼續訪問
keil5尋找自定義函數的位置
keil中想快速的找到自定義函數的位置,如下所示: 想找到CAN定義的函數位置: 第一步:先對程序進行build(第一步非常重要,如果不build,就不能用後面的快捷鍵與go to!!!) 第二步:可以游標放到函數的位置右擊,然後點擊go to definition…或者按F12 ...
繼續訪問
KEIL5 全局搜索關鍵字功能用不了的解決辦法(CTRL+F)
CTRL+F跳出搜索界面 點擊Find in Files 項目卡,選擇Current Project即可。
繼續訪問
STM32F4工程--KEIL--搜索關鍵字
STM32F4工程--KEIL--搜索關鍵字 在.C文件或.H文件中搜索一個關鍵字 方法: ctrl+F 輸入關鍵字即可查詢 (問題解決,如果對大佬您有幫助的話,給小丁個贊唄,謝謝大佬)
繼續訪問
最新發布 如何通過KEIL查看所定義函數入口在內存的地址
如何通過KEIL查看所定義函數入口在內存的地址
繼續訪問
Keil軟體開啟「查找變數定義」功能方法
在使用Keil軟體編寫程序時,有可能將程序的變數定義和使用放在了不同的位置, 有時候想要查看變數的定義,可以使用Keil軟體的查找功能。 1、使用Find功能一個個查找變數,在Keil界面輸入 Ctrl+F,彈出查找界面。 將要查找的內容輸入[Find what]查找框,[Look in]框選擇"Current Document",然後點擊"Find Next"就可以在當前文件一...
繼續訪問
Keil使用技巧及常見問題
文章目錄Keil的使用快捷鍵Keil中使用Ctrl+Shift+F:在多個文件中搜索變數/函數(Find in files) Keil的使用快捷鍵 Keil中使用Ctrl+Shift+F:在多個文件中搜索變數/函數(Find in files) 搜索條件 說明 Find what 輸入要搜索的關鍵字 指定要搜索的文件類型 指定要搜索的文件夾/工程 搜索屬性...
繼續訪問
keil的主要功能和作用_keil進階教程
前言keil只懂得創建軟體工程是遠遠不夠的,如果要想順心使用,應該要懂得部分配置,這樣使用心情順暢,碼代碼也會越發高效。設置字型大小字體點擊編輯菜單,會出現很多子目錄,找到配置,點擊進入設置頁面。看到上方的子欄目,去選擇colors,進入新界面,單片機用C語言編寫·,那就點擊編輯c文件,右邊會出現字型大小,字體,字色設置,按照個人需求自行設置。改正錯誤有時候各種因素會出現編程錯誤,但自行又找不到錯誤在何處...
繼續訪問
KEIL5全局搜索,在find in files框內雙擊搜索內容,不能跳到相應位置
文件名包含了()括弧,去掉就可以了。
繼續訪問
熱門推薦 keil編程關鍵字沒有彩色,找不到Keyword和 C++files解決辦法
打開顏色設置,如果沒有C/C++ Editor files 你就無法修改你的代碼界面關鍵字顏色。 這種情況,很有可能是你的Keil安裝目錄下含有中文路徑(一般國外專業軟體我都放在D盤第一目錄下的新建英文文件夾(Softwares)中,養成文件夾存放的好習慣,日後無論是安裝還是找路徑都會方便許多。),將你的Keil安裝文件整個拖到英文目錄下,或者修改目錄名為英文。 接下來重啟軟體,就可以設置關鍵字了。 注意:修改前關閉keil,如果文件名無法修改,說明當前有文件里的東西正在運行。需關閉」修改目錄「所在文件里的
繼續訪問
Keil代碼整體偏移和查找功能
選中要偏移的代碼,然後按TAB鍵,所有被選中的代碼就會向後偏移TAB,TAB等於多少個空格,可以在「Edit」-「Editor」-「C/C++ Files」下面設置。 如果要返回,則選中目標代碼,按Shift+TAB就行了。 Keil的查找功能
繼續訪問
Keil如何查看函數或變數調用---非Ctrl F
今天公司新人問我,Keil這個編譯器怎麼查看一個函數都在哪裡被調用?我脫口而出 辣雞軟體只能用Ctrl F慢慢找。。要麼你就先用SourceInsight編輯代碼,改好了再去編譯吧。 好好的編譯器怎麼會沒有這個最基本的功能呀?? 想著這個問題,於是就有了今天的意外之喜。 操作方法如下: 在View中調出SourceBrowser這個窗口,將需要查找定義及調用位置的 函數、變數、宏等復制到Symbol處,回車 你就可以看到Definitions&References了,雙擊可以跳轉到對應的代碼位置。這
繼續訪問
keil查找函數引用的方法
1.快捷鍵ctrl+f 2在Find in Files中填要找的,Find all. 3.ojbk
繼續訪問
如何在KEIL裡面搜索一個函數名或者字元串
使用Ctrl + F 會出現如下彈窗,這個就是一個搜索窗口。 這個彈窗的搜索內容會和你之前選中的字元串一樣,同時可以選擇在一個文件下找,也可以選擇查找那個文件含有這個字元串 查找含有某一個字元串的文件 ...
繼續訪問
實驗一 單片機 繪制原理圖
實驗一 2.2繪制原理圖 1.首先在開始菜單欄裡面輸入「ISIS」打開軟體; 2.1)單擊元器件列表窗口上邊的按鈕P,彈出圖2.1所示元器件選擇窗口; 圖2.1 2)在該窗口左上方的關鍵字文本框內輸入8051,在窗口右上方的欄中將顯示出80C51圖形符號,同時顯示該器件的虛擬模擬模型VSM DLL model(MCS8051.DLL)如圖2.2; 圖2.2 3) 用滑鼠從器件選擇窗口中選中需要的器件,單機確定按鈕後,選擇的器件將出現在預覽窗口中如圖2.3; 圖2.3 4)將滑鼠指向編輯窗口並單
繼續訪問
keil查找關鍵字
Keil
『伍』 java源文件編譯時要放在哪裡
很可能是編譯的路徑沒選對,用絕對路徑也可以,用相對路徑也可以,絕對路徑:就是cmd調出管理員窗口後,輸入javac E:\xuexi\HelloWord.java。其中E:\xuexi\HelloWord.java就是源程序HelloWord.java的絕對路徑,即源程序文件在哪裡,它的絕對路徑就是從類似上述例子的路徑。相對路徑:一直點一直點,找到你寫的源文件HelloWord.java,然後在最上面路徑那一欄中把原來的名字全部刪掉,輸入cmd,這就是相對路徑。例如HelloWord.java在E:\xuexi下,只需要把最上面路徑欄里的E:\xuexi刪掉,換成cmd回車就可以了,最後再輸入javac HelloWord.java就可以編譯。如果有錯誤也會報錯。