繁体   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