Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Progr segment
- assume cs:Progr, ds:dane, ss:stosik
- blad1: mov dx,offset wiad_blad1
- mov ah,09h
- int 21h
- jmp koniec
- blad2: mov dx,offset wiad_blad2
- mov ah,09h
- int 21h
- jmp koniec
- blad3: mov dx,offset wiad_blad3
- mov ah,09h
- int 21h
- jmp koniec
- start: mov ax,dane
- mov ds,ax
- mov ax,stosik
- mov ss,ax
- mov sp,offset szczyt
- ;Start
- mov dx,offset wiadomosc
- mov ah,09h
- int 21h
- mov dx,offset max
- mov ah,0Ah
- int 21h
- cmp len,0h
- je blad1 ;jezeli rowne
- xor cx,cx
- xor bx,bx
- mov cl,len
- ;tworzenie liczby
- petla: xor ax,ax
- mov al,tekst[bx]
- sub al,'0'
- cmp ax,9
- jg blad2 ;jezeli wieksze
- cmp ax,0
- jl blad2 ;jezeli mniejsze
- push ax
- mov ax,liczba
- mov dx,10d
- mul dx
- mov liczba,ax
- jc blad3 ;jezeli przeniesienie
- pop ax
- add liczba,ax
- jc blad3
- inc bx
- loop petla
- xor bx,bx
- mov bl,len
- mov tekst[bx],'$'
- ;dec
- mov dx,offset wyswietl_d
- mov ah,09h
- int 21h
- mov dx,offset tekst
- int 21h
- ;bin
- mov dx,offset wyswietl_b
- mov ah,09h
- int 21h
- mov cx,16
- mov ah,02h
- mov dx,liczba
- rol dx,1
- push dx
- petla1: and dx,0000000000000001b
- add dx,'0'
- int 21h
- pop dx
- rol dx,1
- push dx
- loop petla1
- ;hex
- mov dx,offset wyswietl_h
- mov ah, 09h
- int 21h
- mov ah,02h
- mov cx,4
- mov bx,liczba
- rol bx,4
- push bx
- petla2: and bx,0000000000001111b
- mov dl,hex[bx]
- int 21h
- pop bx
- rol bx,4
- push bx
- loop petla2
- koniec: mov ah,07
- int 21h
- mov ah,4Ch
- int 21h
- Progr ends
- dane segment
- hex db '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','$'
- max db 6
- len db ?
- tekst db 6 dup(0)
- liczba dw 0
- wiadomosc db 13,10, 'Witaj w programie konwertujacym. ',13,10,'Podaj liczbe: $'
- wyswietl_d db 13,10, 'Liczba dziesietnie: $'
- wyswietl_b db 13,10, 'Liczba binarnie: $'
- wyswietl_h db 13,10, 'Liczba hexadecymalnie: $'
- wiad_blad1 db 13,10, 'Blad! Nie wpisano zadnej wartosci. $'
- wiad_blad2 db 13,10, 'Blad! To nie liczba. $'
- wiad_blad3 db 13,10, 'Blad! Za duza wartosc. $'
- 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