汇编显示一个字符串的程序?

如题所述

DATA
SEGMENT
str
db
'Hello!'
len
equ
$-str
;
len为str所指字符串长度
DATA
ENDS
CODE
SEGMENT
ASSUME
CS:CODE,
DS:DATA
START:
MOV
AX,
DATA
MOV
DS,
AX
MOV
CX,
len
;
CX保存循环次数
LEA
SI,
str
;
字符串首地址送SI
DISPLAY:
MOV
DL,
[SI]
;
依次取str所指字符串中单个字符送DL
CALL
DISP
;
调用显示字符子程序
INC
SI
;
字符串偏移地址加1
LOOP
DISPLAY
MOV
AH,
4CH
INT
21H
;显示字符子程序,入口参数在DL
DISP
PROC
PUSH
AX
MOV
AH,02H
INT
21H
POP
AX
RET
DISP
ENDP
CODE
ENDS
END
START
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-02-11
怎么也不弄点悬赏分
啊,呵呵
输入后回车显示大写字母
DATA
SEGMENT
A
DB
'ENTER
THE
STRING:$'
BUF
DB
100
LEN
DB
?
STR
DB
100
DUP(?)
ZS
db
0dh,0ah
WE
DB
100
DUP('$')
DATA
ENDS
CODE
SEGMENT
MAIN
PROC
FAR
ASSUME
CS:CODE,DS:DATA
START:
PUSH
DS
MOV
AX,0
PUSH
AX
MOV
AX,DATA
MOV
DS,AX
LEA
DX,A
MOV
AH,9H
INT
21H
LEA
DX,BUF
MOV
AH,0AH
INT
21H
mov
cl,len
mov
ch,0
LEA
BX,STR
lea
SI,WE
CONT:
mov
al,0
MOV
AL,[BX]
CMP
AL,'a'
Jb
NEXT
CMP
AL,'z'
JA
NEXT
SUB
AL,32
MOV
[SI],AL
JMP
NEXT2
NEXT:
MOV
[SI],AL
JMP
NEXT2
NEXT2:
INC
BX
INC
SI
LOOP
CONT
MOV
DX,0
LEA
DX,ZS
MOV
AH,9H
INT
21H
RET
MAIN
ENDP
CODE
ENDS
END
START
相似回答