汇编语言中的"MOV AH,4CH"是什么意思?

Sha*_*hid 3 assembly dos instructions x86-16

大多数汇编代码通过以下指令终止

MOV AH, 4CH
INT 21H
Run Code Online (Sandbox Code Playgroud)

"MOV AH,4CH"是什么意思?

fuz*_*fuz 8

DOS中断int 21/4ChEXIT - TERMINATE WITH RETURN CODE,其内容al用作返回码并终止进程.该文档附带以下注释:

除非进程是其自己的父进程(请参阅AH = 26h时的#01378 [偏移16h]),否则将关闭所有打开的文件,并释放属于该进程的所有内存.在调用此函数之前,应删除所有网络文件锁


Mik*_*kis 7

MOV AH, 4CH表示将十六进制值存储(或“移动”)4Cregister 中 AH

(请注意,动词“移动”在历史上使用过,但它是一个非常不幸的动词选择,因为它意味着被移动的任何东西都不再存在于其旧位置,现在只能在其新位置中找到,而在现实中所有“移动”指令实际上都在复制数据。)

INT 21H表示调用由十六进制数标识的中断21

显然,某些操作系统(最有可能是 MS-DOS,或者现在更可能是模拟 MS-DOS 的某些操作系统)捕获调用以中断 21h 并执行一些由 register 值标识的操作系统相关功能AH

MS-DOS 中,调用中断 21h while AH= 4Ch 会导致当前进程终止并使用 register 的值AL作为进程的退出代码。