汇编字符串输入输出问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 20:06:16
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