;kód szegmens kod segment para public 'code' assume cs:kod,ds:adat,ss:verem,es:nothing start: push ds ;visszatérés segmensének mentése xor ax, ax ;offset mindig 0 push ax ;visszatérés offsetjének mentése mov ax, adat ;mert nincsen 'mov ds, adat' mov ds, ax ; főprogram mov ax, offset szoveg ;si mutasson a kiirandó mov si, ax ;szöveh elejére call strkiir ;eljáráshívás ; főprogram vége vege: retf ;visszatérés a hívó programhoz ;eljárás ami kiír egyetlen betűt. a betű kódját al-ben várja betukiir proc ;al ben a kiirandó betű mov ah, 14 ;BIOS rutin paramétere int 10h ;10h megszakítás hívása ret ;visszatérés betukiir endp ;eljárás ami kiír egy 0-val záródó karakterláncot ;a string elejét si mutatja strkiir proc kov: mov al, [si] ;következő betű cmp al, 0 ;0 jelzi a str végét je strvege ;ha elértünk a végére ugrunk call betukiir ;egy betű kiirása inc si ;mutató a következő betűre jmp kov ;ugrás strvege: ret ;eljárás vége strkiir endp kod ends ;adat szegmens adat segment para public 'data' szoveg db "haho vilag",13, 10, 0 adat ends ;verem szegmens verem segment para stack dw 64 dup (0) ;helyfoglalás verem ends end start