; ******************************************
; * Microprocesoare, indrumar de laborator *
; * Universitatea TRANSILVANIA Brasov      *
; * Catedra de Electronica si Calculatoare *
; * (C) 1999 Dan Nicula                    *
; ******************************************

; Exemplul 3: Preluarea datei sistem.

; Program in limbaj de asamblare afiseaza pe ecran data sistemului sub forma: 
; <AA> <Luna>
; unde:
; <AA> este anul (ultimele doua cifre)
; <Luna> este denumirea lunii in limba romana.

code SEGMENT
assume cs:code, ds:code
Denumire_luna db 'Ianuarie$  Februarie$ Martie$    Aprilie$   Mai$       Iunie$     '
              db 'Iulie$     August$    Septembrie$Octombrie$ Noiembrie$ Decembrie$ '

start:
  mov  ax, cs
  mov  ds, ax

  mov  ah, 2Ah          ; preia data sistem, functie DOS 2AH
  int  21h
                        ; preluare parametrii, prelurare si afisare
  sub  cx, 1900         ; CX=anul (parametru de iesire din functia DOS 2AH)
  mov  ah, 0
  mov  al, cl
  mov  bl, 10
  div  bl               ; (AH:AX) / BL => AL=cit, AH = rest
                        ; AL=cifra zecilor, AH=cifra unitatilor (AN)
  mov  bx, ax
  mov  dl, bl
  add  dl, '0'
  mov  ah, 2
  int  21h              ; scrie cifra zecilor din reprezentarea anului

  mov  dl, bh
  add  dl, '0'
  mov  ah, 2
  int  21h              ; scrie cifra unitatilor din reprezentarea anului

  mov  dl, ' '
  mov  ah, 2
  int  21h		; scrie ' '
                        ; DH=luna (parametru de iesire din functia DOS 2AH)

  dec  dh		; DH=index in tabelul Denumire_luna
  mov  al, 11           ; numarul de baiti alocati in tabelul Denumire_luna
                        ; pentru o intrare (o denumire de luna)
  mul  dh		; AL x DH = (AH:AL), index sir
  mov  dx, offset Denumire_luna
  add  dx, ax           ; DX=pointer la denumirea lunii curente, sir terminat
                        ; cu '$'

  mov  ah, 9            ; afiseaza sir cu functia DOS 9
  int  21h
  mov  ah, 4ch
  int  21h
code ends
end start
