kod segment assume cs:kod,ds:adat,ss:verem ;eljárás bx-ben várja a bájtsorozat elejét ;ha talál az első elemnél kisebb elemet, akkor ;megcseréli őket min proc mov dl, [bx] ;dl-ben az elso szám mov si, bx ;si mutasson az elejére k1: mov al, [si] ;akt szám betöltése cmp al, 0 ;nulla? je v1 ;ha igen: vége cmp al, dl ;akt. szám és az eddigi legkisebb jae k2 ;ha az akt. nagyobb ugorjunk mov dl, al ;jegyezzük meg mert kisebb xchg al, [bx] ;csere mov [si], al ;csere k2: inc si ;köv betű jmp k1 ; v1: ret ;visszatérés min endp ;eljárás, mely rendez egy bájtsorozatot rendez proc k3: mov al, [bx] ;akt szám betölt cmp al, 0 ;nulla? je v2 ;ha igen: vége call min ;tegyük az elejére a legkisebbet inc bx ;köv betű jmp k3 v2: ret ;eljárás vége rendez endp start: mov ax,adat ;ds betoltese mov ds,ax ;ds beallitasa ;ide jon maga a program mov bx, offset sor; call rendez mov ah,4ch ;kilepes mov al,00h ;visszateresi kod int 21h ;dos megszakitás kod ends adat segment sor db 2, 4, 1, 5, 0 adat ends verem segment stack db 1024 dup (1) verem ends end start