ใครช่วยอธิบายความหมายได้บ้าง? (ไวยากรณ์ของ Intel, x86, Windows)
and dword ptr [ebp-4], 0
ใครช่วยอธิบายความหมายได้บ้าง? (ไวยากรณ์ของ Intel, x86, Windows)
and dword ptr [ebp-4], 0
คำตอบ:
dword ptr
ส่วนหนึ่งที่เรียกว่าคำสั่งขนาด หน้านี้อธิบายพวกเขา แต่ไม่สามารถเชื่อมโยงโดยตรงไปยังส่วนที่ถูกต้องได้
โดยทั่วไปหมายถึง "ขนาดของตัวถูกดำเนินการเป้าหมายคือ 32 บิต" ดังนั้นค่านี้จะเป็นบิต - และค่า 32 บิตที่แอดเดรสคำนวณโดยการรับเนื้อหาของebp
รีจิสเตอร์และลบสี่ด้วย 0
PTR
ส่วนจึงจำเป็น? dword ไม่เพียงพอที่จะเข้ารหัสขนาดหรือไม่? NASM ไม่ใช้ptr
AFAIK
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)
พิจารณาตัวเลขที่อยู่ในคำถามอื่นนี้
ebp-4
เป็นตัวแปรท้องถิ่นตัวแรกของคุณและถูกมองว่าเป็นตัวชี้คำหลักเป็นที่อยู่ของจำนวนเต็ม 32 บิตที่ต้องถูกล้าง แหล่งที่มาของคุณอาจเริ่มต้นด้วย
Object x = null;
เป็นการประกาศ 32 บิต ถ้าคุณพิมพ์คำสั่ง [bits 32] ที่ด้านบนของไฟล์ประกอบคุณก็ไม่จำเป็นต้องพิมพ์ DWORD PTR ตัวอย่างเช่น:
[bits 32]
.
.
and [ebp-4], 0