peon125

Untitled

Jan 9th, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. section .text
  2.  
  3. org 100h
  4.  
  5. start:
  6.  
  7. call procedura_wprowadzznak
  8.  
  9. cmp al, 13 ;do 23. linijki sprawdzam czy podany znak jest litera
  10. je pre_wypisz
  11.  
  12. cmp al, 64
  13. jbe skok_blad
  14.  
  15. cmp al, 122
  16. jae skok_blad
  17.  
  18. cmp al, 97
  19. jae wszystko_okej
  20.  
  21. cmp al, 90
  22. jbe wszystko_okej
  23. ja skok_blad
  24.  
  25. wszystko_okej:
  26. push ax
  27. jmp start
  28.  
  29. pre_wypisz: ;przygotowuje tutaj rejestr cx, ktorego uzywam do iteracji
  30. mov ax, 2
  31. mul cx
  32. mov cx, ax
  33.  
  34. wypisz:
  35. cmp cx, 0
  36. je koniec
  37.  
  38. sub cx, 2
  39. mov dx, [esp + ecx]
  40.  
  41. cmp dx, 91
  42. jb z_malej_na_duza
  43. ja z_duzej_na_mala
  44.  
  45. z_duzej_na_mala:
  46. add dx, 32
  47. mov ah, 02h
  48. int 21h
  49. jmp wypisz
  50.  
  51. z_malej_na_duza: ;tu jest blad, ale nie wiem czemu. skoro mala litera 'a' ma kod 97, a duża 65, to chyba muszę odjąć 32? zamiast tego pokazuje mi ü
  52. sub dx, 32
  53. mov ah, 02h
  54. int 21h
  55. jmp wypisz
  56.  
  57. procedura_wprowadzznak:
  58. mov ah, 01h
  59. int 21h
  60. inc cx
  61.  
  62. ret
  63.  
  64. skok_blad:
  65. mov dx, v_blad
  66. mov ah, 02h
  67. int 21h
  68.  
  69. wyczysc_stos:
  70. pop ax
  71. cmp ax, 0
  72. jne wyczysc_stos
  73.  
  74. xor ax, ax
  75. jmp start
  76.  
  77. koniec:
  78. mov ax, 4c00h
  79. int 21h
  80.  
  81. section .data
  82. v_blad db 10, "niestety to jest blad $", 10
Advertisement
Add Comment
Please, Sign In to add comment