Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Progr segment
- assume cs:Progr, ds:data, ss:stos
- blad1:
- mov dx,offset error1
- mov ah,09h
- int 21h
- jmp end
- blad2:
- mov dx,offset error2
- mov ah,09h
- int 21h
- jmp end
- blad3:
- mov dx,offset error3
- mov ah,09h
- int 21h
- jmp end
- start: mov ax,data
- mov ds,ax
- mov ax,stos
- mov ss,ax
- mov sp,offset szczyt
- mov dx,offset start_m
- mov ah,09h
- int 21h
- mov dx,offset signs
- mov ah,0Ah
- int 21h
- cmp n_char,0h
- je blad1
- xor bx,bx
- xor cx,cx
- mov cl,n_char
- tworzenie:
- xor ax,ax
- mov al,digit[bx]
- sub al,'0'
- cmp ax,9
- jg blad2
- cmp ax,0
- jl blad2
- push ax
- mov ax,number
- mov dx,10d
- mul dx
- mov number,ax
- jc blad3
- pop ax
- add number,ax
- jc blad3
- inc bx
- loop tworzenie
- xor bx,bx
- mov bl,n_char
- mov digit[bx],'$'
- mov dx,offset dec
- mov ah,09h
- int 21h
- mov dx,offset digit
- int 21h
- mov dx,offset bin
- mov ah,09h
- int 21h
- mov cx,16
- mov ah,02h
- mov dx,number
- rol dx,1
- push dx
- loop_bin:
- and dx,0000000000000001b
- add dx,'0'
- int 21h
- pop dx
- rol dx,1
- push dx
- loop loop_bin
- mov dx,offset hex_m
- mov ah, 09h
- int 21h
- mov ah,02h
- mov cx,4
- mov bx,number
- rol bx,4
- push bx
- loop_hex:
- and bx,0000000000001111b
- mov dl,hex[bx]
- int 21h
- pop bx
- rol bx,4
- push bx
- loop loop_hex
- end:
- mov dx, offset end_m
- mov ah, 09h
- int 21h
- mov ah,07
- int 21h
- mov ah,4Ch
- int 21h
- Progr ends
- data segment
- signs db 6
- n_char db ?
- digit db 6 dup(0)
- number dw 0
- hex db '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','$'
- start_m db 13,10, 'Podaj liczbe binarna : $'
- dec db 13,10, 'Liczba dziesietnie : $'
- bin db 13,10, 'Liczba binarnie : $'
- hex_m db 13,10, 'Liczba hexadecymalnie : $'
- error1 db 13,10, 'Nie podales wartosci $'
- error2 db 13,10, 'Podales zla wartosc $'
- error3 db 13,10, 'Wpisana wartosc jest za duza 0-65535 $'
- end_m db 13,10, 'Wcisnij przycisk zeby zakonczyc program: $'
- data ends
- stos segment
- szczyt Label Word
- dw 100h dup(0)
- stos ends
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement