Advertisement
Petro-7

[AK] C+ASM Najmniejsza liczba

Jan 19th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. //a.asm
  2. global minmax
  3.  
  4. section .text
  5.  
  6. minmax:
  7. push rbx
  8. dec rsi
  9. mov eax, 0xFFFFFFFF ;minimum 2^32-1
  10. mov ebx, 0 ;pierwszy element tablicy lub 0
  11.  
  12. petla:
  13. mov ecx, dword[rdi+4*rsi]
  14.  
  15. cmp ecx, eax ;porownanie z najmniejszym
  16. cmovb eax, ecx ;conditional move if below
  17.  
  18. cmp ecx, ebx
  19. cmova ebx, ecx ;condirional move if above
  20.  
  21.  
  22. dec rsi
  23. jns petla ;Jump if Not Signed (signed)
  24.  
  25. mov [rdx], eax
  26. mov [rdx+4], ebx
  27.  
  28. pop rbx
  29. ret
  30.  
  31. //b.c
  32. #include <stdio.h>
  33.  
  34. unsigned int tablica[10]={1,2,3,4,5,6,7,8,9,0};
  35. unsigned int wynik[2];
  36. int main(void){
  37. minmax(tablica, 10, wynik);
  38.  
  39. printf("Najmniejsza liczba to %d\n", wynik[0], wynik[1]);
  40.  
  41. return (0);
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement