📄 sl.asm
字号:
DSEG SEGMENT
ORG $+24H
STRG DB 'THIS IS A PROGRAM FOR STRING MOVING'
N EQU $-STRG
BLKS DW STRG
BLKD DW STRG+5
DSEG ENDS
SSEG SEGMENT STACK
DB 80H DUP(0)
SSEG ENDS
CSEG SEGMENT
ASSUME DS:DSEG,SS:SSEG,CS:CSEG
START:MOV AX , DSEG
MOV DS , AX
MOV CX , N ;CX←数据块字节数。
MOV SI , BLKS ;SI指向源数据块首部。
MOV DI , BLKD ;DI指向目的数据块首部。
MOV BX , 1 ;设置SI、DI修正量为1。
CMP SI , DI
JA MOVE ;源数据块首址大于目的数据块首址则转MOVE处。
ADD SI , CX
DEC SI ;SI指向源数据块尾部。
ADD DI , CX;DI指向目的数据块尾部。
DEC DI
NEG BX ;设置SI、DI修正量为-1.
MOVE:MOV AL , [SI]
MOV [DI] , AL
ADD SI , BX
ADD DI ,BX
DEC CX
JNZ MOVE
;CX≠0,即尚未传送完毕,
MOV AH,4CH
INT 21H ;返回DOS.
CSEG ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -