Sunteți pe pagina 1din 1

; Sa se scrie un program care sa transforme caracterele 'A'...

'F' citite de la
tastatura
; in valorile '10'...'15'.
;----------------------------------------------------------------------------------
-
.model small
.stack
.data
mesaj db "Introduceti o litera mare [A...F]: $"
mesaj2 db 0ah, "Litera transformata este: $"
mesaj3 db 0ah, "Autor: Itco Nicolae, 1123a$"
c db ?
.code
mov ax,dgroup
mov ds,ax

mov ah, 09h


mov dx, offset mesaj
int 21h

mov ah, 01h


;Daca introducem A -> in hex = 41 -> AL=41h
int 21h
mov c, al ; Mutam valoarea lui AL in c deoarece AL va fi
folosit in urmatoarea functie si va fi rescris!

mov ah, 09h ; Display String


mov dx, offset mesaj2 ; memoram in dx mesaj2
int 21h ; Intrerupere DOS

mov al, c ; Mutam inapoi valoarea din c in AL


sub al,37h ; AL=41h-37h=0ah
mov ah,0 ; AH=00h
mov bl,0ah ; BL=0ah
div bl ; AX/BL=AHAL/BL, 000ah/0ah-> AL=00h, AH=01h
mov bh,ah ; BH=AH=01h
add bh,30h ; BH=30h+01h=31h->1 in string

mov ah,02h ; Display Output


add al,30h ; AL=00h+30h=30h -> 0 in string
mov dl,al ; afisare prima cifra 0
int 21h
mov dl, bh ; afisare a doua cifra -> 1
int 21h

mov ah, 09h ; Display String


mov dx, offset mesaj3 ; memoram in dx mesaj2
int 21h ; Intrerupere DOS

mov ah, 4ch


int 21h
end

S-ar putea să vă placă și