อ่าน 3 นาที
เอฟเอสเอ็ม
FASM ( flat assembler ) เป็น แอสเซมเบลอร์ สำหรับ โปรเซสเซอร์ x86 รองรับ ภาษาแอสเซมบลี แบบ Intel บน สถาปัตยกรรมคอมพิวเตอร์ IA-32 และ x86-64 อ้างว่ามีความเร็วสูง...
เอฟเอสเอ็ม
| เอฟเอสเอ็ม | |
|---|---|
ภาพหน้าจอพร้อมตัวอย่างที่ให้มา | |
| นักพัฒนา | โทมัสซ์ กรีสตาร์ |
| ปล่อย | มีนาคม พ.ศ. 2543 |
| เวอร์ชันเสถียร | 1.73.35 [ 1 ] |
| เขียนเป็น | การประกอบ |
| ระบบปฏิบัติการ | ระบบปฏิบัติการแบบ Unix , Linux , Windowsและ IDE, MS-DOSและ IDE, OpenBSD , MenuetOS , KolibriOS , OctaOS , DexOS และ IDE, SkyOS , SolarOS |
| แพลตฟอร์ม | x86 , x86-64 |
| พิมพ์ | แอสเซมเบลอร์ |
| ใบอนุญาต | BSD แบบง่ายที่มีข้อกำหนดลิขสิทธิ์แบบอ่อน |
| เว็บไซต์ | flatassembler |
| ที่เก็บข้อมูล |
|
FASM ( flat assembler ) เป็นแอสเซมเบลอร์สำหรับ โปรเซสเซอร์ x86รองรับภาษาแอสเซมบลีแบบ Intel บน สถาปัตยกรรมคอมพิวเตอร์ IA-32และx86-64อ้างว่ามีความเร็วสูง การเพิ่มประสิทธิภาพขนาด ความสามารถในการพกพา ระบบปฏิบัติการ (OS) และความสามารถด้านมาโคร[ 2 ] [ 3 ]เป็นแอสเซมเบลอร์ระดับต่ำ[ 3 ]และตั้งใจใช้ ตัวเลือก บรรทัดคำสั่ง น้อยมาก เป็นซอฟต์แวร์ฟรีและโอเพนซอร์ส
FASM ทุกเวอร์ชันสามารถส่งออกข้อมูลต่อไปนี้ได้โดยตรง: ไบนารี แบบ "ดิบ" (สามารถใช้เป็นไฟล์ปฏิบัติการ MS-DOS COMหรือไดรเวอร์ SYS ได้เช่นกัน), ออบเจ็กต์: รูปแบบไฟล์ปฏิบัติการและเชื่อมโยง (ELF) หรือรูปแบบไฟล์ออบเจ็กต์ทั่วไป (COFF) (แบบคลาสสิกหรือเฉพาะของ MS) หรือไฟล์ปฏิบัติการใน รูปแบบ MZ , ELF หรือPortable Executable (PE) (รวมถึงไดรเวอร์ WDM ซึ่งอนุญาตให้ใช้สตับ MZ DOS แบบกำหนดเองได้) นอกจากนี้ ยังมีพอร์ตที่ไม่เป็นทางการที่กำหนดเป้าหมายสถาปัตยกรรม ARM อีกด้วย [ 4 ]
ประวัติศาสตร์
โครงการนี้เริ่มต้นในปี 1999 โดย Tomasz Grysztar หรือที่ รู้จักกันในชื่อ Privalovซึ่งในขณะนั้นเป็นนักศึกษาปริญญาตรีสาขาคณิตศาสตร์จากโปแลนด์มีการเผยแพร่สู่สาธารณะในเดือนมีนาคม 2000 [ 5 ] [ 6 ] FASM เขียนขึ้นด้วยภาษาแอสเซมบลี ทั้งหมด และมาพร้อมกับซอร์สโค้ดแบบเต็มรูปแบบ สามารถทำงานได้ด้วยตนเองและสามารถประกอบตัวเองได้ตั้งแต่เวอร์ชัน 0.90 (4 พฤษภาคม 1999)
FASM เดิมทีทำงานใน โหมดเรียลแบบ 16 บิตต่อมาได้เพิ่มการรองรับ 32 บิต และเสริมด้วย การรองรับ DPMI ที่เป็นตัวเลือก ได้ รับการออกแบบให้ง่ายต่อการพอร์ตไปยังระบบปฏิบัติการใด ๆ ที่ใช้การกำหนดแอดเดรสแบบ 32 บิต จึงถูกพอร์ตไปยัง Windows แล้วจึงไปยัง Linux
ออกแบบ
FASM ไม่รองรับ คำสั่ง ระดับสูง มาก เท่ากับMASMหรือTASM [ 3 ] FASM มีคุณสมบัติทางไวยากรณ์และมาโคร ซึ่งทำให้สามารถปรับแต่งหรือสร้างคำสั่งที่ขาดหายไปได้[ 5 ] ไวยากรณ์การกำหนดแอดเดรสหน่วยความจำคล้ายกับโหมดอุดมคติของ TASM และNASMวงเล็บใช้เพื่อระบุตัวดำเนินการหน่วยความจำเช่นเดียวกับในแอสเซมเบลอร์ทั้งสอง แต่ขนาดของตัวดำเนินการจะอยู่นอกวงเล็บ เช่นเดียวกับใน NASM [ 7 ]
FASM เป็นแอสเซมเบลอร์แบบหลายรอบ ทำการเพิ่มประสิทธิภาพขนาดโค้ดอย่างกว้างขวางและอนุญาตให้มีการอ้างอิงไปข้างหน้าโดยไม่จำกัด[ 3 ] [ 7 ] โครงสร้าง FASM ที่ไม่ธรรมดาคือการกำหนดขั้นตอนเฉพาะเมื่อมีการใช้ขั้นตอนเหล่านั้นในโค้ด ซึ่งในภาษาส่วนใหญ่จะดำเนินการต่อออบเจ็กต์โดยลิง เกอร์
FASM ใช้หลักการ "แหล่งที่มาเดียวกัน ผลลัพธ์เดียวกัน" กล่าวคือ เนื้อหาของไฟล์ที่ได้จะไม่ได้รับผลกระทบจากบรรทัดคำสั่ง[ 7 ]แนวทางดังกล่าวช่วยป้องกันปัญหาการคอมไพล์ซอร์สโค้ดของ FASM ซึ่งมักพบในโครงการแอสเซมบลีหลายโครงการ ในทางกลับกัน มันทำให้การบำรุงรักษาโครงการที่ประกอบด้วยไฟล์ซอร์สโค้ดที่คอมไพล์แยกกันหลายไฟล์หรือโครงการภาษาผสมทำได้ยากขึ้น อย่างไรก็ตาม มีตัวห่อ Win32 ที่เรียกว่า FA ซึ่งช่วยลดปัญหานี้ได้[ 8 ]โครงการ FASM สามารถสร้างจากไฟล์ซอร์สโค้ดไฟล์เดียวโดยตรงเป็นไฟล์ปฏิบัติการได้โดยไม่ต้องมีขั้นตอนการเชื่อมโยง[ 3 ]
IDE
Freshซึ่งเป็นโครงการที่เริ่มต้นโดย John Found เป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการสำหรับ FASM ภายใต้ Windows และ Linux [ 9 ]
ใช้
ระบบปฏิบัติการที่เขียนด้วย FASM:
- MenuetOS [ 10 ] – ระบบปฏิบัติการ GUI 32 บิตและ64 บิต โดย Ville Turijanmaa
- โคลิบริโอส
คอมไพเลอร์ที่ใช้ FASM เป็นแบ็กเอนด์:
ดูเพิ่มเติม
ลิงก์ภายนอก
- โครงการ FASM: เว็บไซต์อย่างเป็นทางการ
- FASMLIB 0.8.0 – ไลบรารี asm แบบพกพา 32 บิต x86 สำหรับ FASM/MASM/YASM/NASM/GASM
- FASMARM – FASM สำหรับโปรเซสเซอร์ ARM เวอร์ชัน 1.27 วันที่ 9 มิถุนายน 2555
- IDE ใหม่ล่าสุด
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เอฟเอสเอ็ม
FASM ( flat assembler ) เป็น แอสเซมเบลอร์ สำหรับ โปรเซสเซอร์ x86 รองรับ ภาษาแอสเซมบลี แบบ Intel บน สถาปัตยกรรมคอมพิวเตอร์ IA-32 และ x86-64 อ้างว่ามีความเร็วสูง...
ประวัติศาสตร์
โครงการนี้เริ่มต้นในปี 1999 โดย Tomasz Grysztar หรือที่ รู้จักกันในชื่อ Privalov ซึ่งในขณะนั้นเป็นนักศึกษาปริญญาตรีสาขาคณิตศาสตร์จาก โปแลนด์ มีการเผยแพร่สู่สาธารณะในเดือนมีนาคม 2000 [ 5 ] [ 6 ] FASM เขียนขึ้นด้วย ภาษาแอสเซมบลี ทั้งหมด...
ออกแบบ
FASM ไม่รองรับ คำสั่ง ระดับสูง มาก เท่ากับ MASM หรือ TASM [ 3 ] FASM มีคุณสมบัติทางไวยากรณ์และมาโคร ซึ่งทำให้สามารถปรับแต่งหรือสร้างคำสั่งที่ขาดหายไปได้ [ 5 ] ไวยากรณ์ การกำหนดแอดเดรสหน่วยความจำคล้ายกับโหมดอุดมคติของ TASM และ NASM...
IDE
Fresh ซึ่งเป็นโครงการที่เริ่มต้นโดย John Found เป็น สภาพแวดล้อมการพัฒนาแบบบูรณาการ สำหรับ FASM ภายใต้ Windows และ Linux [ 9 ]