![]() ![]() ภาษาแอสเซมบลี้ และ การแปล |
ปรับปรุง : 2566-01-31 (ปรับรุ่นเป็น 9.0) |
|
Digital logic | OS | คำสั่งดอส | Batch | Debug | Assembly | GWBasic | Docker | |
|
ตัวอย่างการดู register ด้วยโปรแกรม debug
|
วิธีติดตั้งตัวแปลภาษา Assembly
1. ตัวแปลภาษา : masm611.zip 4.7 MB และ dosbox074.zip 1.4 MB 2. คลาย zip ลงในเครื่อง 3. สั่ง run โปรแกรม setup.exe 4. กด Enter ประมาณ 20 ครั้ง - เมื่อ enter ที่ 12 ควรเปลี่ยน binr เป็น bin 5. ถ้าพบ Setup Successfully กด Ctrl-C ได้ 6. โปรแกรมทั้งหมดอยู่ในห้อง c:\masm611 7. พบตัวแปลภาษาใน c:\masm611\bin\ 8. ถ้าขณะ install ถ้าไม่เปลี่ยน bin เป็น binr - ต้อง cd c:\masm611\binr - ต้อง copy *.* c:\masm611\bin - จึงจะแปลโปรแกรมได้สำเร็จ ตามตัวอย่าง | ![]() |
วิธีแปล (Compile) ลิงค์(Link) และสั่งประมวลผล(Execute)
การสั่งแปล source code ให้ได้ .exe ด้วย c:\masm611\bin>a sample1 สร้าง a.bat ด้วย notepad masm %1.asm link %1,,,,, %1 ประโยชน์ของโปรแกรม a.bat คือ ช่วยแปล ลิงค์ และประมวลผล ในคำสั่งเดียว ![]() |
1. แสดงการสร้างโปรแกรมใช้งาน interrupt
:: สร้างโปรแกรม 2 byte .com เป็นบริการของ bios เพื่อแสดง Divide overflow ถ้าเป็น Windows XP จะแสดงข้อความเท่าที่เห็น แต่ถ้าเป็น 98 จะแสดงดังตัวอย่างด้านล่าง | ||
| ||
2. แสดงการประมวลผลใน debug อย่างง่าย
:: ใช้คำสั่ง mov shr และ int 21 สำหรับ int 20 เป็นการหยุดการทำงาน | ||
| ||
3. แสดงใช้ directive segment ends แบบเก่า
:: พิมพ์ตัวอักษร a จนกระทั่งกดปุ่ม ctrl-break จึงหยุดการทำงาน | ||
| ||
4. แสดงการทำซ้ำด้วย label, cmp, je
:: โปรแกรมนี้ใช้ directive .model .data .code .stack มิได้ใช้ segment ends แบบเก่า :: Loop รับ 1 อักษร จากบริการ int21 สำหรับที่ ah,06 และ dl,ff แต่พิมพ์ซ้ำตลอดกาล จนรับ e หรือ E จึงหยุด โปรแกรมนี้ชื่อ x.asm ถูกแปลด้วย MASM611 ซึ่งเป็นแนวการเขียนโปรแกรมแบบ .exe โปรแกรมที่ได้มีขนาด 578 Byte | ||
| ||
5. แสดงการเขียน macro
:: แสดงเทคนิคการใช้ macro ในภาษา assembly | ||
|
![]() |
ช่วงปี 48 และ 49 ผมได้มีโอกาสเรียน Digital Computer กับอาจารย์ Hans ชาวเยอรมัน ในหลักสูตรสั้น ๆ ท่านสอนให้รู้จัก pspice สำหรับวาด Logic Gate และจบด้วยการใช้โปรแกรม Computer Simulation เพื่อแสดงการทำงานของคอมพิวเตอร์ โดยเฉพาะคำสั่งภาษา Assembly, Memory, Control Bus, Address Bus, Data Bus, Register และ CPU โปรแกรมนี้ท่านเคยนำเสนอมาครั้งหนึ่ง แต่ใช้ได้เฉพาะเครื่องเก่า ต่อมาผมตรวจพบว่าเขียนด้วย Pascal 7.0 จึงหา Patch มาแก้ปัญหา และสามารถนำมาใช้ได้กับเครื่องใหม่ รวมทั้งการแก้ไขภาษาเยอรมันบางส่วนเป็นภาษาไทย |
![]() |
โปรแกรม Assembler-Intel 8086 พบในเว็บเพจของ อ.ธนาวินท์ ที่สอน 204221 : Computer Organization and Assembly Language ซึ่งมี Powerpoint ที่ละเอียดมาก และพบว่าโปรแกรม emu8086 สามารถ download ได้จาก http://www.emu8086.com |
|
ใช้เวลาโหลดเว็บเพจ: 432 มิลลิวินาที สูง: 3580 จุด กว้าง: 1264 จุด |
"ไม่เริ่มต้นในวันนี้ จะไม่มีทางสำเร็จในวันพรุ่ง" โดย โยฮัน ว็อล์ฟกัง ฟ็อน เกอเทอ |