All pastes #242900 Raw Edit

Something

public text v1 · immutable
·published 2006-11-07 21:04 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,61h            ;lyginame ivesta simboli su 'a' kodu 
;jb next               ;jeigu reiksme mazesne tai pereiname prie next
;cmp al,7ah            ;lyginame ivesta simboli su 'z' kodu
;ja next               ;jeigu reiskme didesne pereiname prie next
;sub al,20h            ;jeigu reiskme yra tarp a-z tai atimdami 20h gausime Didziaja raide
;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



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 next               ;jeigu reiksme mazesne tai pereiname prie next
cmp al,5ah            ;lyginame ivesta simboli su 'Z' kodu
ja next               ;jeigu reiskme didesne pereiname prie next
add al,20h            ;jeigu reiskme yra tarp a-z tai atimdami 20h gausime Didziaja raide
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