MOV AX, 2000H
MOV DS, AX
MOV ES, AX ;
MOV SI, 2A10H ;
MOV DI, 2A00H ;
CLD
MOV CX, 3 ;
L: MOV AL, [DI]
MOVSB
DEC SI
MOV [SI], AL ;
INC SI
LOOP L ;
MOV AH, 4CH
INT 21H ;
; 设置 AX 寄存器为 2000H,表示数据段基地址
MOV AX, 2000H
; 将 AX 的值赋给 DS,ES 寄存器,表示两者的指针都指向基地址
MOV DS, AX
MOV ES, AX
; 将 SI 寄存器设置为指向偏移地址为 2A10H 的地址
MOV SI, 2A10H
; 将 DI 寄存器设置为指向偏移地址为 2A00H 的地址
MOV DI, 2A00H
; 清除方向标志位(DF),保证 MOVSB 向前拷贝字符串
CLD
; 设置 CX 寄存器的初值为 3,表示要拷贝 3 个字节
MOV CX, 3
; 使用 LOOP 指令实现循环操作,每次循环拷贝一个字节
L: MOV AL, [DI] ; 将 DI 指向的地址处的值赋给 AL
MOVSB ; 将 AL 中的值拷贝到 ES:DI 所指向的地址中
DEC SI ; 将 SI 寄存器的值减 1,指向下一个地址
MOV [SI], AL ; 将 AL 中的值存入 SI 指向的地址中
INC SI ; 将 SI 指向下一个地址
LOOP L ; 若 CX 寄存器不为 0,则进行下一轮循环
; 将 AH 的值设为 4CH,表示要结束程序运行
MOV AH, 4CH
; 使用 INT 21H 触发 4CH 中断服务程序,结束程序运行
INT 21H