Wpis z mikrobloga

@Zelber: @mikzur: @keton22: @LazyInitializationException: @alex-fortune:

intel ia-32, chodzi o adresowanie operandów w pamięci i tłumaczenie rozkazów na kod maszynowy - potrzebuję wyjaśnienia co np. robi instrukcja "mov 4(%EBX), %ECX", czy "mov (%EBX, %EDX, 4)", "[EBX+4]", niby mam materiały ale nie do końca potrafię z nich zrozumieć o co dokładnie chodzi, nad tłumaczeniem rozkazów jeszcze posiedzę sam
  • Odpowiedz
@maciej__: matko, strasznie nie lubie tej notacji, generalnie wygladaja na dokladnie to samo:
MOV DWORD PTR DS:[EBX+4], ECX

Czyli tlumaczac na nasze - zapisz w pamięci pod adresem EBX + 4 32 bitową wartość ECX
  • Odpowiedz
@alex-fortune: czyli mov 4(%EBX) oznacza adres EBX+4? skąd wniosek, że ECX to 32 bitowa wartość? i co z pozostałymi rozkazami? przy temacie z tablicami przestałem rozumieć o co chodzi i później już nic nie ogarniałem ( ͡° ʖ̯ ͡°)
  • Odpowiedz
@maciej__: tak, z tego co pamiętam tak, tak jak mowie, na codzien posluguje sie tylko intelowym syntaxem ( tym co pisalem wyzej ), reszta wydaje mi sie brzydka jak noc.

ECX jest 32 bitowy, bo taka jest konwencja:
RCX = 64 bit
ECX = 32 bit
CX ( jesli dobrze pamietam ) = 16 bit
CL = 8 bit
  • Odpowiedz