【正确答案】DATA SEGMENT
STRIN DB 10
DB'ABCDEFGHIJ'
NUMB DB 5
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE,DS: DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET STRIN ;置字符串首址
MOV AL,[SI] ;把字符串长度送入AL
CMP AL,NUMB ;判断AL是否大于NUMB
JB NXT ;不是,转到NXT
LEA DI,STRIN+10 ;置字符串尾指针
MOV CL,STRIN
SUB CL,NUMB ;置计数初值
NEXT: MOV AL,[DI] ;使插入位置后字符向后移动一个位置
XCHG AL,[DI+1]
MOV [DI],AL
DEC D1
DEC CL
JNZ NEXT ;未完,转NEXT
INC DI
MOV BYTE PTR[DI],'?' ;插入'?,
MOV STRIN,11
MOV CX,11
LEA SI,STRIN+1
NXT: MOV DL,[SI] ;显示字符串
MOV AH,02H
INT 21H
INC SI ;调整指针
LOOP NXT ;未完,转到NXT
MOV AH,4CH
INT 21H
CODE ENDS
END START
【答案解析】