Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TITLE ********** Treta laboratoriska vezba **********
- COMMENT *------------------------------------------------
- Programa za konvertiranje mala vo golema bukva
- -------------------------------------------------*
- .386
- .model small, c
- ;----------------------------------------------------------------
- ; Stek segment
- stack_seg SEGMENT stack
- DB 100 DUP(?)
- stack_seg ENDS
- ;----------------------------------------------------------------
- ; belowtocen segment
- data_seg SEGMENT USE16 'DATA'
- vlez DB 'e'
- izlez DB 1 dup(0)
- data_seg ENDS
- ;----------------------------------------------------------------
- ; Koden segment
- code_seg SEGMENT USE16 'CODE'
- ASSUME cs:code_seg, ds:data_seg
- start:
- ; Postavuvanje na adresata na DATA segmentot vo DS
- mov ax, data_seg
- mov ds, ax
- ;----------------------------------------------------------------
- ; Glavna procedura
- main PROC
- mov bx, 'a' ;Vo BX ja cuvame razlikata (offset)
- sub bx, 'A' ;pomegju mala i golema bukva
- lea si, vlez
- lea di, izlez
- pak:
- mov ah, 0
- mov al, [si]
- cmp al, 'A'
- jb below ; pomala od A
- cmp al, 'Z'
- jg above ; pogolema od Z
- push ax
- call toLower ;golema e, smali ja
- mov [di], ax
- inc di
- jmp next
- below:
- cmp al, '0'
- jz kraj ;nula e, terminirana niza, kraj!
- jmp next ;ne e bukva
- above:
- cmp al, 'a'
- jb next ;ne e bukva
- cmp al, 'z'
- jg next ;ne e bukva, preskokni ja
- push ax
- call toUpper ;mala e, zgolemi ja
- mov [di], ax
- inc di
- next:
- inc si
- jmp pak
- kraj:
- nop
- main ENDP
- ;----------------------------------------------------------------
- ; Kraj na programata
- ; Interapt za prekin na izvrsuvanjeto, za da se vrati kontrolata na debagerot
- mov ax, 04c00h
- int 021h
- ;----------------------------------------------------------------
- ; Ostanati proceduri
- ; Procedura za pretvaranje mala bukva vo golema
- toUpper PROC
- mov bp,sp
- mov ax,[bp+2]
- sub ax, bx
- ret 2
- toUpper ENDP
- toLower PROC
- mov bp, sp
- mov ax, [bp+2]
- add ax, bx
- ret 2
- toLower ENDP
- code_seg ENDS
- END start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement