Apa arti `dword ptr`?

123

Bisakah seseorang menjelaskan apa artinya ini? (Sintaks Intel, x86, Windows)

and     dword ptr [ebp-4], 0
小 太郎
sumber

Jawaban:

119

Bagian dword ptrtersebut disebut direktif ukuran. Halaman ini menjelaskannya, tetapi tidak mungkin untuk menautkan langsung ke bagian yang benar.

Pada dasarnya, ini berarti "ukuran operan target adalah 32 bit", jadi ini akan bitwise-DAN nilai 32-bit pada alamat dihitung dengan mengambil isi ebpregister dan mengurangkan empat dengan 0.

beristirahat
sumber
72
"D" dalam "dword" adalah singkatan dari "double". Sebuah kata terdiri dari 16 bit.
JeremyP
Untuk referensi lebih lanjut kunjungi tautan
Alex Mathew
25
Mengapa PTRbagian itu dibutuhkan? Bukankah dword cukup untuk menyandikan ukuran? NASM tidak menggunakan ptrAFAIK.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
1
@JeremyP Kata berarti berubah menurut prosesor. Setelah membaca artikel ini dapatkah Anda mengatakan lagi kata itu 16 bit atau Anda hanya mendefinisikan arti sederhana dari kata yang artinya dua byte? 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 Pertanyaannya ditandai "x86" jadi kita berbicara secara khusus tentang arsitektur Intel x86, di mana sebuah word berukuran lebar 16 bit. Menurut artikel Anda, bahkan x86_64 memiliki ukuran word 16 bit.
JeremyP
7

Perhatikan sosok yang terlampir dalam pertanyaan lain ini . ebp-4adalah variabel lokal pertama Anda dan, dilihat sebagai penunjuk dword, ini adalah alamat integer 32 bit yang harus dihapus. Mungkin sumber Anda dimulai dengan

Object x = null;
mico
sumber
3

Ini adalah deklarasi 32bit. Jika Anda mengetik di bagian atas file assembly pernyataan [bit 32], maka Anda tidak perlu mengetik DWORD PTR. Jadi contohnya:

[bits 32]
.
.
and  [ebp-4], 0
L4m0r
sumber