首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >汇编语言中的"MOV AH,4CH“是什么意思?

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

Stack Overflow用户
提问于 2017-03-03 16:19:05
回答 2查看 28.9K关注 0票数 6

大多数汇编代码都由以下指令终止

代码语言:javascript
运行
复制
MOV AH, 4CH
INT 21H

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-03 16:22:03

DOS中断int 21/4Ch是带有返回码的EXIT - TERMINATE,以al的内容作为返回码,进程终止。文档附带以下说明:

除非进程是它自己的父进程(参见AH=26h上的#01378

16h ),否则所有打开的文件都会关闭,属于该进程的所有内存都会被释放。在调用此函数

之前,应删除所有网络文件锁定

票数 9
EN

Stack Overflow用户

发布于 2019-08-18 20:48:59

MOV代码是这样工作的:MOV Value1,Value2

它将Value2放入Value1中。但是你不能在内存中从一个变量移动到另一个变量。您可以像这样使用此代码:

  • 注册到Register
  • Register到内存
  • Memory注册到

您编写的这段代码将4c十六进制(=76十进制)放入ah寄存器。你问我们为什么要这么做?当我们使用中断时,我们总是必须把一些数字(函数的编号)放入一个寄存器中。

ah=4ch int 21h上,程序将终止对操作系统的控制。(结束程序)并且int 21h是dos interrupt.Example:

ah=9h , dx=offset (string + '$') ,int 21h。将字符串写入光标位置。

ah=6hch=开始行,cl=开始列,dh=结束行,dl=结束列,al=行数,bh=属性,int 10h清除定义的区域并在其中写入属性。

代码语言:javascript
运行
复制
ah=2h , dh=row,dl=column,bh=page number , int 10h

提示:显存分为8页(0到7)。我们在这个例子中使用的是0页面。

程序:

代码语言:javascript
运行
复制
datasg segment para 'data'
    msg db 'Hello world$'
datasg ends
codesg segment para 'code'
    example proc far
        assume cs:codesg,ds:datasg    ;lead the assembler to know the segments.
        mov ax,datasg                 ;this is because ds cannot be vaulued directly.
        mov ds,ax                     ;move the data segment offset to its register.
        mov ah,6h
        mov al,25
        mov ch,0
        mov cl,0
        mov dh,24
        mov dl,79
        mov bh,0fh
        int 10h
        mov ah,2h
        mov dh,2
        mov dl,4
        mov bh,0
        int 10h
        mov ah,9h
        mov dx,offset msg
        int 21h
        mov ah,8h
        int 21h
        mov ah,4ch
        int 21h
    example endp
codesg ends
end main
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42573828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档