Wskaźniki i konwersja z assemblera - błąd kompilatora

0

Witam staram się przekonwertowac kod z asemblera do c++

niestety wyrzuca mi bad czy ktoś mógłby rzucić na to okiem

mov     eax, [ebp+var_8]
mov     ecx, [eax]
and     ecx, 0FC0000h
shl     ecx, 6
mov     edx, [ebp+var_4]
mov     [edx], ecx

mov     eax, [ebp+var_8]
mov     ecx, [eax]
and     ecx, 0FC0h
shl     ecx, 0Ah

mov     edx, [ebp+var_4]
mov     eax, [edx]

or      eax, ecx
mov     ecx, [ebp+var_4]
mov     [ecx], eax
*var_4 =(((*var_8 & 0xfc0000)<<6)|((*var_8 & 0xfc0)<<0x60a)); 

błąd main.cpp|50|error: invalid type argument of unary '*' (have 'int')|

var_4 jest wskaźnikiem na adres pamięci zadeklarowałem jaki int (tez próbowałem inaczej

var_4 = &var_88;

do operacji na bitach używam biblioteki bitset - chyba ze jest jakiś łatwiejszy sposób :P

poprawienie tytułu wątku + dodanie znaczników <code class="asm">, <code class="cpp"> i `` - fp

0

var_4 jest wskaźnikiem na adres pamięci zadeklarowałem jaki int (tez próbowałem inaczej

Pokaż tą deklarację.

0
int var_8,var_8C, arg_0, *var_4;
 var_4 = &var_88;
0

var_8 nie jest wskaznikiem a probujesz go dereferowac.

0
mov     eax, [ebp+var_8]
mov     ecx, [eax]

mi się wydaje ze jest

dodanie znacznika <code class="asm"> - fp

0
int var_8 (...)

Tu nie jest.

0

prawidlowa odpowiedz to

 *var_4 =((*var_8)&0xfc0000)   <<6;
0

tak blad byl w deklaracji zmiennych (nikogo nie oszukiwałem porostu moja wiedza nie jest zbyt duza a jak widzę wskaźniki w c++ to zaczynam się w pewnym momencie gubić czy to już zmienna wskaźnik itp, no i w aseblerze nie ma deklaracji mogę się tylko domyślać co to jest

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