主题:输出一个字符串?
helun
[专家分:40] 发布于 2006-06-02 13:05:00
请问一下,用DOS中断AH=0AH输入一个字符串后能不能用DOS中断AH=09让它输出呢?如果可以,如何输出呢?请指教,如果让你输入的字符串最后一位是$也输不出来字符串(这个你可以试一下,会出现乱码),因为用DOS中断功能输出一个字符串必需最后一位是$,可是不行,请问如何实现呢?还有输出一个字符串的地址放在DX中(输出时),这个地址如何确定下呢?请大家看一下这个程序:
.model small
.data
buffer db 91
db 0
db 91 dup(?)
.code
.startup
mov ah,0ah
mov dx,offset buffer ;还是mov dx,offset buffer+2?
int 21h
mov ah,9
int 21h
.exit 0
end
回复列表 (共6个回复)
沙发
lihaifeng0412 [专家分:2270] 发布于 2006-06-02 13:26:00
.model small
.data
buffer db 91
db 0
db 91 dup(?)
.code
.startup
mov ah,0ah
mov dx,offset buffer ;是mov dx,offset buffer或者lea dx,buffer
int 21h---------这有什么用啊!好像可以去掉
mov ah,9
int 21h
.exit 0
end
板凳
helun [专家分:40] 发布于 2006-06-02 18:24:00
那个当然有用呀,先让用户输入一个字符串!你说的用lea dx,buffer 和mov dx, offset buffer 一样!到底如何改呢,才能实现用户输入一个字符串然后又让它输出呢?(用DOS中断)
3 楼
名无 [专家分:80] 发布于 2006-06-03 04:18:00
很简单,用户输入一个字符串结束后,在其后加一个“$”,在输出,这不就行了!!!
4 楼
名无 [专家分:80] 发布于 2006-06-03 04:20:00
楼主原文那样写,肯定不正确的!!
5 楼
helun [专家分:40] 发布于 2006-06-05 19:47:00
请问如何实现呢,你这么肯定不对如何实现呢请教!
6 楼
名无 [专家分:80] 发布于 2006-06-06 13:30:00
我在上面已经说了,可在输入的字符串后加一个$,然后再输出
因为dos 21 09中断,输出一个字符串是一$为结束标志的,也就是说,
当遇到$时,字符串输出结束
很显然,通过0a中断用户输入一个字符串时,一般没有$的,这样需要我们
在程序中作处理,加上$
我来回复