พื้นฐานภาษาแอสเซมบลี x86/x64
ทำความรู้จักคำสั่งและไวยากรณ์พื้นฐานของภาษาแอสเซมบลี x86 และ x64
พื้นฐานภาษาแอสเซมบลี x86/x64 เป็นบทเรียน Reverse Engineering & Binary Analysis Basics ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Reverse Engineering & Binary Analysis Basics และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Reverse Engineering & Binary Analysis Basics มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
What is Assembly Language?
Welcome to the world of assembly language! This is the lowest-level programming language that humans typically read and write.
It's a symbolic representation of machine code, which are the raw binary instructions that a computer's processor (CPU) understands and executes directly. Think of it as the CPU's native tongue.
RE's Low-Level View
For reverse engineers, understanding assembly language is crucial. When you analyze a compiled program, you rarely have the original source code.
Instead, you'll be looking at its assembly representation. Learning assembly helps you:
- Understand exactly how a program executes.
- Identify functions, data, and control flow.
- Uncover hidden behaviors or vulnerabilities.
x86 vs x64: The Difference
When we talk about x86/x64 assembly, we're referring to instruction sets for Intel and AMD processors. The main difference is the architecture's 'width':
- x86: Refers to 32-bit architecture.
- x64: Refers to 64-bit architecture, also known as AMD64 or Intel 64.
While x64 introduces more registers and wider data paths, many fundamental instructions remain similar, often with extended versions.
Basic Instruction Format
Assembly instructions generally follow a simple format: INSTRUCTION destination, source.
- INSTRUCTION: This is the operation to perform (e.g., move, add, subtract).
- destination: Where the result of the operation will be stored.
- source: The data or location to operate on.
Some instructions might have one operand, or none at all. The order (destination, source) is common in Intel syntax, which we'll use.
The MOV Instruction
The MOV instruction is one of the most fundamental. It stands for 'move' and is used to copy data from a source to a destination.
It's important to note that MOV doesn't 'cut' or 'remove' the data from the source; it simply copies it, leaving the source unchanged.
Its general form is: MOV destination, source
MOV Examples (Conceptual)
Let's look at some conceptual examples of MOV. We'll use common x86/x64 register names like EAX, EBX, RCX, etc., which are tiny storage locations inside the CPU. Don't worry about their exact function yet!
MOV EAX, EBX: Copy the value from registerEBXinto registerEAX.MOV RCX, RDX: Copy the value fromRDXintoRCX(64-bit version).MOV EAX, 123: Copy the constant value123into registerEAX.
Arithmetic: ADD and SUB
Beyond just moving data, assembly allows basic arithmetic operations. Two common ones are ADD and SUB.
ADD destination, source: Adds thesourcevalue to thedestinationvalue, storing the result indestination.SUB destination, source: Subtracts thesourcevalue from thedestinationvalue, storing the result indestination.
These operations modify the destination operand directly.
ADD/SUB Examples (Conceptual)
Here are some conceptual examples for ADD and SUB:
ADD EAX, EBX:EAX = EAX + EBXSUB RCX, 10:RCX = RCX - 10ADD RDX, R8:RDX = RDX + R8(using a 64-bit general-purpose registerR8)
Notice how the destination operand is updated with the result of the operation.
Immediate Values & Operands
In assembly, the terms 'operand' and 'immediate value' are important:
- Operand: A value or location that an instruction operates on. This can be a register, a memory address, or an immediate value.
- Immediate Value: A constant value that is encoded directly within the instruction itself. For example, in
MOV EAX, 123,123is an immediate value.
Understanding these terms helps you interpret what kind of data an instruction is handling.
Assembly Basics Check
Which of the following best describes the function of the MOV instruction in x86/x64 assembly?
Recap: Assembly Fundamentals
Great job! You've just taken your first steps into the world of assembly language for x86/x64 processors.
We covered:
- What assembly language is and why it's vital for reverse engineering.
- The basic instruction format:
INSTRUCTION destination, source. - Fundamental instructions like
MOV(copy),ADD(add), andSUB(subtract). - The concept of immediate values and operands.
Next, we'll dive deeper into registers and how they interact with memory!
เรียนรู้ Assembly ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 12
- บทเรียน
- 48
คำถามที่พบบ่อย
บทเรียน “พื้นฐานภาษาแอสเซมบลี x86/x64” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พื้นฐานภาษาแอสเซมบลี x86/x64” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Reverse Engineering & Binary Analysis Basics ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Reverse Engineering & Binary Analysis Basics มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐานภาษาแอสเซมบลี x86/x64”
ทำความรู้จักคำสั่งและไวยากรณ์พื้นฐานของภาษาแอสเซมบลี x86 และ x64 คุณปฏิบัติ Reverse Engineering & Binary Analysis Basics ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Reverse Engineering & Binary Analysis Basics หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Reverse Engineering & Binary Analysis Basics บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “พื้นฐานภาษาแอสเซมบลี x86/x64” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Reverse Engineering & Binary Analysis Basics นี้ได้ไหม
ได้ บทเรียน Reverse Engineering & Binary Analysis Basics ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐานภาษาแอสเซมบลี x86/x64
- รีจิสเตอร์และการดำเนินการกับหน่วยความจำ
- การควบคุมลำดับการทำงานและการเรียกฟังก์ชัน
- สแตกและรูปแบบการเรียกใช้