2013-03-09 33 views
0

我对程序集相当陌生,因此让我知道这个问题是否太模糊,无法回答,或者是否需要包含更多信息。如何使用NASM(汇编)显示存储在dl寄存器中的值?

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

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

+0

DOS,Windows,Linux,别的东西? – 2013-03-09 06:11:25

回答

0

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

至于保留其他寄存器的值 - 这将取决于你如何选择显示你的输出。该int 10h AX=0Ah服务我上面提到需要使用AHAHBHBLCX寄存器 - 要使用这项服务,你必须从EAXEBXECX寄存器迁往别处你的价值 - 也许通过移动到其它寄存器,存储他们到特定的内存位置,或者通过设置堆栈然后POP将值显示出来后返回到寄存器中。