การคอมไพล์แอสเซมบลีโปรแกรมด้วย NASM

การคอมไพล์แอสเซมบลีแอสเซมบลี กับ NASM สามารถทำได้บน Linux หรือ Windows เนื่องจาก NASM พร้อมใช้งานสำหรับทั้งสองแพลตฟอร์ม Netwide Assembler (NASM) เป็นแอสเซมเบลอร์และตัวแยกสำหรับสถาปัตยกรรม Intel x86 และใช้กันทั่วไปในการสร้างโปรแกรม 16 บิต, 32 บิต (IA-32) และ 64 บิต (x86-64)

ชุดประกอบจะเปลี่ยนการเข้ารหัสระดับต่ำของคุณโดยใช้ตัวช่วยจำเป็นภาษาเครื่องที่โปรเซสเซอร์สามารถเข้าใจได้ บทความนี้จะไม่สอนให้คุณเขียนโปรแกรมกับ NASM แต่เพื่อสร้างคำสั่งที่ปฏิบัติการได้สำหรับ Linux และ Windows จากซอร์สโค้ด NASM

  • รวบรวมแอสเซมบลีโปรแกรมด้วย NASM สำหรับ Linux
    • การสร้างไฟล์ต้นฉบับ
    • การประกอบไฟล์ต้นฉบับ
    • การสร้างปฏิบัติการ
    • การดำเนินการโปรแกรม
  • รวบรวมแอสเซมบลีโปรแกรมด้วย NASM สำหรับ Windows
    • การติดตั้งซอฟต์แวร์
    • การสร้างไฟล์ต้นฉบับ
    • การประกอบไฟล์ต้นฉบับ
    • การสร้างและการดำเนินการของโปรแกรม

รวบรวมแอสเซมบลีโปรแกรมด้วย NASM สำหรับ Linux

การสร้างไฟล์ต้นฉบับ

คุณสามารถใช้โปรแกรมแก้ไขข้อความใด ๆ เช่น Gedit, KWrite หรือ XEmacs เมื่อคุณบันทึกไฟล์ของคุณให้นามสกุล. asm

การประกอบไฟล์ต้นฉบับ

สำหรับขั้นตอนนี้คุณจะต้องติดตั้งซอฟต์แวร์ NASM บนเครื่องของคุณ

หากคุณใช้ Debian หรือ Ubuntu เพียงพิมพ์คำสั่ง:

 sudo apt-get nasm install 

หากคุณมีการกระจาย Linux อื่นคุณต้องใช้ตัวจัดการแพ็คเกจการกระจาย (เช่น Urpmi, Yum, Emerge) หรือดาวน์โหลด NASM จากเว็บไซต์อย่างเป็นทางการ

ใช้บรรทัดคำสั่งต่อไปนี้เพื่อรวบรวมไฟล์ต้นฉบับของคุณ:

 nasm -f elf test.asm 

ในตัวอย่างไฟล์. asm ที่บันทึกไว้เรียกว่า test.asm สิ่งนี้จะสร้างไฟล์ชื่อ test.o ในไดเรกทอรีปัจจุบัน

NB ไฟล์นี้ไม่สามารถเรียกใช้งานได้ มันยังคงเป็นไฟล์วัตถุ

การสร้างปฏิบัติการ

ตอนนี้เรามีไฟล์วัตถุชื่อ test.o เราต้องสร้างไฟล์ปฏิบัติการของเรา

โปรแกรมของคุณอาจเริ่มต้นด้วยขั้นตอนที่เรียกว่า _start ซึ่งหมายความว่าโปรแกรมของคุณมีจุดเข้าใช้งานของตัวเองโดยไม่ต้องใช้ฟังก์ชั่น หลัก อย่างไรก็ตามคุณจะต้องใช้ "l" เพื่อสร้างไฟล์ปฏิบัติการของคุณ:

 ld test.o -o test 

โปรแกรมของคุณอาจเริ่มต้นด้วยโพรซีเดอร์ที่เรียกว่า main คุณจะต้องใช้ gcc เพื่อสร้างไฟล์ปฏิบัติการของคุณ:

 gcc test.o -o test 

ตอนนี้ไฟล์ปฏิบัติการของคุณจะถูกสร้างทดสอบและอยู่ในไดเรกทอรีปัจจุบัน

การดำเนินการโปรแกรม

ในการรันโปรแกรมที่เรียกว่า test เพียงพิมพ์คำสั่งนี้:

 . / ทดสอบ 

รวบรวมแอสเซมบลีโปรแกรมด้วย NASM สำหรับ Windows

ฟังก์ชั่น หลัก ไม่สามารถใช้งานได้ใน Windows และจะต้องถูกแทนที่ด้วย WinMain

หากจุดเข้าใช้งานของคุณคือ _start หรือ main ควรเปลี่ยนเป็น _WinMain @ 16 นอกจากนี้ให้เปลี่ยนการตัดปลายเมื่อสิ้นสุดกระบวนการเป็น 16 :

 ส่วน. text

ทั่วโลก

:

mov eax, 0

อายุ 16 ปี

การติดตั้งซอฟต์แวร์

คุณต้องติดตั้ง //ccm.net/download/download 1025 NASM ก่อน เก็บถาวรบางส่วนตามที่จะใช้ในภายหลัง

ขั้นตอนที่ยากที่สุดคือการติดตั้ง MinGW ซึ่งเป็นสภาพแวดล้อมการพัฒนาฟรีสำหรับ Windows:

เริ่มต้นด้วยการเลือก MingGW เวอร์ชั่นล่าสุดจาก AZ เรียกใช้โปรแกรมติดตั้ง แต่ไม่ต้องอัพเดตในตอนนี้ ปล่อยให้ตัวเลือกทั้งหมดที่เลือกไว้เป็นค่าเริ่มต้นและรอให้ติดตั้ง

ตอนนี้คุณต้องแทรก NASM ในสภาพแวดล้อมการพัฒนา MinGW คลายไฟล์เก็บถาวร NASM คุณควรได้รับโฟลเดอร์ที่มีไฟล์ชื่อว่า nasm.exe คัดลอกไฟล์นี้ไปยังไดเรกทอรี C: \ MinGW \ bin

การสร้างไฟล์ต้นฉบับ

เช่นเดียวกับ Linux ไม่จำเป็นต้องใช้ผู้เผยแพร่เฉพาะเพื่อสร้างไฟล์ต้นฉบับสำหรับ NASM คุณสามารถใช้ Notepad แต่โปรดทราบว่ามันมีแนวโน้มที่จะเพิ่มนามสกุล . txt ให้กับไฟล์ที่สร้างขึ้น ในการลบความกำกวมใด ๆ ขอแนะนำให้คุณดูนามสกุลของไฟล์

ไม่ว่าในกรณีใด ๆ ให้หลีกเลี่ยงตัวประมวลผลคำเช่น Word หรือ WordPad

หากคุณต้องการคุณยังสามารถใช้เครื่องมือแก้ไขที่ใช้ไวยากรณ์ NASM เช่น NasmEdit IDE

ตรวจสอบให้แน่ใจว่าคุณบันทึกไฟล์ต้นฉบับด้วยนามสกุล. asm

การประกอบไฟล์ต้นฉบับ

เปิดหน้าต่าง คำสั่ง โดยไปที่ เริ่ม> เรียกใช้ แล้วพิมพ์ cmd.exe

ใช้ ซีดี คำสั่งไปที่โฟลเดอร์ที่มีไฟล์ต้นฉบับของคุณ เมื่อคุณอยู่ในไดเรกทอรีนี้ให้รวบรวมไฟล์ต้นฉบับ ( test.asm ) ด้วยคำสั่งนี้:

 nasm -f win32 test.asm -o test.o 

ตอนนี้คุณสร้างไฟล์วัตถุ ขั้นตอนต่อไปจะเปลี่ยนเป็นไฟล์ที่ปฏิบัติการได้

การสร้างและการดำเนินการของโปรแกรม

จากหน้าต่าง คำสั่ง ของคุณพิมพ์คำสั่งสุดท้ายเพื่อสร้างปฏิบัติการ:

 ld test.o -o test.exe

รูปภาพ: © Alexandr Pakhnyushchyy - Shutterstock.com

บทความก่อนหน้านี้ บทความถัดไป

เคล็ดลับยอดนิยม