Advertisement
ItsMeLucifer

TASM+MASM hextodec [needsfix] Intel 8086

Dec 14th, 2019
1,569
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Progr           segment
  2.                 assume  cs:Progr, ds:dane, ss:stosik
  3.                 blad_zero:
  4.                 mov dx,offset error1
  5.                 mov ah,09h
  6.                 int 21h
  7.                 jmp koniec
  8.  
  9.                 blad_overflow:
  10.                 mov dx,offset error2
  11.                 mov ah,09h
  12.                 int 21h
  13.                 jmp koniec
  14.  
  15.  
  16. start:          mov     ax,dane
  17.                 mov     ds,ax
  18.                 mov     ax,stosik
  19.                 mov     ss,ax
  20.                 mov     sp,offset szczyt
  21.  
  22.         mov dx,offset witaj
  23.         mov ah,09h ;Zapisanie funkcji wyświetlania do rejestru ah
  24.         int 21h
  25.  
  26.         mov dx,offset bufor ;Buforowane wczytanie z klawiatury, do tablicy wpisany zostaje ciag cyfr
  27.         mov ah,0Ah            
  28.         int 21h
  29.  
  30.         ;zerowanie rejestrow
  31.         xor cx,cx
  32.         xor bx,bx
  33.         mov cl,liczba_znakow
  34.  
  35.         tworzenie_liczby:
  36.         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
  37.         xor ax,ax
  38.         mov al,cyfry[bx] ;tyle, ze utknalem tutaj i nie do konca wiem co robic dalej xD
  39.  
  40.  
  41.  
  42.         koniec:
  43.             mov dx, offset kon
  44.             mov ah, 09h
  45.             int 21h
  46.             mov ah,07
  47.             int 21h
  48.             mov ah,4Ch
  49.             mov al,0
  50.             int 21h
  51. Progr           ends
  52.  
  53. dane            segment
  54.  
  55. bufor db 5
  56. liczba_znakow db ?
  57. cyfry db 5 dup(?)
  58. liczba dw 0
  59. hex db '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','$'
  60. witaj db 13,10, 'Witaj, podaj liczbe z zakresu 0-FFFF (hexadecymalnie): $'
  61. dziesietnie db 13,10, 'Liczba dziesietnie wynosi: $'
  62. error1 db 13,10, 'Nie zostala wpisana zadna wartosc! $'
  63. error2 db 13,10, 'Wpisana wartosc jest za duza! $'
  64. kon db 13,10, 'Jesli chcesz zakonczyc program wcisnij dowolny klawisz: $'
  65. dane            ends
  66.  
  67. stosik          segment
  68.                 dw    100h dup(0)
  69. szczyt          Label word
  70. stosik          ends
  71.  
  72. end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement