การคอมไพล์แอสเซมบลีโปรแกรมด้วย NASM
ชุดประกอบจะเปลี่ยนการเข้ารหัสระดับต่ำของคุณโดยใช้ตัวช่วยจำเป็นภาษาเครื่องที่โปรเซสเซอร์สามารถเข้าใจได้ บทความนี้จะไม่สอนให้คุณเขียนโปรแกรมกับ 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