Assembly “如何写作”;啊";而不是",;";在中断21EMU8086中?

Assembly “如何写作”;啊";而不是",;";在中断21EMU8086中?,assembly,emu8086,Assembly,Emu8086,在汇编程序8086的中断21中,如何使用ah而不是al?您的意思是int21h或int21?int21(int15h)为“” int21h(int33)是其中之一 IIRC emu8086只支持有限的服务和中断子集,所以我想你的意思是int21h(我希望int15h不受emu8086支持) 请注意这些打字错误,它可能会导致您在注意到错误号码之前调试几分钟 调用int#n时寄存器的功能由为该中断安装的处理程序定义。DOS21h服务有几个子功能:您想调用哪个子功能?在ah中通过值定义。这是无法更改的

在汇编程序8086的中断21中,如何使用
ah
而不是
al

您的意思是
int21h
int21
int21(int15h)
为“”

int21h(int33)
是其中之一

IIRC emu8086只支持有限的服务和中断子集,所以我想你的意思是
int21h
(我希望
int15h
不受emu8086支持)

请注意这些打字错误,它可能会导致您在注意到错误号码之前调试几分钟

调用
int#n
时寄存器的功能由为该中断安装的处理程序定义。DOS
21h
服务有几个子功能:您想调用哪个子功能?在
ah
中通过值定义。这是无法更改的,它在DOS代码中是硬连接的

您必须更改调用代码,以按照所需中断处理程序的预期准备寄存器

(当然,也可以提供自己的中断处理程序,然后指定进入哪个寄存器的内容,但创建自己的中断处理程序听起来不像emu8086用户想要做的事情)


示例如何在“字符输出到标准输出”服务中使用
ah
中的值:


你不能。Int 21h在那里需要一个值。好吧,我想你可以创造你自己的中断21小时。如果你敢的话。
mov al,啊
。嗯。
mov   ah,'X'  ; character value in ah
; how to use it with:
; int 21h, ah=2 (Character output), dl = char (as defined by DOS)
mov   dl,ah   ; move character value into dl (before setting ah with 2)
mov   ah,2    ; number of requested "Character output" service
int   21h     ; call the DOS service