Что означает `dword ptr`?


Ответы:


119

dword ptrЧасть называется директивой размера. Эта страница объясняет их, но невозможно было напрямую указать нужный раздел.

По сути, это означает, что «размер целевого операнда составляет 32 бита», поэтому это будет побитовое И 32-битное значение по адресу, вычисленному путем взятия содержимого ebpрегистра и вычитания четырех из 0.


72
Буква «d» в слове «dword» означает «двойной». Слово 16 бит.
JeremyP

Для получения дополнительной информации посетите эту ссылку
Alex Mathew

25
Зачем PTRнужна деталь? Разве не достаточно dword, чтобы закодировать размер? NASM не использует ptrAFAIK.
Чиро Сантилли 郝海东 冠状 病 六四 事件

1
@JeremyP Слово означает, что меняется в зависимости от процессоров. После прочтения этой статьи можете ли вы снова сказать, что слово 16 бит, или вы определяете только простое значение слова, которое означает два байта? Modern processors, including embedded systems, usually have a word size of 8, 16, 24, 32, or 64 bits, while modern general purpose computers usually use 32 or 64 bits. en.wikipedia.org/wiki/Word_(computer_architecture)
uzay95

6
@ uzay95 Вопрос помечен как «x86», поэтому мы говорим конкретно об архитектуре Intel x86, в которой слово имеет ширину 16 бит. Согласно вашей статье, даже x86_64 имеет размер слова 16 бит.
JeremyP

7

Рассмотрим рисунок, заключенный в этом другом вопросе . ebp-4- это ваша первая локальная переменная, рассматриваемая как указатель на двойное слово, это адрес 32-битного целого числа, которое необходимо очистить. Может быть, ваш источник начинается с

Object x = null;

3

Это 32-битное объявление. Если вы вводите в верхней части файла сборки оператор [бит 32], вам не нужно вводить DWORD PTR. Так например:

[bits 32]
.
.
and  [ebp-4], 0
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.