ZAS	SEGMENT STACK			;zaciatok zasobnika
	DW	100H DUP(?)
ZAS	ENDS

DATA	SEGMENT						;zaciatok datoveho segmentu
TEXT1	DB	 '1. spracovanie retazca  $'	;definicia retazca
TEXT2	DB	 '2.  novy retazec  $'		;definicia retazca
TEXT3	DB	 '3. koniec $'			;definicia retazca
cisto	DB	'$'
DATA	ENDS		

CODE	SEGMENT				;zaciatok kodoveho segmentu
	ASSUME CS:CODE, DS:DATA		;direktiva oznamuje



gotoxy 	macro CL,CH            ;makro na nastavenie kurzora
  	mov dl,CL                  ;presum x-ovej sur do registra
  	mov dh,CH                  ;presun y-ovej sur do registra
        mov ah,02
	mov bh, 0
	INT 10h
	endm             

vypis	MACRO t				;makro na vypis textu
	mov ah, 09h			;do ah -> cislo obsluhy na vypisanie retazca
	mov dx, offset t		;do DX vloz posunutie retazca v datovom segmente,
	int 21h				;prerusenie na vykonanie ukoncenia programu
	endm				;koniec makra

START:	mov AX, SEG DATA		;do AX vloz adresu segmentu DATA
	mov DS, AX			;segmentovu adresu presun do DS
	
	mov ah,0h                ;do ax sa vlozi parametre grafickeho modu 80x25
  	int 10h

  	mov dx,offset cisto         ;do dx sa presunie adresa offsetova textu textP
  	mov ah,09h                  ;do ah -> cislo obsluhy na vypisanie retazca
  	  	            

	MOV CL, 5H
	MOV CH, 6H
	gotoxy cl, ch        ;nastavenie kurzora na x=15h,y=04h	
	vypis text1
	MOV CL, 5H
	MOV CH, 7H
	gotoxy cl, ch
	vypis text2 	
	MOV CL, 5H
	MOV CH, 8H
	gotoxy cl, ch	
	vypis text3
	MOV AX, 4C00H
	int 21h				;prerusenie na vykonanie ukoncenia programu


CODE	ENDS				; koniec kodoweho segmentu
	END 	START			;program bude spusteny od nawestia START
