2013-03-09 41 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將值顯示出來後返回到寄存器中。