Files
Operating-System/Experiment/asm-exp/实验七/实验七-1_字符串复制.asm
2026-06-25 00:09:09 +08:00

45 lines
992 B
NASM
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
; 实验七-1: 字符串复制程序 - 使用REP MOVSB
; 功能: 将源字符串复制到目标字符串
DATAS SEGMENT
SOURCE DB 'Hello, Assembly!', 0 ; 源字符串以0结尾
DEST DB 20 DUP(?) ; 目标字符串缓冲区
DEST_END DB 0 ; 目标字符串结束标记
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
MOV ES, AX ; 设置ES为同一数据段
LEA SI, SOURCE ; SI指向源字符串
LEA DI, DEST ; DI指向目标字符串
; 计算源字符串长度
MOV CX, 0
COUNT_LOOP:
CMP BYTE PTR [SI + CX], 0
JE COPY_START
INC CX
JMP COUNT_LOOP
COPY_START:
; 使用REP MOVSB复制字符串
REP MOVSB
; 添加字符串结束符
MOV BYTE PTR [DI], 0
; 程序结束
MOV AH, 4CH
INT 21H
CODES ENDS
END START