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