2012-12-06 44 views
2

我是新來的彙編語言,這個問題出現在我腦海裏:哪個更好的解決方案來構造我的代碼,宏或過程? 雖然包含在宏中的代碼只是複製到所需的部分,並允許執行代碼而沒有代價高昂的跳轉,但它確實會添加必須在程序執行時加載的額外指令。 另外,在過程中,雖然它減少了需要在內存中加載的代碼,但它也會增加昂貴的跳轉,從一段鱈魚到另一段鱈魚。 哪一個更好?宏或程序?彙編語言:宏vs程序

+4

經驗法則:用於小塊代碼的宏,用於大塊的程序。 –

+1

與宏或C或其他語言中的函數沒有什麼不同。與裝配無關。 –

回答

2

一般來說,你應該使用程序。程序幫助組織你的代碼,可以使它更容易調試並避免重複相同的代碼。爲較小的任務創建常用語法時可以使用宏,使代碼更易於閱讀。

當然,如果您真的關心性能,而不關心代碼的大小,那麼您可以擴展這種通用方法,以支持更多的宏使用。

最後,你必須看看每個特定的情況。但我可以告訴你,我已經在過度使用的宏之前繼承了代碼。它不僅複製了更多的代碼,而且花了很長時間才弄清楚源代碼,因爲我必須追蹤所有這些宏定義並找出它們實際上在做什麼。

0

通常,程序使您的代碼比宏更容易閱讀,但請記住有跳轉成本。最重要的提示是這個;如果它只有一小塊代碼(即你只想在代碼體內完成一兩件事情),那就使用一個宏,因爲你使用代碼做的事情不值得花費跳轉/過程調用。然而,如果你正在編寫大量的代碼(即你在代碼體內做了很多事情),那麼在這種情況下跳過的代價非常小。