簡體   English   中英

如何在我的匯編程序中打印數字

[英]How can I print numbers in my assembly program

我的匯編程序有問題。 我的匯編編譯器是 NASM。 源和輸出在這張圖片中:

在此處輸入圖片說明

問題是我無法使用extern C函數printf()從計算中打印數字。 我該怎么做?

輸出應該是“Ergebnis: 8”,但它不正確。

NASM 文檔中指出NASM Requires Square Brackets For Memory References 當你寫不帶括號的標簽名稱時, NASM給出它的內存地址(或有時稱為偏移量)。 因此, mov eax, val_1表示eax寄存器獲取val_1的偏移量。 當你add eax, val_2val_2偏移量被添加到val_1偏移量,你會得到你看到的結果。

改寫:

mov eax, [val_1]
add eax, [val_2]

你應該在 eax 中得到8

PS 看來你剛剛從MASMTASM切換到NASM 像您這樣的切換台有很多指南。 例如在這里這里看到不錯的教程。

暫無
暫無

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

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