




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
主程序代码的书写格式DOS系统功能调用简介1.带回显的字符输入并识别Ctrl-C键 功能号:1 返回参数:AL=输入字符的ASCII值 说明:等待从标准输入设备(通常为键盘)输入一个字符,把接收到的字符的ASCII值送给AL,并显示到显示器的当前光标位置。该功能识别Ctrl-C键并做相应处理。 例.输入一个字符到CHAR变量中。 CHAR DB ? MOV AH,1 INT21H MOV CHAR,AL 从此例中可以看出使用DOS系统功能调用比使用BIOS中断更方便,因为它的功能更强。1号功能在输入的同时还显示到了屏幕上,并且适当处理光标。另外它还能够识别Ctrl-C键。但使用该功能得不到字符的扫描码。 2.输出一个字符 功能号:2 调用参数:DL=字符的ASCII值 说明:该输出功能使光标跟随移动。 例.输出一个字符Y。 MOVAH,2 MOVDL,’Y’ INT21H3.输入字符串 功能号:0AH 调用参数:DS:DX指向自定义的输入缓冲区首地址 功能:从标准输入设备(例如键盘)输入一串字符到用户定义的缓冲区,直到按下Enter键为止。在接收的同时显示到屏幕上,并且识别Ctrl-C键,也处理DOS编辑键。 说明:自定义的输入缓冲区应是字节型,其格式如图所示。第一个字节是用户自定义的缓冲区最大长度,以字节计数。第二个字节是实际输入的字符个数,这个字节由系统自动计数并回填,计数值不包括最后一个回车键,用户程序只需要为该字节预留空间即可。从第三个字节开始存放输入的字符串,每个字符占用一个字节,内容为该字符的ASCII值,输入以回车键结束,输入字符的个数可以少于缓冲区长度。内容例.定义60个字符的缓冲区,并输入一串字符。 BUFFER DB60 ;定义缓冲区长度 DB? DB60DUP(?) ;设DS已是BUFFER的段基址 MOVAH,0AH ;接收一串字符 LEADX,BUFFER INT21H 当执行INT21H指令时,便等待从键盘输入字符直到按下回车键结束。在输入后经常需要把实际输入的字符个数送给CX寄存器,以便后续处理。这可以用以下程序片段实现。注意不能把第二个字节的内容直接送给CX,这是初学者经常犯的错误。 MOV CL,BUFFER+1;实际输入字符数送CX XOR CH,CH 把输入的第一个字符送给AL寄存器的方法是: MOVAL,BUFFER+24.输出字符串 功能号:9 调用参数:DS:DX指向要输出的以$结尾的字符串首地址 功能:输出字符串到标准输出设备 说明:要输出的字符串必须以$结束 例. PRINT DB’Toinput:’,’$’ ;以$结尾的要输出的字符串 ;设DS已指向PRINT的段基址 MOV AH,9 LEA DX,PRINT INT 21H ;输出字符串“Toinput:”到显示器

my****25
实名认证
内容提供者


最近下载