2个回答
展开全部
下列程序已经调试通过。
;---------------------------------
DATA SEGMENT
MSG1 DB 13, 10, 'Please input a char : ', 13, 10, 13, 10, '$'
DDD1 DB 13, 10, 13, 10
DDD2 DB 81 DUP ('$')
DATA ENDS
;---------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
;---------------------------------
MOV DX, OFFSET MSG1
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.
MOV DI, OFFSET DDD2
LOP:
MOV AH, 1 ;输入字符.
INT 21H
CMP AL, 13
JZ EXIT ;'回车'结束.
MOV [DI], AL
INC DI
CMP DI, OFFSET DDD2 + 80
JZ EXIT ;输入80个字符了,也结束.
JMP LOP ;继续输入.
;---------------------------------
EXIT:
MOV DX, OFFSET DDD1
MOV AH, 9 ;9号功能调用.
INT 21H ;显示输入的字符.
;---------------------------------
MOV AH, 4CH ;程序结束.
INT 21H
;---------------------------------
CODE ENDS
END START
;---------------------------------
;---------------------------------
DATA SEGMENT
MSG1 DB 13, 10, 'Please input a char : ', 13, 10, 13, 10, '$'
DDD1 DB 13, 10, 13, 10
DDD2 DB 81 DUP ('$')
DATA ENDS
;---------------------------------
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
;---------------------------------
MOV DX, OFFSET MSG1
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.
MOV DI, OFFSET DDD2
LOP:
MOV AH, 1 ;输入字符.
INT 21H
CMP AL, 13
JZ EXIT ;'回车'结束.
MOV [DI], AL
INC DI
CMP DI, OFFSET DDD2 + 80
JZ EXIT ;输入80个字符了,也结束.
JMP LOP ;继续输入.
;---------------------------------
EXIT:
MOV DX, OFFSET DDD1
MOV AH, 9 ;9号功能调用.
INT 21H ;显示输入的字符.
;---------------------------------
MOV AH, 4CH ;程序结束.
INT 21H
;---------------------------------
CODE ENDS
END START
;---------------------------------
展开全部
;从键盘输入一字符串,然后下一行显示
.386
data segment use16
buf db 50 ;定义缓冲区
db 0
db 50 dup(0)
crlf db odh,oah,'$' ;回车换行
data ends
stack segment use16 stack
db 200 dup(0)
stack ends
code segment use16
assume ds:data, ss:stack, cs:code
start: mov ax,data
mov ds,ax
lea dx,buf ;输入字符串
mov ah,10
int 21h
lea dx,crlf ;输出换行
mov ah,9
int 21h
mov bl,buf+1
mov bh,0 ;计算字符串实际字符个数
mov byte ptr buf+2[bx], '$' ;在串尾补入'$'
lea dx,buf+2
mov ah,9 ;输出字符串
int 21h
mov ah,4ch
int21h
code ends
end start
.386
data segment use16
buf db 50 ;定义缓冲区
db 0
db 50 dup(0)
crlf db odh,oah,'$' ;回车换行
data ends
stack segment use16 stack
db 200 dup(0)
stack ends
code segment use16
assume ds:data, ss:stack, cs:code
start: mov ax,data
mov ds,ax
lea dx,buf ;输入字符串
mov ah,10
int 21h
lea dx,crlf ;输出换行
mov ah,9
int 21h
mov bl,buf+1
mov bh,0 ;计算字符串实际字符个数
mov byte ptr buf+2[bx], '$' ;在串尾补入'$'
lea dx,buf+2
mov ah,9 ;输出字符串
int 21h
mov ah,4ch
int21h
code ends
end start
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询