回 帖 发 新 帖 刷新版面

主题:输出一个字符串?

请问一下,用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个回复)

沙发

.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
 

板凳

那个当然有用呀,先让用户输入一个字符串!你说的用lea dx,buffer 和mov dx, offset buffer 一样!到底如何改呢,才能实现用户输入一个字符串然后又让它输出呢?(用DOS中断)

3 楼

很简单,用户输入一个字符串结束后,在其后加一个“$”,在输出,这不就行了!!!

4 楼

楼主原文那样写,肯定不正确的!!

5 楼

请问如何实现呢,你这么肯定不对如何实现呢请教!

6 楼

我在上面已经说了,可在输入的字符串后加一个$,然后再输出
因为dos 21 09中断,输出一个字符串是一$为结束标志的,也就是说,
当遇到$时,字符串输出结束
很显然,通过0a中断用户输入一个字符串时,一般没有$的,这样需要我们
在程序中作处理,加上$

我来回复

您尚未登录,请登录后再回复。点此登录或注册