📄 luo.txt
字号:
DATA SEGMENT ;数据段
BUFF1 DB 100
DB ?
DB 100 DUP(?)
BUFF2 DB 100
DB ?
DB 100 DUP(?)
DATA ENDS
STACK SEGMENT
ST1 DB 100 DUP(?)
STACK ENDS
CODE SEGMENT ;代码段
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,STACK ;送堆栈段地址
MOV SS,AX
PUSH DX ;返回DOS
MOV AX,0
PUSH AX
MOV AX,DATA ;送数据段地址
MOV DS,AX
MOV DX,OFFSET BUFF1
PUSH DX
MOV AH,0AH ;DOS OAH功能调用,输入字符串
INT 21H
MOV BX,DX
MOV AL,[BX+1] ;取输入字符个数->AL
INC DX
AND AX,00FFH
ADD DX,AX ;使指针指向最后一个字符
MOV BX,DX
MOV BYTE PTR[BX+1],0DH
MOV BYTE PTR[BX+2],0AH
MOV BYTE PTR[BX+3],'$' ;在字符串结尾放入结束标记
POP DX
MOV AH,9
INT 21H
MOV DX,OFFSET BUFF2
PUSH DX
MOV AH,0AH ;DOS OAH功能调用,输入字符串
INT 21H
MOV BX,DX
MOV AL,[BX+1] ;取输入字符个数->AL
INC DX
AND AX,00FFH
ADD DX,AX ;使指针指向最后一个字符
MOV BX,DX
MOV BYTE PTR[BX+3],'$' ;在字符串结尾放入结束标记
POP DX
MOV AH,9
INT 21H
MOV AH,1
INT 21H ;输入指定位置
MOV DX,OFFSET BUFF1
ADD DX,1
PUSH DX
AND AX,00FFH
ADD AX,DX ;指定位置的存储地址
MOV DX,OFFSET BUFF2
INC DX
MOV BX,DX
MOV CL,[BX] ;字符串2的长度
DEC CL ;字符串的实际长度
AND CX,00FFH
POP DX
MOV BP,DX
MOV BX,DS:[BP]
ADD BX,DX ;BX为字符串1最后一个字符的地址
NEXT: MOV DL,[BX]
PUSH BX
ADD BX,CX
MOV BYTE PTR[BX+1],DL
POP BX
DEC BX
CMP BX,AX
JAE NEXT ;BX大于等于AX跳至NEXT
MOV DX,OFFSET BUFF2
ADD DX,2 ;DX指向字符串2的第一个字符
NEXT1: MOV BX,DX
MOV CH,[BX]
MOV BX,AX
MOV BYTE PTR[BX],CH ;把字符串2中的字符插入字符串1的指定位置
INC DX
INC AX
CMP CH,'$'
JNZ NEXT1
MOV DX,OFFSET BUFF1
ADD DX,2
MOV AH,9
INT 21H
MAIN ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -