Before covering some basic instructions, you need to understand addressing modes, which are ways an instruction can access registers or memory. The following are common addressing modes with examples:
Immediate: the value is stored in the instruction. ADD EAX, 14 ; add 14 into 32-bit EAX
Register to register ADD R8L, AL ; add 8 bit AL into R8L
Indirect: this allows using an 8, 16, or 32 bit displacement, any general purpose registers for base and index, and a scale of 1, 2, 4, or 8 to multiply the index. Technically, these can also be prefixed with segment FS: or GS: but this is rarely required. MOV R8W, 1234[8*RAX+RCX] ; move word at address 8*RAX+RCX+1234 into R8W
There are many legal ways to write this. The following are equivalent
MOV ECX, dword ptr table[RBX][RDI]
MOV ECX, dword ptr table[RDI][RBX]
MOV ECX, dword ptr table[RBX+RDI]
MOV ECX, dword ptr [table+RBX+RDI]
The dword ptr tells the assembler how to encode the MOV instruction.
RIP-relative addressing: this is new for x64 and allows accessing data tables and such in the code relative to the current instruction pointer, making position independent code easier to implement.
ก่อนที่จะครอบคลุมขั้นตอนพื้นฐานบาง คุณต้องเข้าใจวิธีแก้ปัญหา ซึ่งเป็นคำสั่งสามารถเข้าถึงการลงทะเบียนหรือหน่วยความจำ ต่อไปนี้จะร่วมกันกำหนดวิธีการตัวอย่าง: ทันที: ค่าที่อยู่ในคำสั่ง ADD EAX, 14 เพิ่ม 14 ใน EAX 32 บิตลงทะเบียนเพื่อลงทะเบียนเพิ่ม R8L, AL เพิ่ม 8 บิต AL เป็น R8Lทางอ้อม: ให้ ใช้ 8, 16, 32 บิตแทน ประสงค์ทั่วไปการลงทะเบียนฐานดัชนี และระดับ 1, 2, 4 หรือ 8 ไปคูณดัชนี เทคนิค เหล่านี้สามารถยังนำหน้า ด้วยเซกเมนต์ FS: หรือ GS: แต่นี้จำไม่ค่อยได้ MOV R8W, 1234 [8 * RAX + RCX]; ย้ายคำที่อยู่ 8 * RAX + RCX + 1234 เป็น R8Wมีหลายวิธีทางกฎหมายเพื่อนี้ ต่อไปนี้จะเทียบเท่าMOV ECX ตารางโดยใช้ ptr dword [RBX] [RDI]MOV ECX ตารางโดยใช้ ptr dword [RDI] [RBX]MOV ECX ตารางโดยใช้ ptr dword [RBX + RDI]MOV ECX, dword โดยใช้ ptr [ตาราง + RBX + RDI]โดยใช้ ptr dword บอกวิธีการเข้ารหัสคำสั่ง MOV ที่มิเตอร์แก้ปัญหาญาติ RIP: นี้ใหม่สำหรับ x 64 และช่วยให้การเข้าถึงตารางข้อมูลเช่นรหัสสัมพันธ์ชี้คำสั่งปัจจุบัน ทำตำแหน่งอิสระรหัสจะใช้
การแปล กรุณารอสักครู่..

ก่อนที่จะครอบคลุมคำแนะนำพื้นฐานบางอย่างที่คุณจำเป็นต้องเข้าใจโหมดซึ่งเป็นวิธีการเรียนการสอนสามารถเข้าถึงหน่วยความจำลงทะเบียนหรือ ต่อไปนี้เป็นโหมดที่อยู่ร่วมกันกับตัวอย่าง: ทันที: ค่าที่ถูกเก็บไว้ในการเรียนการสอน เพิ่ม EAX 14; เพิ่มเข้ามา 14 32 บิต EAX สมัครสมาชิกเพื่อลงทะเบียนเพิ่ม R8L อัล; เพิ่ม 8 บิตอัลเข้า R8L ทางอ้อม: นี้จะช่วยให้การใช้ 8, 16, หรือ 32 บิตการเคลื่อนที่ใด ๆ ที่ลงทะเบียนอเนกประสงค์ฐานและดัชนีและขนาด 1, 2, 4, 8 คูณดัชนี เทคนิคเหล่านี้ยังสามารถนำหน้าด้วยส่วน FS หรือ GS แต่นี้จะต้องไม่ค่อย R8W MOV, 1234 [8 Rax * + RCX]; ย้ายคำที่อยู่ 8 * Rax RCX + + 1234 เข้า R8W มีวิธีการที่ถูกต้องตามกฎหมายจำนวนมากที่จะเขียนนี้ ต่อไปนี้เป็นเทียบเท่าMOV ECX, DWORD ตาราง PTR [RBX] [RDI] MOV ECX, DWORD ตาราง PTR [RDI] [RBX] MOV ECX, DWORD ตาราง PTR [RBX + RDI] MOV ECX, DWORD PTR [ตาราง + RBX + RDI ] PTR DWORD ประกอบบอกวิธีการเข้ารหัสการเรียนการสอน MOV ได้. RIP ญาติที่อยู่: นี่คือใหม่สำหรับ x 64 และช่วยให้การเข้าถึงตารางข้อมูลและญาติดังกล่าวในรหัสตัวชี้การเรียนการสอนในปัจจุบันทำให้รหัสอิสระตำแหน่งที่ง่ายต่อการใช้
การแปล กรุณารอสักครู่..

ก่อนที่จะครอบคลุมคำแนะนำพื้นฐานบางอย่างที่คุณจำเป็นต้องเข้าใจกับโหมดซึ่งเป็นวิธีการเรียนการสอนที่สามารถเข้าถึงการลงทะเบียนหรือหน่วยความจำ ต่อไปนี้เป็นร่วมกันกับโหมดด้วยตัวอย่าง :
ได้ทันที : ค่าจะถูกเก็บไว้ในการสอน เพิ่ม eax , 14 ; เพิ่ม 14 เป็น 32 บิต eax
ลงทะเบียนลงทะเบียนเพิ่ม r8l อัล เพิ่มเป็น 8 บิต อัล r8l
ทางอ้อม : นี้ช่วยให้ใช้ 8 , 16หรือ 32 บิตการลงทะเบียนใด ๆเพื่อวัตถุประสงค์ทั่วไปและฐานและดัชนีระดับ 1 , 2 , 4 หรือ 8 คูณดัชนี เทคนิคเหล่านี้ยังสามารถแล้วนำหน้าด้วยส่วน FS : หรือ GS แต่นี่แทบไม่ต้อง และ r8w , 1234 [ 8 * rax rcx ] ; ย้ายคำที่อยู่ 8 * rax rcx 1234 เป็น r8w
มีหลายวิธีในทางกฎหมายที่จะเขียนนี้ ต่อไปนี้เป็น ecx MOV เทียบเท่า
, dword ใช้ตาราง [ ] [ ]
rbx RDIecx MOV , ใช้ dword โต๊ะ [ ปริมาณ ] [ rbx ]
ecx MOV , ใช้ dword โต๊ะ [ rbx RDI ]
MOV ecx dword โต๊ะ rbx RDI , ใช้ [ ]
dword ใช้บอกประกอบวิธีการเข้ารหัส mov สอน .
ตัดญาติที่อยู่ : นี่เป็นเรื่องใหม่สำหรับ และช่วยให้เข้าถึงข้อมูลและตาราง เช่นในโค้ดที่สัมพันธ์กับตัวชี้สอนปัจจุบัน ทำให้ตำแหน่งอิสระโค้ดง่ายต่อการใช้ .
การแปล กรุณารอสักครู่..
