Alyks

lab 6.3

May 14th, 2020
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. const int arraySize = 8;
  7. int arr[arraySize] = { 0, 0, 0, 0, 0, 0, 0, 0 };
  8. int value = 0;
  9. for (int i = 0; i < arraySize; i++) {
  10. cout << "Enter [" << (i + 1) << "] array element: ";
  11. cin >> arr[i];
  12. }
  13. cout << endl;
  14. cout << "Your array is:" << endl;
  15. cout << "[ ";
  16. for (int i = 0; i < arraySize; i++) {
  17. cout << arr[i] << " ";
  18. }
  19. cout << "]" << endl;
  20. cout << "Enter value: ";
  21. cin >> value;
  22. cout << endl;
  23. int resultC = 0;
  24. int resultAsm = 0;
  25. for (int i = 0; i < arraySize; i++) {
  26. if (arr[i] >= value)
  27. resultC += arr[i];
  28. }
  29.  
  30. __asm {
  31. lea esi, arr // Грузим адресс массива в esi
  32. mov ecx, arraySize // ecx = arraySize
  33. start:
  34. mov ebx, [esi] // ebx = текущему элементу массива
  35. cmp ebx, value // Сравниваем значения
  36. jl nextElement // Если ebx < value, то переходим к следующему элементу
  37. add resultAsm, ebx // Если ebx >= value, то к resultSum прибавляем ebx
  38. nextElement:
  39. add esi, 4 // Переходим к следующему элементу массива
  40. loop start // Продолжаем цикл, пока ecx не будет равно 0
  41. }
  42.  
  43. cout << "Result on C++ is " << resultC << endl;
  44. cout << "Result on ASM is " << resultAsm << endl;
  45.  
  46. return 0;
  47. }
Add Comment
Please, Sign In to add comment