汇编语言怎么实现一个字符串的输入与输出
答案:4 悬赏:40 手机版
解决时间 2021-12-02 00:32
- 提问者网友:杀手的诗
- 2021-12-01 02:04
汇编语言怎么实现一个字符串的输入与输出
最佳答案
- 五星知识达人网友:蓝房子
- 2021-12-01 03:08
汇编语言实现一个字符串的输入与输出,可以调用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
全部回答
- 1楼网友:忘川信使
- 2021-12-01 05:05
mov ax 0Ah
int 21h
mov ax 09h
int 21h
int 21h
mov ax 09h
int 21h
- 2楼网友:春色三分
- 2021-12-01 04:43
输入:
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
- 3楼网友:末日狂欢
- 2021-12-01 04:06
用21号中断的10号功能输入。。9号功能输出。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯