Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Progr segment
- assume cs:Progr, ds:dane, ss:stosik
- blad_zero:
- mov dx,offset error1
- mov ah,09h
- int 21h
- jmp koniec
- blad_overflow:
- mov dx,offset error2
- mov ah,09h
- int 21h
- jmp koniec
- start: mov ax,dane
- mov ds,ax
- mov ax,stosik
- mov ss,ax
- mov sp,offset szczyt
- mov dx,offset witaj
- mov ah,09h ;Zapisanie funkcji wyświetlania do rejestru ah
- int 21h
- mov dx,offset bufor ;Buforowane wczytanie z klawiatury, do tablicy wpisany zostaje ciag cyfr
- mov ah,0Ah
- int 21h
- ;zerowanie rejestrow
- xor cx,cx
- xor bx,bx
- mov cl,liczba_znakow
- tworzenie_liczby:
- mov bx,4h ;chcialem ustawic indeks na 4, abysmy zaczynali od prawej strony tablicy z liczbami. Wtedy po prostu bedziemy zwiekszac jakis rejestr o 1, i mnozyc kazda z cyfr razy 16^indeks
- xor ax,ax
- mov al,cyfry[bx] ;tyle, ze utknalem tutaj i nie do konca wiem co robic dalej xD
- koniec:
- mov dx, offset kon
- mov ah, 09h
- int 21h
- mov ah,07
- int 21h
- mov ah,4Ch
- mov al,0
- int 21h
- Progr ends
- dane segment
- bufor db 5
- liczba_znakow db ?
- cyfry db 5 dup(?)
- liczba dw 0
- hex db '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','$'
- witaj db 13,10, 'Witaj, podaj liczbe z zakresu 0-FFFF (hexadecymalnie): $'
- dziesietnie db 13,10, 'Liczba dziesietnie wynosi: $'
- error1 db 13,10, 'Nie zostala wpisana zadna wartosc! $'
- error2 db 13,10, 'Wpisana wartosc jest za duza! $'
- kon db 13,10, 'Jesli chcesz zakonczyc program wcisnij dowolny klawisz: $'
- dane ends
- stosik segment
- dw 100h dup(0)
- szczyt Label word
- stosik ends
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement