導航:首頁 > 源碼編譯 > 為什麼匯編編譯時沒錯

為什麼匯編編譯時沒錯

發布時間:2024-12-04 17:15:13

1. 匯編就連Hello World都沒有輸出結果

肯定兩點:1.你的程序代碼沒有錯誤
2.RadASM、MASM、MASMPlus這些編譯工具也沒有錯誤
所以得出結論,錯誤在你。你對工具的用法不對。建議你到dos操作系統下去調試,用masm 5.0版。如果你沒有,可以向我要。

2. C語言中函數的地址在編譯時就分配好了,為什麼不會產生地址沖突運行時剛好那個地址有別的程序在用

函數的具體武理地址不是編譯的時候分配的,是運行的時候由系統分配的!如果你看一下生成的匯編代碼你就會發現進入函數時的操作是將返回地址壓棧後通過CALL跳轉到函數開頭處執行,壓棧的函數地址都是偏移量,實際地址在運行時通過基址加減偏移量得出。另外通常程序的內存空間是專用的,兩個程序的空間互不沖突,普通用戶程序不可以訪問其他程序的內存空間!

3. 我在KEIL用匯編寫的,編譯成功了,但是在子文件顯示的是打叉的,為什麼

#include<reg51.h> 類似這樣的子文件的名字寫錯,編譯軟體內搜閉根本沒有這個文件,所以打錯號。世慶裂但是你的主程序是跑的通差高的,所以依然可以編譯。

4. 為什麼匯編語言編出來的程序要比高級語言編出來的執行效率高

這個沒有一定的說法,取決於編譯器的聰明程度。
一般的語言,如C語言是首先將C語言編譯為匯編,然後匯編轉為機器碼。而用匯編的寫則是直接由匯編到機器碼。那麼這兩者的速度差異取決於編譯器在編譯的時候產生的匯編碼是否比程序員手寫的更為高效和快速了。
早期的時候編譯器很差,產生的匯編碼沒有程序員手工寫的高效,而現在編譯器大大的聰明了,所以這兩者的速度是很難講的。
不過大部分情況下,編譯器翻譯的都要差,所以速度沒有手工寫的匯編碼快。加上JAVA、c#語言等先要轉成一個中間語言,再翻譯成匯編碼,這個就更差了。

閱讀全文

與為什麼匯編編譯時沒錯相關的資料

熱點內容
命令式介面 瀏覽:399
電腦伺服器域名地址怎麼查 瀏覽:340
什麼行業要用編程 瀏覽:297
三洋立風櫃壓縮機 瀏覽:296
微拍app為什麼下載不了了 瀏覽:257
非常好的期貨5分鍾公式源碼 瀏覽:4
linuxcentos7安裝 瀏覽:691
華為網盤文件夾加密 瀏覽:74
安卓手機什麼真人游戲好玩 瀏覽:772
崑山加密軟體需求 瀏覽:270
蘋果照片壓縮包怎麼打開 瀏覽:796
檢測溫濕度和二氧化碳的單片機 瀏覽:964
安卓手機雨滴怎麼隱藏 瀏覽:587
pdf文件轉換器word 瀏覽:987
vscodepython模塊方法 瀏覽:344
如何知道伺服器有什麼漏洞 瀏覽:902
java電商訂單支付源碼 瀏覽:102
android手機滑鼠 瀏覽:465
php支付項目經驗 瀏覽:931
中國人民銀行在哪裡下載app 瀏覽:561