2. Examples

2.1. Compare String

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
;PROGRAM TITLE GOES HERE--Compare string
;**********************************************************
datarea segment			;define data segment
string1	db	'Move the cursor backword.'
string2	db	'Move the cursor backword.'
;
mess1	db	'Match.',13,10,'$'
mess2	db	'No Match!',13,10,'$'
datarea ends
;*********************************************************
prognam segment			;define code segment
;---------------------------------------------------------
main	proc	far

	assume cs:prognam,ds:datarea,es:datarea

start:				;starting execution address

;set up	stack for return
	push	ds		;save old data segment
	sub	ax,ax		;put zero in AX
	push	ax		;save it on stack

;set DS register to current data segment
	mov	ax,datarea	;datarea segment addr
	mov	ds,ax		; into DS register
	mov	es,ax		; into ES register
;MAIN PART OF PROGRAM GOES HERE
	lea	si,string1
	lea	di,string2
	cld
	mov	cx,25
	repz	cmpsb
	jz	match
	lea	dx,mess2
	jmp	short disp
match:
	lea	dx,mess1
disp:
	mov	ah,09
	int	21h
	ret			;return to DOS

main	endp			;end of main part of program
;----------------------------------------------------------
prognam ends			;end of code segment
;**********************************************************
	end	start		;end assembly