我对组装还很陌生,所以如果这个问题太含糊而无法回答,或者我是否需要包含更多信息,请告诉我。
基本上,我有一些信息存储在dl
寄存器中。、和寄存器也有存储在其中的值eax
,我想保留这些值。如何在不更改其他寄存器值的情况下将寄存器显示到屏幕上?ebx
ecx
dl
我也试过 used int 21h
,但我在使用它时遇到了分段错误。
您正在工作的环境将决定您如何显示您要显示的内容。int 21h
中断是 DOS 服务,因此除非您在 DOS 环境中工作(例如,在没有加载 DOS 的纯 BIOS 环境中),否则这些中断将不可用。如果是这种情况,您应该查看int 10h
视频服务——例如int 10h AX=0Ah
。
至于保留其他寄存器的值 - 这将取决于您选择如何显示您的输出。int 10h AX=0Ah
我上面提到的服务需要使用AH
, AH
,BH
和寄存器 - 要使用此服务,您必须将值从,BL
和寄存器移到其他地方 - 可能通过移动到其他寄存器,将它们存储到特定的内存位置,或者通过设置向上堆栈并ing,然后在显示您的值后将值返回到寄存器中。CX
EAX
EBX
ECX
PUSH
POP