Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main() {
- const int arraySize = 8;
- int arr[arraySize] = { 0, 0, 0, 0, 0, 0, 0, 0 };
- int value = 0;
- for (int i = 0; i < arraySize; i++) {
- cout << "Enter [" << (i + 1) << "] array element: ";
- cin >> arr[i];
- }
- cout << endl;
- cout << "Your array is:" << endl;
- cout << "[ ";
- for (int i = 0; i < arraySize; i++) {
- cout << arr[i] << " ";
- }
- cout << "]" << endl;
- cout << "Enter value: ";
- cin >> value;
- cout << endl;
- int resultC = 0;
- int resultAsm = 0;
- for (int i = 0; i < arraySize; i++) {
- if (arr[i] >= value)
- resultC += arr[i];
- }
- __asm {
- lea esi, arr // Грузим адресс массива в esi
- mov ecx, arraySize // ecx = arraySize
- start:
- mov ebx, [esi] // ebx = текущему элементу массива
- cmp ebx, value // Сравниваем значения
- jl nextElement // Если ebx < value, то переходим к следующему элементу
- add resultAsm, ebx // Если ebx >= value, то к resultSum прибавляем ebx
- nextElement:
- add esi, 4 // Переходим к следующему элементу массива
- loop start // Продолжаем цикл, пока ecx не будет равно 0
- }
- cout << "Result on C++ is " << resultC << endl;
- cout << "Result on ASM is " << resultAsm << endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment