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