簡體   English   中英

如何在匯編程序中使用C庫?

[英]How do I use C libraries in assembler?

我想知道如何在匯編程序中編寫文本編輯器。 但是現代操作系統需要C庫,特別是它們的窗口系統。 我找到了這個頁面 ,這對我幫助很大。

但我想知道是否有我應該知道的細節。 我知道有足夠的匯編程序來編寫將使用GTK +在Linux中使用Windows的程序,但我希望能夠理解我要發送給函數的內容,使其成為有效的輸入,以便更容易使用所有C庫。 對於C和x86匯編程序之間的接口,我知道可以從這個頁面學到什么,而其他的東西。

學習如何從匯編程序調用C的最有指導性的方法之一是:

  1. 編寫一個調用感興趣的C函數的C程序
  2. 編譯它,看看匯編列表( gcc -S

這種方法可以通過從已知的工作開始進行實驗。 您可以更改C源並查看生成的代碼如何更改,您可以從生成的代碼開始並自行修改。

  1. 推送堆棧上的參數
  2. 調用該函數
  3. 清除堆棧

您在問題中的鏈接顯示了所有這些步驟。

操作系統可以定義調用標准(它必須定義調用系統調用的標准),在這種情況下,您只需找到文檔的位置並仔細閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM