中易网

汇编字符串输入输出问题

答案:2  悬赏:60  
解决时间 2021-02-22 20:33
DATA SEGMENT
BUF DB 25 ; 缓冲区长度
ACTHAR DB ? ; 保留单元, 存放输入的实际字符个数
CHAR DB 25 DUP (?) ; 定义25个字节存储空间
DB '$'

DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START:
MOV AX, DATA
MOV DS, AX

MOV DX, OFFSET BUF
MOV AH, 0AH
INT 21H

MOV DX,OFFSET BUF
MOV AH,09H
INT 21H

MOV AX,4C00H
INT 21H

CODE ENDS
END START
这段程序我就是想从键盘输入一段字符串,再输出,但不能实现。请帮我看看哪有问题。另外那个OFFSET是什么?去掉不行吗?
最佳答案
MOV DX,OFFSET BUF
;参数不真确
MOV AH,09H
INT 21H
;下面是完整代码
---------------------------------------------
DATA SEGMENT
BUF DB 25 ; 缓冲区长度
ACTHAR DB ? ; 保留单元, 存放输入的实际字符个数
CHAR DB 25 DUP (?) ; 定义25个字节存储空间
DB '$'

DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START:
MOV AX, DATA
MOV DS, AX

MOV DX, OFFSET BUF
MOV AH, 0AH
INT 21H

CMP AL,0FFH
JZ EXIT

MOV AH,2
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H

MOV DX,OFFSET BUF+2
;MOV DX,OFFSET CHAR

MOV BX,OFFSET ACTHAR
MOV BL,[BX]
ADD BX,DX
MOV BYTE PTR [BX],'$'

MOV AH,09H
INT 21H

EXIT:
MOV AX,4C00H
INT 21H

CODE ENDS
END START
全部回答
dos功能调用0ah号功能,用回车结束字符串的输入,实际输入的字符数不包含回车符。当显示这个字符串的时候,它是正常显示的,前面并没有空格,但遇到回车符时,光标回到本行首列,继而显示后续的00h,而0是非显示字符,显示时一空格代替,故而出现这种情况。 在显示字符串指令的后面加上两条指令: mov ah,1 int 21h 暂停一下,看看光标位置,应该能明白了。 解决办法: mov dx, offset buf mov ah, 0ah int 21h lea si,buf[1] mov bl,[si] xor bh,bh mov byte ptr [si][bx][1],'$'
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如果是犯罪嫌疑人会被警察抓么? 急急 !!
官田凹这个地址在什么地方,我要处理点事
又见湘厨这个地址在什么地方,我要处理点事
有种菜的想法,但不懂产出的菜怎么销售?
他评论我,然后我说,你这是秒回我吗?他又评
谁知道混凝土试块 如何在7天达到C35的强度 ,
西湖十景,香树做的扇子,值得收藏吗?若烧了
请问怎么在EXCLE表格中抬头出现的各个信息能
瑞士旅游买表都有那些品牌啊?
上海免费注册公司的有哪些?
农安县万金塔苇子沟于老四屯儿媳暴打婆婆谁知
南头道一队地址在哪,我要去那里办事
酷派大神note3很快电就冲了正常吗
)( )能被105整除,那么,它的最后两位数是
瓜果蔬菜市场地址在哪,我要去那里办事
推荐资讯
人人美剧里哪些是等级限制的剧
昆明哪里可以买到swatch手表电池?
半步桥/右安门东街(路口)在什么地方啊,我要
请问,我买了港行的xboxone,能用大陆的光盘
电脑端哪些视频软件可以直播浙江卫视?爱奇艺
小学四年级解方程x-28=46
普快2083沈阳到洮南去哪个站坐车?
纵向放坡是什么意思
笔记本如何重装系统win7
山西名吃牛肉水饺手工刀削面地址在哪,我要去
明智广告地址有知道的么?有点事想过去
前段时间躺在床上等一会也睡着了,睡了两个多
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?