Win32asm обучение

  d8ef8794     

Метки Value может использоваться точно


(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) будет ассемблирована (преобразованна в коды) и помещена в исполнимый файл.
[наверх]

Содержание  Назад  Вперед







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий