clrscr MACRO ;definicia makra na mazanie obrazovky mov ax,0003h ;do ax sa vlozi parametre grafickeho modu 80x25 int 10h ;prerusenie na vykonanie instrukcie endm ;ukoncenie makra clrscr vypis MACRO text ;makro na vypis textu mov dx, offset text ;relativna adresa TEXT sa ulozi do DX mov ah,9 ;funkcia na vypis retazca int 21h ;DOS-ovske prerusenie na vykonanie funkcie 9 endm data segment vstup db 90 ;bude sa citat 80 znakov pocet db 0 ;tu sa ulozi ich skutocny pocet vystup db 90 dup(?); miesto pre vysledok+13,10,$ textA db '1. zadaj retazec: $' ;symbolicke konstanty reprezentujuce texty textB db '2. zadaj znak: $' textC db '3. Invertovat retazec$' textD db '4. Pocet slov v zadanom retazci$' data ends code segment assume cs:code, ds:data start: clrscr mov ax,seg data mov ds,ax vypis texta mov ah,0ah ;sluzba pre vstup retazca z klavesnice mov dx,offset vstup int 21h vypis textb mov ah,01h ;nacitanie ascii znaku bude ulozeny v al int 21h xor cx,cx ; nulovanie pocitadla mov cl,pocet ; pocet znakov do cl xor si,si xor bx,bx cyklus: cmp al,vystup[si] jz skok1 jnz skok2 skok1: add bx inc si skok2: inc si loop cyklus mov ax,4c00h int 21h code ends end start