㈠ 匯編語言生成的文件是什麼類型,能改嗎
匯編過程是針對匯編語言的步驟,調用as進行工
作,一般來講,.S為後綴的匯編語言源代碼文件和匯編、.s為後綴的匯編語言文件經過
預編譯和匯編之後都生成以.o為後綴的目標文件。當所有的目標文件都生成之後,gcc就
調用ld來完成最後的關鍵性工作,這個階段就是連接。在連接階段,所有的目標文件被
安排在可執行程序中的恰當的位置,同時,該程序所調用到的庫函數也從各自所在的檔
案庫中連到合適的地方。
當然,不能改了。
㈡ C語言程序編譯後產生哪些類型的文件這些文件的作用是什麼
1、以GCC編譯器為例,可以分為四步。
第一步是預處理,包括語法檢查等工作。
gcc
-P
abc.c
第二步由源程序生產匯編語言代碼。
gcc
-S
abc.c
會生成abc.s文件,這個文件里就是匯編代碼。
第三步編譯器生成目標代碼,一個源文件生成一個目標代碼。
gcc
-c
abc.c
會生成abc.o
第四步連接器從目標代碼生成可執行文件。
gcc
abc.o
2、目標代碼包括機器碼和符號表(函數及變數名)。連接器的主要作用是通過符號表在庫文件和其他模塊中找到在目標代碼中引入或未定義的符號(函數及變數名),將幾個目標代碼合成可執行文件。
㈢ 用masm編譯匯編程序怎麼產生OBJ文件和EXE文件
開始--運行--輸入cmd,打開的窗口就是模擬的DOS
不是直接打開masm.exe,在DOS下打開
debug用來調試的,使用的方法 debug 文件名.exe
用它把exe文件載入內存,有U命令查看每一條指令
用T命令一步步執行每一條指令,查看寄存器的變化
1、下載個masm5.0(簡單,適合初學者),裡面至少應包含masm.exe和link.exe,可能還包含其他的,不過我們只需要最基本的這兩個。
2、將masm5.0壓縮包里的程序解壓(包含masm.exe和link.exe),放到一個目錄中(如D:\masm),然後就在這個目錄下建立個文本文件(如XX.txt)寫入個匯編程序,保存,將後綴名改為XX.asm。
3、進入命令提示行(開始--運行--輸入cmd)
4、進入程序所在文件夾(用dos的cd命令),以2中的為例,鍵入「d:」,回車,鍵入「cd masm」,回車,鍵入「masm XX」,回車3下,鍵入「link XX」,再回車3下,再鍵入「XX」,就運行完了。
補充:
1、若程序有問題,在4步驟中會提示,這時就要返回修改
2、如果程序本身並不顯示輸出結果,則4步驟運行完後也不會看到什麼反應,初學者建議找個有顯示輸出結果的程序做試驗
3、第二個步驟中,試驗程序xx.asm應當和masm.exe link.exe放在一起,若不再一起,則需要添加masm環境變數。
㈣ C語言源程序文件的後綴是什麼,經過編譯後生成文件的後綴是什麼經過連接後生成文件的後綴是什麼
C語言源文件後綴名是.c,編譯生成的文件後綴名是.obj,連接後可執行文件的後綴名是.exe。
源文件的後綴僅僅是為了表明該文件中保存的是某種語言的代碼(例如.c文件中保存的是C語言代碼),這樣程序員更加容易區分,編譯器也更加容易識別,它並不會導致該文件的內部格式發生改變。
(4)匯編語言編譯後生成什麼擴展閱讀
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大。
依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
C語言是普適性最強的一種計算機程序編輯語言,它不僅可以發揮出高級編程語言的功用,還具有匯編語言的優點。
㈤ 匯編語言編譯後為什麼不能生成HEX文件求助。
有
800H
位元組的限制,是沒有破解。
在你的文件夾中,找找系列號,填上,即可。
㈥ 19.匯編語言源程序經過MASM匯編後最終生成的文件是……………………( )
匯編語言程序編譯有兩個步驟:
編譯階段,生成OBJ文件
鏈接階段,生成最終的文件一般為exe或者靜態庫的形式.lib,DOS下還有一種COM文件,WINDOWS下面還可能生成dll文件
㈦ 匯編語言編譯後生成什麼格式文件
看你用什麼
軟體編譯。
可以BIN,也可以HEX
。也可以同時生成
2
種格式。
㈧ 匯編語言,編譯後為什麼不能正確形成目標文件
如果沒有錯誤、報警,那麼編譯後應該可以生成OBJ文件,連接後生成目標代碼,或者是HEX文件,或者是BIN文件。
㈨ C++程序進行編譯後會生成C語言代碼還是匯編代碼
不是匯編輸出,更不是機器代碼,而是鏈接器輸出
當然不是機器代碼,否則這個程序就可以在無操作系統環境下跑,或是在windows下編譯出的exe能夠在unix上跑,這當然是不對的。
(當然有直接生成機器碼的編譯器,不過不是我們常見的)
實際上編譯出的程序是操作系統相關的,那是因為不同的操作系統的函數庫是不相同的。編譯器就是將程序與操作系統的函數庫鏈接(比如屏幕的顯示,鍵盤的輸入等)。當然只會有少量機器碼。
㈩ 編譯程序和解釋程序,匯編程序有什麼區別
首先,匯編語言是一種語言,一種低級語言,和c,c++,vb......是一樣的,和編譯、解釋不是一個概念;
關於解釋程序
和編譯程序的解釋和關系如下:
a、解釋程序
所謂解釋程序是高級語言翻譯程序的一種,它將源語言(如basic)書寫的源程序作為輸入,解釋一句後就提交計算機執行一句,並不形成目標程序。就像外語翻譯中的「口譯」一樣,說一句翻一句,不產生全文的翻譯文本。這種工作方式非常適合於人通過終端設備與計算機會話,如在終端上打一條命令或語句,解釋程序就立即將此語句解釋成一條或幾條指令並提交硬體立即執行且將執行結果反映到終端,從終端把命令打入後,就能立即得到計算結果。這的確是很方便的,很適合於一些小型機的計算問題。但解釋程序執行速度很慢,例如源程序中出現循環,則解釋程序也重復地解釋並提交執行這一組語句,這就造成很大浪費。
b、編譯程序
這是一類很重要的語言處理程序,它把高級語言(如fortran、cobol、pascal、c等)源程序作為輸入,進行翻譯轉換,產生出機器語言的目標程序,然後再讓計算機去執行這個目標程序,得到計算結果。
編譯程序工作時,先分析,後綜合,從而得到目標程序。所謂分析,是指詞法分析和語法分析;所謂綜合是指代碼優化,存儲分配和代碼生成。為了完成這些分析綜合任務,編譯程序採用對源程序進行多次掃描的辦法,每次掃描集中完成一項或幾項任務,也有一項任務分散到幾次掃描去完成的。下面舉一個四遍掃描的例子:第一遍掃描做詞法分析;第二遍掃描做語法分析;第三遍掃描做代碼優化和存儲分配;第四遍掃描做代碼生成。
值得一提的是,大多數的編譯程序直接產生機器語言的目標代碼,形成可執行的目標文件,但也有的編譯程序則先產生匯編語言一級的符號代碼文件,然後再調用匯編程序進行翻譯加工處理,最後產生可執行的機器語言目標文件。
在實際應用中,對於需要經常使用的有大量計算的大型題目,採用招待速度較快的編譯型的高級語言較好,雖然編譯過程本身較為復雜,但一旦形成目標文件,以後可多次使用。相反,對於小型題目或計算簡單不太費機時的題目,則多選用解釋型的會話式高級語言,如basic,這樣可以大大縮短編程及調試的時間。