Assembly 以下汇编命令中会发生什么情况?
只是预防措施。我完全不懂组装。我唯一的问题是DOS中只有以下命令:Assembly 以下汇编命令中会发生什么情况?,assembly,x86,dos,Assembly,X86,Dos,只是预防措施。我完全不懂组装。我唯一的问题是DOS中只有以下命令: MOV AH, 09 INT 21 MOV AX, 4C01 INT 21 第二个中断是否仍然有参数09表示显示屏,或者AX是否以某种方式改变了这一点?AH和AL分别是AX的高半部和低半部。所以是的,设置AX会改变AH 4C是“退出程序”。您需要搜索,它是这些旧DOS/Windows中断的最终指南 调用将位于DS:DX的以$结尾的字符串输出到控制台 调用将退出程序,返回代码为AL(本例中为01H) 第二次调用不会将A
MOV AH, 09
INT 21
MOV AX, 4C01
INT 21
第二个中断是否仍然有参数
09
表示显示屏,或者AX
是否以某种方式改变了这一点?AH
和AL
分别是AX
的高半部和低半部。所以是的,设置AX
会改变AH
4C
是“退出程序”。您需要搜索,它是这些旧DOS/Windows中断的最终指南
调用将位于DS:DX
的以$
结尾的字符串输出到控制台
调用将退出程序,返回代码为AL
(本例中为01H)
第二次调用不会将AH
设置为09H
,因为AH
只是AX
的上8位。第二个MOV
将AH
设置为4cH
,作为设置AX
的一部分:
更多详细信息(来自):
此寄存器由其他寄存器制成,在英特尔有着悠久的历史,包括:
由ax
和ah
组成李>al
由16位加上eax
中的其他16位组成李>ax
由32位加上rax
中的其他32位组成eax
eax
由eah
和eal
组成(两者都是虚构的,但后者是ax
的别名)
在更高的模式下,这会给我们提供一个超大的超小型寄存器缓存,尽管我不确定成本是多少(毫无疑问,Intel/AMD确实知道成本,而且它可能被认为太贵了)。如果是
MOV AX,4c01
?INT
是中断调用。是的,应该感谢21:LOXY我知道int21是DOS的API调用。我完全不知道ah中的值是如何变化的,INT调用的参数是如何变化的。感谢链接到Ralf的网站惊人列表,现在我必须克服这几个小时对装配的误解。