Facebook
From Wet Motmot, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 276
  1. .686
  2. .model flat
  3.  
  4. public _szukaj_max
  5. public _plus_jeden
  6.  
  7. .code
  8.  
  9. _szukaj_max PROC
  10.         push ebp ; zapisanie zawartosci EBP na stosie
  11.         mov ebp, esp ; kopiowanie zawartosci esp do ebp
  12.        
  13.         mov eax, [ebp+8] ; liczba x
  14.         cmp eax, [ebp+12] ; x ?= y
  15.         jge x_wieksza ; skok gdy x >= y
  16.  
  17. ; przypadek x < y
  18.        
  19.         mov eax, [ebp+12] ; liczba y
  20.         cmp eax, [ebp+16] ; porownanie liczb y i z
  21.         jge y_wieksza ; szkok gdy y>= z
  22.  
  23. ; przypadek y < z
  24. ; zatem z jest liczba najwieksza
  25.  
  26.  
  27. wpisz_z:
  28.         mov eax, [ebp + 16] ; liczba z
  29.  
  30. porownaj_max_z_d:
  31.         cmp eax, [ebp+20]
  32.         jge zakoncz
  33.         mov eax, [ebp+20]
  34.  
  35. zakoncz:
  36.         pop ebp
  37.         ret
  38.  
  39. x_wieksza:
  40.         cmp eax, [ebp+16] ; porowanie x i z
  41.         jge porownaj_max_z_d ; skok, gdy x >= z
  42.         jmp wpisz_z
  43.  
  44. y_wieksza:
  45.         mov eax, [ebp+12] ; liczba y
  46.         jmp porownaj_max_z_d
  47.  
  48. _szukaj_max ENDP
  49.  
  50. _plus_jeden PROC
  51.         push ebp        ; zapisanie zawartosci ebp na stosie
  52.         mov ebp, esp    ; kopiowanie zawartosci esp do ebp
  53.         push ebx        ;przechowanie zawartosci rejestru ebx
  54.         push edx
  55. ; wpisanie do rejestru ebx adresu zmiennej zdefiniowanej
  56. ; w kodzie w jezyku c
  57.        
  58.         mov ebx, [ebp+8]
  59.         mov eax, [ebx] ; odczytanie wartosci zmiennej
  60.         mov edx, eax
  61.         sub eax, edx
  62.         sub eax, edx
  63.         mov [ebx], eax
  64.  
  65.         pop edx
  66.         pop ebx
  67.         pop ebp
  68.         ret
  69. _plus_jeden ENDP
  70.  
  71. _odejmij_jeden PROC
  72.         push ebp
  73.         mov ebp, esp
  74.         push ecx
  75.        
  76.         mov eax, [ebp+8] ; wpisz do eax wartosc adresu wskazujacego na pamiec ktora zawiera wartosc zmiennej :)
  77.         mov ecx, [eax] ; wpisz do ecx wartosc adresu wskazujacego na pamiec ktora zawiera wartosc
  78.         mov eax, [ecx] ; wpisz do eax wartosc
  79.         dec eax
  80.         mov [ecx], eax
  81.  
  82.  
  83.  
  84.         pop ecx
  85.         pop ebp
  86.         ret
  87. _odejmij_jeden ENDP
  88. END