1、編寫程序,實現將內存偏移地址爲 1000H 開始的連續 100 個字節送往偏移地址爲 1050H 開始 的連續 100 個內存單元中。要求使用二種不同的方法(用單一的串操作指令、用帶重複前綴的串操作指令)。
方法一:使用MOVSB指令
DATA SEGMENT
ORG 1000H
X DB 100 DUP('1')
ORG 1050H
Y DB 100 DUP('0')
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,X
LEA DI,Y
MOV CX,100
CLD
AGAIN: MOVSB
DEC CX
JNZ AGAIN
MOV AH,4CH
INT 21H
CODE ENDS
END START
方法二: 使用REP重複前綴指令
DATA SEGMENT
ORG 1000H
X DB 100 DUP(1)
ORG 1050H
Y DB 100 DUP(2)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,X
LEA DI,Y
MOV CX,100
CLD
REP MOVSB
MOV AH,4CH
INT 21H
CODE ENDS
END START
2、編程實現:對 str1 和 str2 兩個字符串進行比較,若兩串相同,給 DL 送 1,否則送-1。
DATA SEGMENT
STR1 DB '123456'
STR2 DB '1234567'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA SI,STR1
LEA DI,STR2
CLD
REPZ CMPSB
JNZ UMAT
MOV DL,1
JMP NEXT
UMAT: MOV DL,-1
NEXT: MOV AH,4CH
INT 21H
CODE ENDS
END START