Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Progr segment
- assume cs:Progr, ds:dane, ss:stosik
- start: mov ax,dane
- mov ds,ax
- mov ax,stosik
- mov ss,ax
- mov sp, offset szczyt
- jmp wprowadz
- blad: mov ah, 09H
- lea dx, error
- int 21H
- jmp start
- ustawRej: mov ax, 0H
- mov bx, 0H
- mov cx, 0H
- mov dx, 0H
- mov cl, ile
- ret
- bladOvfl: mov ah, 09H
- lea dx, errOvfl
- int 21H
- jmp start
- wprowadz: mov ah, 09H ;wyswietlanie tekstu
- lea dx,welcome
- INT 21H
- mov ah, 0AH ;wprowadzanie znakow z klawiatury
- lea dx, max
- int 21H
- call ustawRej
- cmp cl,0
- je wprowadz
- czyLiczby: mov al, tab[bx]
- sub al, 30H
- cmp al, 9
- jg blad
- cmp al, 0
- jl blad
- inc bx
- loop czyLiczby
- call ustawRej
- dec cl
- sprZakres: mov al, tab[bx]
- sub al, 30H
- mov ah, 0H
- add dx, ax
- jc blad
- cmp cl, 0
- je wyswietlDec
- mov ax, 10D
- mul dx
- jo bladOvfl
- mov dx, ax
- inc bx
- dec cl
- jmp sprZakres
- wyswietlDec: mov wynik, dx
- mov ah, 09H
- lea dx, txtDec
- int 21H
- call ustawRej
- decWart: mov ah, 02H
- mov dl, tab[bx]
- int 21H
- inc bx
- loop decWart
- wyswietlHex: mov ah, 09H
- lea dx, txtHex
- int 21H
- call ustawRej
- mov cl, 16D
- hexWart: sub cl, 4
- mov ax, wynik
- shr ax, cl
- and ax, 000Fh
- mov bx, ax
- mov ah, 02H
- mov dl, wartHex[bx]
- int 21H
- cmp cl, 0
- je wyswietlBin
- jmp hexWart
- wyswietlBin: mov ah, 09H
- lea dx, txtBin
- int 21H
- call ustawRej
- mov cx, wynik
- binWart: cmp bx, 16D
- je zakonczenie
- shl cx, 1
- inc bx
- jc jeden
- jnc zero
- jeden: mov ah, 02H
- mov dl, '1'
- int 21H
- jmp binWart
- zero: mov ah, 02H
- mov dl, '0'
- int 21H
- jmp binWart
- zakonczenie: mov ah,4CH ; rozkaz exit
- mov al,00H ; 00 - exit code, normal termination
- int 21H
- Progr ends
- dane segment
- welcome db 10,13,'Wprowadz liczbe <0:65535>:','$'
- errOvfl db 10,13,'Liczba spoza zakresu.',10,13,'$'
- error db 10,13,'Nieoczekiwany blad.',10,13,'$'
- wartHex db '0123456789ABCDEF','$'
- txtDec db 10,13,'DEC: ','$'
- txtHex db 10,13,'HEX: ','$'
- txtBin db 10,13,'BIN: ','$'
- max db 6
- ile db ?
- tab db 6 dup(0)
- wynik dw 0
- 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