การเขียนโปรแกรมในแอสเซมบลี

ผู้เขียน: Frank Hunt
วันที่สร้าง: 13 มีนาคม 2021
วันที่อัปเดต: 1 กรกฎาคม 2024
Anonim
การเขียนโปรแกรมภาษาแอสเซมบลีบนยูนิกซ์ (Unix Assembly Programming)
วิดีโอ: การเขียนโปรแกรมภาษาแอสเซมบลีบนยูนิกซ์ (Unix Assembly Programming)

เนื้อหา

การเขียนโปรแกรมในแอสเซมบลีมักเป็นจุดเริ่มต้นที่สำคัญเมื่อนักเขียนโปรแกรมคอมพิวเตอร์กำลังเรียนรู้การค้าของตน ภาษาแอสเซมบลีหรือแอสเซมบลี (หรือ ASM) เป็นภาษาโปรแกรมสำหรับคอมพิวเตอร์และอุปกรณ์อื่น ๆ และโดยทั่วไปถือว่าเป็นตัวแปรระดับต่ำเมื่อเทียบกับภาษาขั้นสูงที่มีฟังก์ชันเพิ่มเติม เมื่อคุณเขียนโค้ดแล้วแอสเซมบลีจะแปลงเป็นรหัสเครื่อง (เลขศูนย์และตัว) ในขณะที่แอปพลิเคชันสำหรับการเขียนโปรแกรมแอสเซมบลีมีข้อ จำกัด มากขึ้นเนื่องจากความซับซ้อนของโปรเซสเซอร์ที่เพิ่มขึ้น แต่แอสเซมบลียังคงมีประโยชน์สำหรับวัตถุประสงค์หลายประการรวมถึงการเขียนโค้ดสำหรับไฟล์ปฏิบัติการแบบสแตนด์อโลนหรือไดรเวอร์อุปกรณ์

ที่จะก้าว

ส่วนที่ 1 ของ 3: ทำความคุ้นเคยกับการประกอบ

  1. อ่านเพิ่มเติมเกี่ยวกับภาษาแอสเซมบลี ก่อนที่จะพยายามเขียนโค้ดคุณควรทำความเข้าใจภาษาของตัวเองก่อนเสมอ มีแหล่งข้อมูลมากมายตั้งแต่หนังสือเรียนไปจนถึงคู่มือออนไลน์
  2. เรียนรู้คำศัพท์พื้นฐาน ตัวอย่างเช่นคุณจะต้องการทราบว่า IDE (สภาพแวดล้อมการพัฒนาแบบรวม) มีอินเทอร์เฟซการเข้ารหัสที่จัดการสิ่งต่างๆเช่นการแก้ไขข้อความการดีบักและการคอมไพล์ คุณยังสามารถทำความเข้าใจได้ดีขึ้นว่าแอสเซมบลีทำงานอย่างไรเช่นการ "รีจิสเตอร์" จะจัดเก็บตัวเลขที่เกี่ยวข้องกับโค้ดโปรแกรม ความเข้าใจที่ดีขึ้นเกี่ยวกับคำศัพท์จะทำให้ง่ายต่อการเรียนรู้วิธีการเขียนโปรแกรมด้วยตัวคุณเอง
  3. ตัดสินใจว่าการประกอบเหมาะสำหรับคุณหรือไม่ โปรดทราบว่ามีภาษาโปรแกรมหลายภาษารวมถึงบางภาษาที่ให้ฟังก์ชันการทำงานที่มากกว่าแอสเซมบลี อย่างไรก็ตามยังมีแอพพลิเคชั่นจำนวนมากที่แอสเซมบลีมีประโยชน์ตั้งแต่การสร้างไฟล์ปฏิบัติการแบบสแตนด์อโลนสำหรับเฟิร์มแวร์โทรศัพท์และระบบปรับอากาศไปจนถึงการพัฒนาคำสั่งเฉพาะโปรเซสเซอร์
  4. ตัดสินใจว่าคุณต้องการใช้ชุดประกอบใด แอสเซมบลีเช่น A86, NASM หรือ GNU โดยทั่วไปจะมีฟังก์ชันที่ซับซ้อนน้อยกว่าและเป็นจุดเริ่มต้นที่เหมาะสมสำหรับผู้เริ่มต้น แต่ละแอสเซมบลีทำงานแตกต่างกันเล็กน้อย แต่คำแนะนำต่อไปนี้ทำงานภายใต้สมมติฐานว่าคุณกำลังใช้ MASM (Microsoft Macro assembly) ซึ่งเป็นแอสเซมบลีพื้นฐานที่ทำงานร่วมกับระบบปฏิบัติการ Windows ใช้ภาษาแอสเซมบลี x86 และไวยากรณ์ของ Intel

ส่วนที่ 2 จาก 3: ดาวน์โหลดและติดตั้งชุดประกอบและ IDE

  1. ดาวน์โหลดแอสเซมบลีด้วยตัวคุณเอง คุณสามารถค้นหา MASM เวอร์ชันล่าสุดได้ใน Visual Studio Enterprise 2015 (IDE ที่ครอบคลุมพร้อมเครื่องมือมากมาย) แต่เวอร์ชันดั้งเดิมที่เรียบง่ายกว่า (MASM 8.0) สามารถดาวน์โหลดได้ฟรี แอสเซมบลีบางตัวเช่น Flat assembly สามารถใช้ได้กับระบบปฏิบัติการหลายระบบรวมถึง Windows, DOS และ Linux ภาษาแอสเซมบลีอื่น ๆ รวมถึงแอสเซมบลี Netwide (NASM) และแอสเซมบลี GNU (GAS) ก็ใช้ได้กับ Mac เช่นกัน
    • ในการดาวน์โหลด MASM 8.0 ให้คลิกปุ่มดาวน์โหลดที่ด้านบนของเพจที่อ้างถึงในขั้นตอนนี้
    • ความต้องการของระบบจะแตกต่างกันไปขึ้นอยู่กับชุดประกอบที่คุณเลือก แต่ MASM 8.0 ต้องการ Windows 2000 Service Pack 3, Windows Server 2003 หรือ Windows XP Service Pack 2
    • สำหรับการติดตั้ง MASM 8.0 คุณจำเป็นต้องดาวน์โหลดและติดตั้ง Visual C ++ 2005 Express Edition
  2. ดาวน์โหลด IDE ทำการค้นหา "WinAsm download" เพื่อค้นหาและติดตั้ง WinAsm IDE ซึ่งโดยทั่วไปจะทำงานได้ดีกับ MASM IDE อื่น ๆ อาจเหมาะสมกว่าขึ้นอยู่กับภาษาโปรแกรมที่คุณใช้ ทางเลือกยอดนิยมคือ RadAsm
  3. ติดตั้ง MASM 8.0 คุณสามารถเริ่มการติดตั้งได้ทันทีโดยคลิกเรียกใช้เมื่อดาวน์โหลดโปรแกรมแล้ว คุณยังสามารถติดตั้งได้ในภายหลังในกรณีนั้นให้คลิกบันทึก หลังจากคลิกเรียกใช้ MASM 8.0 จะถูกติดตั้งในโฟลเดอร์ "[Visual C ++ Express] bin" ภายใต้ชื่อ ml.exe
  4. ติดตั้ง IDE ของคุณ หลังจากดาวน์โหลด WinAsm แล้วให้แตกไฟล์และคัดลอกไปยังโฟลเดอร์ "c: Program Files " คุณยังสามารถใส่ทางลัดบนเดสก์ท็อปเพื่อให้เข้าถึงได้ง่ายขึ้น
  5. กำหนดค่า IDE ของคุณ เริ่มโปรแกรม WinAsm ก่อน หากคุณวางทางลัดไว้บนเดสก์ท็อปให้ดับเบิลคลิก โปรดทราบว่ากระบวนการนี้จะแตกต่างกันหากคุณใช้แอสเซมบลีหรือ IDE อื่น
  6. รวม WinAsm กับ MASM 8.0 เริ่มต้นด้วยการคลิกที่แท็บเครื่องมือของ WinAsm เลือกตัวเลือกจากแท็บนี้และสุดท้ายเลือกแท็บไฟล์และเส้นทาง จากนั้นเปลี่ยนสามบรรทัดแรก (อ้างถึงเส้นทาง) ไปยังโฟลเดอร์การติดตั้ง MASM ของคุณ เมื่อเสร็จแล้วให้คลิกตกลง
    • เมื่อแก้ไขข้อมูลในแท็บ "ไฟล์และเส้นทาง" สามบรรทัดแรกควรอ่านดังนี้ เส้นทางไบนารีต้องเป็น C: Masm32Bin เส้นทางรวมคือ C: Masm32Include และเส้นทางไลบรารีคือ C: Masm32Bin

ส่วนที่ 3 ของ 3: การเขียนโปรแกรม

  1. เริ่มเขียนโค้ด เริ่มต้นด้วย WinAsm และคลิกที่แท็บไฟล์ จากนั้นเลือกโครงการใหม่และคุณจะเห็นตัวเลือกต่างๆ ตัวเลือกเหล่านี้ ได้แก่ Console Application และ Standard EXE ตัวอย่างเช่นหากคุณกำลังพยายามสร้างแอปพลิเคชันที่ใช้ GUI (อินเทอร์เฟซผู้ใช้แบบกราฟิก) ให้เลือกอย่างหลัง
  2. ใช้โครงสร้างโปรแกรมประกอบ โครงสร้างทั่วไปอาจประกอบด้วยบรรทัดที่กำหนดสถาปัตยกรรมส่วนข้อมูล (section.data) ที่มีข้อมูลเริ่มต้นหรือค่าคงที่ส่วน bss (section.bss) ประกาศตัวแปรและส่วนข้อความ (section.text) ซึ่งคุณของคุณ รหัสโปรแกรมจริง ส่วนสุดท้ายนั้นจะเริ่มต้นด้วยการประกาศ _start ส่วนกลางเสมอ แต่ละลำดับเรียกว่าบล็อกของรหัส
  3. เข้าใจคำสั่งพื้นฐาน คำสั่งภาษาแอสเซมบลีคำสั่งปฏิบัติการหรือคำสั่งมีสามประเภท (สิ่งเหล่านี้จะบอกโปรเซสเซอร์ว่าต้องทำอะไรผ่านรหัสปฏิบัติการ) คำสั่งแอสเซมบลีหรือตัวดำเนินการหลอก (สิ่งเหล่านี้อธิบายกระบวนการประกอบไปยังแอสเซมบลี) และมาโคร (ซึ่งทำหน้าที่เป็นกลไกในการเข้า ของข้อความ)

เคล็ดลับ

  • การเขียนโค้ดที่มีประสิทธิภาพในภาษาแอสเซมบลี (หรือภาษาอื่น ๆ ) โดยทั่วไปจำเป็นต้องมีการศึกษาอย่างละเอียด โดยเฉพาะอย่างยิ่งคุณจะต้องเรียนรู้ไวยากรณ์ที่จำเป็นสำหรับคำสั่งโค้ดและวิธีการคอมไพล์และเชื่อมโยงโปรแกรมแอสเซมบลี
  • หากคุณประสบปัญหาในการตั้งค่าการชุมนุมเฉพาะเจาะจงอาจเป็นการดีที่จะเข้าร่วมฟอรัมที่สามารถตอบคำถามบางอย่างได้
  • ภาษาโปรแกรมบางภาษามีสิ่งอำนวยความสะดวกในการรวมแอสเซมบลีเช่นฟังก์ชัน ASM ("") ใน C และ C ++ นี่เป็นวิธีที่ดีในการเริ่มต้น
  • หากคุณสนใจ IDE ที่ใช้งานได้กับ MASM เวอร์ชันใหม่กว่าโปรดดู Visual MASM ที่ www.visualmasm.com/