0

我对组装还很陌生,所以如果这个问题太含糊而无法回答,或者我是否需要包含更多信息,请告诉我。

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

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

4

1 回答 1

0

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

至于保留其他寄存器的值 - 这将取决于您选择如何显示您的输出。int 10h AX=0Ah我上面提到的服务需要使用AH, AH,BH和寄存器 - 要使用此服务,您必须将值从,BL和寄存器移到其他地方 - 可能通过移动到其他寄存器,将它们存储到特定的内存位置,或者通过设置向上堆栈并ing,然后在显示您的值后将值返回到寄存器中。CXEAXEBXECXPUSHPOP

于 2013-03-09T05:13:46.443 回答