主题:[讨论]那位汇编高手帮我解答一下这道题,太谢谢了,我都做一星期了,还是没运行出来
stare
[专家分:0] 发布于 2007-06-01 19:08:00
从STRIN+1单元起有一个字符串,串长在STRIN单元中。另在NUMB单元中有一数N.要求在字符串第N个字符后插入一个字符‘?’。若N大于串长则不插入。
回复列表 (共1个回复)
沙发
塞北江南 [专家分:1350] 发布于 2007-06-04 12:26:00
; 从STRIN+1单元起有一个字符串,串长在STRIN单元中。另在NUMB单元中有一数N.
;要求在字符串第N个字符后插入一个字符‘?’。若N大于串长则不插入。
DATA SEGMENT
strin db 26,'ABCDEFGHIJKLMNOPQRSTUVWXYZ',' ',13,10,'$'
numb db 5
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA ,ES:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV DX,OFFSET STRIN+1
MOV AH,9
INT 21H
MOV CX,0
MOV CL,NUMB
MOV BX,0
MOV BL,STRIN
CMP CL, BL
JA EXIT
LEA DI,STRIN[BX+1]
LEA SI,STRIN[BX]
SUB BX,CX
MOV CX,BX
STD
REP MOVSB
MOV BL,NUMB
MOV BH,0
MOV STRIN[BX+1],'?'
EXIT:
MOV DX,OFFSET STRIN+1
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
显示结果为:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDE?FGHIJKLMNOPQRSTUVWXYZ
我来回复