58 lines
1.1 KiB
NASM
58 lines
1.1 KiB
NASM
; 实验七-加强-3: 字符串连接程序
|
|
; 功能: 将两个字符串连接成一个字符串
|
|
|
|
DATAS SEGMENT
|
|
STRING1 DB 'Hello, ', 0 ; 第一个字符串
|
|
STRING2 DB 'World!', 0 ; 第二个字符串
|
|
RESULT DB 30 DUP(?) ; 结果字符串缓冲区
|
|
DATAS ENDS
|
|
|
|
STACKS SEGMENT
|
|
DB 64 DUP(?)
|
|
STACKS ENDS
|
|
|
|
CODES SEGMENT
|
|
ASSUME CS:CODES, DS:DATAS, SS:STACKS
|
|
|
|
START:
|
|
MOV AX, DATAS
|
|
MOV DS, AX
|
|
|
|
LEA SI, STRING1 ; SI指向第一个字符串
|
|
LEA DI, RESULT ; DI指向结果缓冲区
|
|
|
|
; 复制第一个字符串
|
|
COPY_S1:
|
|
MOV AL, [SI]
|
|
MOV [DI], AL
|
|
CMP AL, 0
|
|
JE COPY_S1_DONE
|
|
INC SI
|
|
INC DI
|
|
JMP COPY_S1
|
|
|
|
COPY_S1_DONE:
|
|
; 复制第二个字符串
|
|
LEA SI, STRING2 ; SI指向第二个字符串
|
|
|
|
COPY_S2:
|
|
MOV AL, [SI]
|
|
MOV [DI], AL
|
|
CMP AL, 0
|
|
JE COPY_S2_DONE
|
|
INC SI
|
|
INC DI
|
|
JMP COPY_S2
|
|
|
|
COPY_S2_DONE:
|
|
; 显示结果字符串
|
|
LEA DX, RESULT
|
|
MOV AH, 09H
|
|
INT 21H
|
|
|
|
; 程序结束
|
|
MOV AH, 4CH
|
|
INT 21H
|
|
|
|
CODES ENDS
|
|
END START |