Win32asm обучение


Урок 6 - Структура файла - часть 3


(1)

mov ecx, Number1

(2)

mov ecx, offset Number1

mov ecx, dword ptr [ecx] ( или mov ecx, [ecx])

Давайте вернемся к примеру:

.data

Number1 dd 12033h

Number2 dw 100h,200h,300h,400h

Number3 db "blabla",0


.data?

Value dd ?


.code

mov eax, Number1

mov ecx, offset Number2

add ax, word ptr [ecx+4]

mov Value, eax

Метки Value может использоваться точно так же как Number1, Number2 и Number3, но при запуске она будет содержать 0, потому что она находится в секции неинициализированных данных. Преимущество этого в том, что все, что вы определяете в секции .data? не будет включено в исполнимый файл, а будет только в памяти.

.data?

ManyBytes1 db 5000 dup (?)

.data

ManyBytes2 db 5000 dup (0)

(5000 dup означает: 5000 копий. Value db 4,4,4,4,4,4,4 это тоже самое, что Value db 7 dup (4).)

ManyBytes1 не будет находится непосредственно в исполнимом файле, а только зарезервирует 5000 байт в памяти. А ManyBytes2 будет полностью вложена в испонимый файл, делая его на 5000 байт больше. Таким образом ваш файл будет содержать 5000 нулей, а это не рационально.

Секция кода (.code) будет ассемблирована (преобразованна в коды) и помещена в исполнимый файл.

[наверх]




- Начало -  - Назад -  - Вперед -



Книжный магазин