文档详情

汇编语言第6章子程序结构.ppt

发布:2017-05-06约2.51万字共44页下载文档
文本预览下载声明
ch6 常用的DOS系统功能调用 1.单字符输入(1号调用) 2.单字符显示(2号调用) 3.打印输出(5号调用) 4.结束调用(4CH号调用) 5.显示字符串(9号调用) 6.字符串输入(10号调用) 1.单字符输入(1号调用) 格式:MOV AH,1   INT 21H 功能:从键盘输入字符的ASCII码送入寄存器AL中,并送显示器显示。 2.单字符显示(2号调用) 格式:MOV DL,待显示字符的ASCII码   MOV AH,2   INT 21H 功能:将DL寄存器中的字符送显示器显示. 3.打印输出(5号调用) 格式:MOV DL,待打印字符的ASCII码  MOV AH,5  INT 21H 功能:将DL寄存器中的字符送打印机打印。 4.结束调用(4CH号调用) 格式:MOV AH,4CH   INT 21H 功能:终止当前程序并返回调用程序。 5.显示字符串(9号调用) 格式:LEA DX,待显示字符串首偏移地址   MOV AH,9   INT 21H 功能:将当前数据区中以‘$’结尾的字符串送显示器显示。 6.字符串输入(10号调用) 格式:LEA DX,缓冲区首偏移地址 MOV AH,10 INT 21H 功能:从键盘上输入一字符串到用户定义的输入缓冲区中,并送显示器显示。 第六章 作业 6.1 6.2 6.3 6.7 6.8 maxlen db 32 actlen db ? string db 32 dup(?) lea dx , maxlen mov ah,0ah int 21h 说明:缓冲区的第一个字节保存最大字符数,这个最 大字符数由用户程序给出。如果键入的字符数 比此数大,机器发出嘟嘟声。第二个字节存放 实际输入的字节数,这个不是由用户填入的而 由功能A填入的。在这两个字节之后,才是我们 输入的字符串。 6.3 子程序举例 例1:HEXIDEX是一个十六进制数转换成十进制数的程序。要求把从键盘输入的0 — FFFFH的十六进制正数转换为十进制数并在屏幕上显示出来。 Display equ 2h Key equ 1h Doscall equ 21h Hexidec segment Main proc far assume cs:hexidec Start: push ds sub ax,ax push ax call hexidec call crlf call binidec call crlf jmp main ret main endp Crlf proc near mov dl ,0ah mov ah,display int boscall mov dl,0dh mov ah,display int doscall ret crlf endp Hexidec ends end start Hexidec proc near mov bx ,0 Newchar: mov key_in int doscall sub al,30h jl exit cmp al, 10d jl add_to sub al ,27h cmp al,0ah jl exit cmp ah,10h jge exit Add_to: mov cl ,4 shl bx , cl mov ah ,0 add bx,ax
显示全部
相似文档