Professional Documents
Culture Documents
inc
.data
repeatStr db "Doriti sa introduceti alta cifra ? (1 - Da, 0 - Nu) -> ", 0
inputString BYTE "Introduceti sirul: ", 0
rezultString db "Rezultatul in decimal = ", 0
sirInit db "Sirut initial in binar: ", 0
rezultBin db "Rezultatul in binar: ", 0
hexNum DWORD ?
decStr db 10 DUP(?)
hexStr DWORD ?
rest byte ?
cat byte ?
count byte 0d
len byte 0d
temp db ?
.code
main PROC
again:
; First difit
mov eax, hexNum
shr ah, 4
mov temp, ah
;add edi, TYPE decStr
add count, 1d
cmp ah, 10
jae convert
mov bl, temp
mov [edi], bl
add len, 1d
; Second digit
next1:
mov eax, hexNum
and ah, 0fh
mov temp, ah
add edi, TYPE decStr
add count, 1d
cmp ah, 10
jae convert
mov bl, temp
mov [edi], bl
add len, 1d
; Third digit
next2:
mov eax, hexNum
shr al, 4
mov temp, al
add edi, TYPE decStr
add count, 1d
cmp al, 10
jae convert
mov bl, temp
mov [edi], bl
add len, 1d
; Fourth digit
next3:
mov eax, hexNum
and al, 0fh
mov temp, al
add edi, TYPE decStr
add count, 1d
cmp al, 10
jae convert
mov bl, temp
mov [edi], bl
add len, 1d
jmp ex
convert:
ex:
call Crlf
mov cl,1
mov edx, OFFSET rezultString
call WriteString
printDec:
xor eax, eax
mov al, [esi]
mov ebx, TYPE decStr
call WriteDec
add esi, TYPE decStr
inc cl
cmp cl,len
jle printDec
call Crlf
mov edx, OFFSET sirInit
call WriteString
xor eax, eax
mov eax, hexNum
call WriteBin
mov cl,1
call Crlf
mov edx, OFFSET rezultBin
call WriteString
mov esi, OFFSET decStr
printRezBinary:
call Crlf
mov edx, OFFSET repeatStr
call WriteString
call ReadChar
call Crlf
call Crlf
cmp al, '1'
mov cl, 1
je again
Call Crlf
Call Crlf
exit
main ENDP
END main