如何使用NASM(汇编)显示存储在dl寄存器中的值?

时间:2013-03-09 03:46:08

标签: assembly x86 nasm

我对汇编很新,所以请告诉我这个问题是否过于含糊不清,或者我是否需要提供更多信息。

基本上,我在dl寄存器中存储了一些信息。 eaxebxecx寄存器中还存储了我想保留的值。如何在不更改其他寄存器值的情况下将dl寄存器显示在屏幕上?

我也尝试使用int 21h,但在使用时遇到了分段错误。

1 个答案:

答案 0 :(得分:0)

您正在使用的环境将决定如何显示您要显示的内容。 int 21h中断是DOS服务,因此除非您在DOS环境中工作(例如在没有加载DOS的纯BIOS环境中),否则将无法使用。如果是这种情况,您应该查看int 10h video services - 例如int 10h AX=0Ah

至于保留其他寄存器的值 - 这取决于您选择显示输出的方式。我上面提到的int 10h AX=0Ah服务需要使用AHAHBHBLCX注册表 - 才能使用此服务必须将您的值从EAXEBXECX寄存器移到其他位置 - 可能是移动到其他寄存器,将它们存储到特定的内存位置,或者通过设置堆栈和{ {1}},然后在显示您的值后PUSH将值重新输入寄存器。