- 20
- 0
- 约1.42千字
- 约 4页
- 2017-06-08 发布于重庆
- 举报
汇编语言字符串输入与输出
字符串输入,字符串输出
DATA SEGMENT
BUF DB 30 DUP $ ;DUP是“$”!!!!!!,无论前面是否已经定义有空间
DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX MOV AH, 0AH LEA DX,BUF INT 21H MOV AH,09H LEA DX,BUF+2; 是BUF+2!!!! INT 21H MOV AH,4CH INT 21H
CODE ENDS END START
运行:
如果加入换行:
DATA SEGMENT
BUF DB 30 DUP $
CRLF DB 0DH,0AH,$;要加上“$”!!!
DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX MOV AH, 0AH LEA DX,BUF INT 21H LEA DX,CRLF;换行!!! MOV AH,09H INT 21H MOV AH,09H LEA DX,BUF+2 INT 21H MOV AH,4CH INT 21H
CODE ENDS END START
结果:
加入提示语句:
DATA SEGMENT
BUF DB 30 DUP $
CRLF DB 0DH,0AH,$
MESS1 DB INPUT THE STRING:,$
MESS2 DB OUTPUT THE STRING:,$ ;”$”必须加在后面!!!! DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA MOV DS,AX MOV AH,09H; 提示语MESS1输出显示!!! LEA DX,MESS1 INT 21H MOV AH, 0AH LEA DX,BUF INT 21H LEA DX,CRLF MOV AH,09H INT 21H LEA DX,MESS2 MOV AH,09H INT 21H MOV AH,09H LEA DX,BUF+2 INT 21H MOV AH,4CH INT 21H
CODE ENDS
小写换大写
data SEGMENT
buf DB 30 DUP $
CRLF DB 0AH,0DH,$ data ENDS
code SEGMENT
ASSUME CS:code,DS:data
start:
MOV AX,data
MOV DS,AX
LEA DX,BUF
MOV AH,0ah
INT 21h
LEA DX, CRLF
MOV AH,09h
INT 21h
LEA SI,BUF
MOV CL,[SI+1]
INC SI X1: INC SI
MOV AL,[SI] CMP AL,61H JB Y1 CMP AL,7AH JA Y1 SUB AL,20H MOV [SI],AL JMP Y1 Y1: DEC CL CMP CL,00h JNE X1
LEA DX,BUF+2
MOV AH,09H
INT 21H
MOV AH,4ch
INT 21h
code ENDS
END start
原创力文档

文档评论(0)