汇编实验 7 串指令程序设计

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章