аз съм начинаещ в асемблерния език, разбирам много неща досега, но в продължение на много дни се задържах в един раздел, това е объркващо за мен и най-лошото е, че през многото страници, които посетих в интернет, информацията отново се изкривява, този раздел е Режими на адресиране по-специално на препратка към паметта, така че например в това Режими на адресиране в асемблерния език (IA-32 NASM)
две инструкции изглеждат еднакви, но коментарът е различен
- mov esi, var: Копира адреса на var (да кажем 0x0040120e) в esi
- mov dword [eax], var1: копира стойност във var1 в слота за памет
, посочен от eax
и двете инструкции се занимават с var или var1, които са етикети, но в коментарите за едната се споменава, че се копира съдържанието, докато за другата се копира адреса.
и така задавам още един въпрос какво ще бъде съдействието за тази инструкция:
- mov bx, [var]
и каква е разликата между тези инструкции също
- mov [var], bx-това приложимо ли е само ако var е масив, ако не, с какво се различава от следващата инструкция
- mov var, bx
- lea eax, [var] — стойността във var се поставя в EAX.тук е средната стойност
- LEA EBX, [MY_TABLE]ето това е средната стойност ефективен адрес
така че трябва да знам каква е разликата и има ли източник на увереност, от който мога да чета и да съм сигурен, че е правилен, между другото, използвам това урок и NASM като асемблер под windows.