汇编语言怎么实现一个字符串的输入与输出
4个回答
展开全部
汇编语言实现一个字符串的输入与输出,可以调用DOS功能中断完成。
示例程序如下:
;汇编语言输入一串字符串,可以调用DOS功能中断INT 21H的06H功能。
;程序功能:输入一串字符,以回车符结束,输入字符串最大长度200字符;
; 输入结束在下一行输出此字符串。
data segment
str db 201 dup (0dh)
data ends
code segment
assume cs:code,ds:data
main proc far
start:
mov ax,data
mov ds,ax
lea si,str
mov cx,200
inpstr: mov ah,06h
int 21h
jnz inpstr;无字符可读
mov [si],a1
inc si
xor al,0dh
jz endinp
loop inpstr
endinp: mov al,0dh
mov [si],a1
mov dl,0ah;回车换行
mov ah,02h
int 21h
mov dl,0dh
mov ah,02h
int 21h
lea si,str;输出字符串
output: mov dl,[si]
cmp dl,0dh
jz endout;已到字符串尾
mov ah,02h
int 21h
inc si
jmp output
endout: mov ah,4ch
int 21h
ret
main endp
code ends
end start
示例程序如下:
;汇编语言输入一串字符串,可以调用DOS功能中断INT 21H的06H功能。
;程序功能:输入一串字符,以回车符结束,输入字符串最大长度200字符;
; 输入结束在下一行输出此字符串。
data segment
str db 201 dup (0dh)
data ends
code segment
assume cs:code,ds:data
main proc far
start:
mov ax,data
mov ds,ax
lea si,str
mov cx,200
inpstr: mov ah,06h
int 21h
jnz inpstr;无字符可读
mov [si],a1
inc si
xor al,0dh
jz endinp
loop inpstr
endinp: mov al,0dh
mov [si],a1
mov dl,0ah;回车换行
mov ah,02h
int 21h
mov dl,0dh
mov ah,02h
int 21h
lea si,str;输出字符串
output: mov dl,[si]
cmp dl,0dh
jz endout;已到字符串尾
mov ah,02h
int 21h
inc si
jmp output
endout: mov ah,4ch
int 21h
ret
main endp
code ends
end start
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输入:
DATA SEGMENT
BUFF DB 100
DB ?
DB 100 DUP(?)
DATA ENDS
MOV AX,DATA
MOV DS,AX
LEA DX,BUFF
MOV AH,0AH
INT 21H
输出:HELLO
MES DB 'HELLO $'
MOV AX,DATA
MOV DS,AX
LEA DX,MES
MOV AH,9
INT 21H
DATA SEGMENT
BUFF DB 100
DB ?
DB 100 DUP(?)
DATA ENDS
MOV AX,DATA
MOV DS,AX
LEA DX,BUFF
MOV AH,0AH
INT 21H
输出:HELLO
MES DB 'HELLO $'
MOV AX,DATA
MOV DS,AX
LEA DX,MES
MOV AH,9
INT 21H
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用21号中断的10号功能输入。。9号功能输出。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mov ax 0Ah
int 21h
mov ax 09h
int 21h
int 21h
mov ax 09h
int 21h
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询