0
我对程序集相当陌生,因此让我知道这个问题是否太模糊,无法回答,或者是否需要包含更多信息。如何使用NASM(汇编)显示存储在dl寄存器中的值?
基本上,我有一些信息存储在dl
寄存器中。 eax
,ebx
和ecx
寄存器的值也存储在我想保留的值中。如何在不更改其他寄存器的值的情况下将dl
寄存器显示在屏幕上?
我也试过使用int 21h
,但我在使用时遇到了分段错误。
我对程序集相当陌生,因此让我知道这个问题是否太模糊,无法回答,或者是否需要包含更多信息。如何使用NASM(汇编)显示存储在dl寄存器中的值?
基本上,我有一些信息存储在dl
寄存器中。 eax
,ebx
和ecx
寄存器的值也存储在我想保留的值中。如何在不更改其他寄存器的值的情况下将dl
寄存器显示在屏幕上?
我也试过使用int 21h
,但我在使用时遇到了分段错误。
您正在处理的环境将决定如何显示您要显示的内容。 int 21h
中断是DOS服务,因此除非您在DOS环境下工作(例如,在未加载DOS的纯BIOS环境中),否则它们将不可用。如果是这种情况,您应该查看int 10h
video services - 例如int 10h AX=0Ah
。
至于保留其他寄存器的值 - 这将取决于你如何选择显示你的输出。该int 10h AX=0Ah
服务我上面提到需要使用AH
,AH
,BH
,BL
和CX
寄存器 - 要使用这项服务,你必须从EAX
,EBX
和ECX
寄存器迁往别处你的价值 - 也许通过移动到其它寄存器,存储他们到特定的内存位置,或者通过设置堆栈然后POP
将值显示出来后返回到寄存器中。
DOS,Windows,Linux,别的东西? – 2013-03-09 06:11:25