Advertisement
kamasazi99

zamiana liczby z StdIn na liczbe uzytkowa

Dec 30th, 2019
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   .586P
  2.   .model flat, stdcall
  3.   option casemap :none   ; case sensitive
  4.  
  5. SRC1_DIMM   EQU   8
  6. SRC1_REAL   EQU   2
  7. DEST_MEM    EQU   0
  8. SRC2_DIMM   EQU   2048
  9.  
  10.  
  11. CharToOemA PROTO :DWORD,:DWORD
  12. StdOut       PROTO :DWORD
  13. StdIn        PROTO :DWORD,:DWORD
  14. StripLF      PROTO :DWORD
  15. FpuAtoFL    PROTO :DWORD,:DWORD,:DWORD
  16. FpuFLtoA    PROTO :DWORD,:DWORD,:DWORD,:DWORD
  17. ExitProcess Proto :Dword
  18. includelib masm32.lib
  19. .data
  20. buffor byte 255 dup(0)
  21. liczby byte 255 dup(0)
  22. give_var byte "Podaj liczbe: ",0
  23. pomoc DWORD 0
  24. liczba_X byte 0
  25. liczba_Y byte 0
  26. .code
  27. main proc
  28.  
  29. ;==============================================================PIERWSZA LICZBA==================================
  30. invoke StdOut, offset give_var
  31. invoke StdIn, offset buffor, lengthof buffor
  32. invoke StripLF, offset buffor
  33. mov ecx,0
  34. mov ebx,0
  35. sprawdzaj_1: ;zliczam ile jest cyfr w buforze
  36. mov al, buffor[ebx]
  37. add ebx,1
  38. cmp al,0
  39. jne dodaj_1
  40. jmp po_dodaj_1
  41. dodaj_1:
  42. add ecx,1
  43. jmp sprawdzaj_1
  44. po_dodaj_1: ;jestem po zliczeniu cyfr w buforze
  45.  
  46. mov ebx,0
  47. petla_1: ;zamieniam z Ascii na normalne
  48. push ecx
  49. mov al,buffor[ebx]
  50. mov buffor[ebx],0
  51. sub al,48
  52. mov liczby[ebx],al
  53. add ebx,1
  54. pop ecx
  55. LOOP petla_1 ;po zamianie z Ascii na nnormalne
  56.  
  57. mov ecx,ebx
  58. sub ebx,1
  59. mov dl,1
  60. petla2_1:   ;mnoze cyfry w tablicy od konca  1x/10x/100x...
  61. push ecx
  62. mov al,liczby[ebx]
  63. mul dl
  64. mov liczby[ebx],al
  65. mov  al,10
  66. mul dl
  67. mov dl,al
  68. sub ebx,1
  69. add pomoc,1
  70. pop ecx
  71. LOOP petla2_1 ;po mnozeniu
  72.  
  73. mov ebx,0 ;teraz bede dodawał je do jednej zmiennej
  74. mov ecx,pomoc
  75. petla3_1:
  76. push ecx
  77. mov al,liczby[ebx]
  78. mov liczby[ebx],0
  79. add liczba_X, al
  80. add ebx,1
  81. pop ecx
  82. LOOP petla3_1 ;po dodawaniu liczb do jednej zmiennej
  83.  
  84.  
  85. invoke ExitProcess,0
  86. main endp
  87. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement