关于mov ax,4c00h;int 21h问题

mic47 2011-03-30 09:58:52
这两条指令是返回语句,书上说al=0是返回值,问一下,返回0是程序执行成功吗?那是否可以返回其他值呢?什么时候会返回其他值?如果我把al赋成其他值,会怎么样呢?
不好意思,又要大家帮忙解决撒
...全文
1128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2011-03-30
  • 打赏
  • 举报
回复
这个返回码,还是有些用处的。比如在批处理里可以通过 ERRORLEVEL 来进行适当的后续处理;nmake 程序,也是对 ml 及 link 的返回代码来判断编译和链接是否成功。
masmaster 2011-03-30
  • 打赏
  • 举报
回复
AL=返回的代码,0表示成功返回。实际上在执行此指令的时候, 对al并无要求。也即,mov ah,4ch就可以啦, 甭管al是什么
mic47 2011-03-30
  • 打赏
  • 举报
回复
结贴。谢谢
shzhfu 2011-03-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mic47 的回复:]
麻烦请教了,这些批处理命令是用什么程序语言写的,我看着挺牛的,想研究下。另外int 21h的2号中断是显示字符啊,即显示0d,怎么就换行了呢?
……
[/Quote]

批处理是一个文本文件,扩展名必须是bat,它是在DOS(即“命令提示符”)下用的,最简单的就是把经常重复执行的若干条命令放在其中(每行一条),以后执行批处理文件即可。

0DH是回车的ASCII值,0AH是换行的ASCII码。
mic47 2011-03-30
  • 打赏
  • 举报
回复
麻烦请教了,这些批处理命令是用什么程序语言写的,我看着挺牛的,想研究下。另外int 21h的2号中断是显示字符啊,即显示0d,怎么就换行了呢?
[Quote=引用 3 楼 shzhfu 的回复:]
DOS下一个菜单选择程序:

Assembly code

data segment
m db ' 1. display A',0dh,0ah
db ' 2. display B',0dh,0ah
db 'other. display C',0dh,0ah
db 'Please choise:$'
data ends
code segment
……
[/Quote]
shzhfu 2011-03-30
  • 打赏
  • 举报
回复
DOS下一个菜单选择程序:

data segment
m db ' 1. display A',0dh,0ah
db ' 2. display B',0dh,0ah
db 'other. display C',0dh,0ah
db 'Please choise:$'
data ends
code segment
assume cs:code,ds:data
begin:
mov ax,data
mov ds,ax
mov dx,offset m
mov ah,9
int 21h ;显示提示信息
mov ah,1
int 21h ;键盘输入
sub al,30h ;转成数字
push ax ;暂存改数字
mov ah,2
mov dl,0dh
int 21h ;回车
mov dl,0ah
int 21h ;换行
int 21h ;再换一行
pop ax ;恢复选择的数字
mov ah,4ch ;带着所选数字返回
int 21h
code ends
end begin




假设前面的程序编译成choice.exe,将下面这段放在一个批处理文件(比如test.bat)中:

echo off
call choice.exe
if errorlevel 3 goto cc
if errorlevel 2 goto bb
echo "Here is display A."

goto endbat

:bb
echo "Here is display B."
goto endbat

:cc
echo "Here is display C."
goto endbat

:endbat


然后在命令提示符下运行test.

D:\masm5>test
D:\masm5>echo off
1. display A
2. display B
other. display C
Please choise:2
Here is B.

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧