All pastes #242941 Raw Edit

Something

public text v1 · immutable
·published 2006-11-07 21:47 UTC
rendered paste body
.MODEL small
.STACK 
.DATA


init_ds macro ;Makro duomenu segmentui inicializuoti
mov ax,data
mov ds,ax
endm

out_str macro str ;Makro eilutes isvedimui
push ax
mov ah,09h
mov dx,offset str
int 21h
pop ax
endm

get_chr macro ;Makro simbolio ivedimui is klaviaturos
mov ah,1h 
int 21h
endm


data segment para public 'data' ;duomenu segmento apraso pradzia
msg1 db 'Iveskite eilute: $' 
msg2 db 10,13,'Pakeista eilute atrodo: $'
input db 200 dup('$') 
data ends

stk segment stack
db 256 dup ('?')
stk ends

code segment para public 'code'
assume cs:code, ds:data, ss:stk




main proc
init_ds

out_str msg1 
mov bx,offset input   ;patalpiname i BX input eilutes pradzios adresa


inp: get_chr          ;skaitome simbolius
cmp al,13             ;sulyginame ar ivestas simbolis nera lygus ENTER
je finish             ;jeigu equal pereiname prie finish
cmp al,41h            ;lyginame ivesta simboli su 'A' kodu 
jb min               ;jeigu reiksme mazesne tai pereiname prie next
cmp al,5ah            ;lyginame ivesta simboli su 'Z' kodu
ja min               ;jeigu reiskme didesne pereiname prie next
add al,20h            ;jeigu reiskme yra tarp a-z tai atimdami 20h gausime Didziaja raide
jmp next
min:
cmp al,61h
jb next
cmp al,61h
ja next
sub al,20h

next: mov [bx],al     ;patalpiname simboli is al i atminti adresu patalpintu registre bx
inc bx                ;padidiname registro bx reiskme vienetu
jmp inp               ;pereiname prie inp



finish: out_str msg2
out_str input
get_chr
mov ax,4c00h
int 21h

main endp
code ends
end main