您的位置:首页 > 其它

将键盘输入的字符串送到用户自定义的数据缓存区中并输出

2015-11-04 18:35 405 查看
从键盘输入到缓冲区需要调用dos21h的0Ah号功能,该功能的使用方法如下:

定义一个缓冲区,设定输入字符为个数为n个,则缓冲区大小为n+2。缓冲区的第一个字节存放缓冲区的长度,所以这个要求输入的字符不能大于255个,最后一个应该留给回车字符。第一个字符存放实际输入字符的长度,第三个字节开始存放输入的字符串。

将输入字符串显示到屏幕上,需要调用09h号功能,该功能以DS:DX为显示字符串的内存中首地址。以'$'符号作为字符串显示结束标志。然后光标右移。

下面是一个实例汇编程序:

dataseg segment

charbuf db 10

db ?

string db 10 dup(?)

enter db 0Dh,0Ah,'$'

dataseg ends

stackseg segment para stack 'stack'

db 50 dup(?)

stackseg ends

codeseg segment

assume ds:dataseg,cs:codeseg,ss:stackseg

start:

mov ax,dataseg

mov ds,ax ; set the code segment

mov dx,offset charbuf

mov ah,0ah

int 21h

mov dl,charbuf+1

cmp dl,9

ja next ; the buf is full

mov bx,offset string

mov dh,0

add bx,dx

mov byte ptr[bx],'$'

next:

mov dx,offset enter

mov ah,09h

int 21h

mov dx,offset string

mov ah,09h

int 21h

mov dx,offset enter

mov ah,09h

int 21h

mov dl,[charbuf+1]

or dl,30h

mov ah,2

int 21h

mov ah,4ch

int 21h

codeseg ends

end start

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: