Asembler i Visual C++

0

Dlaczego kod

#include <iostream>
#include <conio.h>

using namespace std;

int main() {
	char a[3];
	short int b[3];

	unsigned int wynik=0;

	for (int i=0; i<=2; i++) {
		int j;

		cout << "\nPodaj a[" << i << "]: " ;
		cin >> j;
		a[i] = (char)j;
	}

	__asm {
		mov edi, offset a
		inc EDI //pierwszy bajt tablicy zawira jej długość
		add wynik, [EDI]
		inc EDI
		add wynik, [EDI]
		inc EDI
		add wynik, [EDI]
	}
	cout << "\n" << wynik;

	getch();
}

nie chce działać w Visual C++ (improper operand type)?

0

Z tego co wyczytałem nie możesz odwoływać się do 2 adresów w pamięci w jednej instrukcji. Poszukaj w Google, mnóstwo takich tematów.

0

A jak zastąpić offset a?

1 użytkowników online, w tym zalogowanych: 0, gości: 1