将键盘输入的字符串送到用户自定义的数据缓存区中并输出
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
定义一个缓冲区,设定输入字符为个数为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
相关文章推荐
- 爬虫入门-基础理论篇(下)
- BZOJ 1261: [SCOI2006]zh_tree( 区间dp )
- java中判断字符串是否为数字的方法
- session用户账号认证(一个用户登陆,踢出前一个用户)
- 深入浅出React(二):React开发神器Webpack
- 【数据结构】单链表的倒置
- ImageView 设置 maxWidth/maxHeight 和 adjustViewBounds
- 爬虫入门-基础理论篇(上)
- Android文件的读写操作
- CSS居中完全解决方案
- springmvc对同名参数处理-我们到底能走多远系列(44)
- asp.net开发中利用jquery来实现滚动下拉标题浮动固定显示
- 深入浅出React(一):React的设计哲学 - 简单之美
- android学习笔记2——Service
- PID控制小车视觉跟踪移动目标
- C# List.Sort()用法
- linux top详解
- 大型网站架构演变和知识体系--转
- xshell
- Ubuntu安装SSH时出现软件包 openssh-server 还没有可供安装的候选者错误