- ลำดับที่
1 โหลดโปรแกรม text editer มาสักตัวก่อนครับ
ผมเอาตัวนี้หล่ะครับ
Ultraedit-32
ทำการลงโปรแกรมเลยนะครับ
- ลำดับที่
2 โหลดโปรแกรม Assembler มาสักตัวก่อนครับ
ผมเอาตัวนี้หล่ะครับ
SXA51
- ลำดับที่
2.1 ลำดับนี้ขอให้เป็นทีหลัง
รอให้เข้าใจลำดับการเขียนโปรแกรมก่อนนะครับ (การนำเอา text editer
และโปรแกรม Assembler มาใช้งานบน รายละเอียด
- ลำดับที่
3 ทดลองตามใบงานนี้เลยครับ
1
จุดประสงค์
1.1 เพื่อศึกษาวิธีการเขียนโปรแกรมภาษาแอสเซมบลี
1.2 เพื่อศึกษาวิธีการแปลงไฟล์จากภาษาแอสเซมบลี้ให้เป็นภาษาเครื่องโดยโปรแกรมแอสเซมเบลอร์
1.3 เพื่อศึกษาวิธีการโปรแกรมข้อมูลลงตัวไอซี และการทดสอบบอร์ดทดลอง
2 เครื่องมือและอุปกรณ์
2.1 บอร์ดทดลองไมโครคอนโทรลเลอร์ พร้อมไอซี
2.2 ไมโครคอมพิวเตอร์ขนาด pentium 100 MHz ขึ้นไป พร้อมโปรแกรมปฎิบัติการ
3
การทดลอง
ขั้นตอนที่1
สร้างโฟลเดอร์ใหม่ (ในที่นี้ผมตั้งชื่อว่า
asm)
หลังจากนั้นทำการนำไฟล์ SXA51
จากหัวข้อลำดับที่
2 ไว้ในโฟล์เดอร์
ขั้นตอนที่2 เปิดโปรแกรม
Ultraedit-32

ขั้นตอนที่3 พิมพ์คำสั่งภาษาแอสเซมบลี้
พิมพ์ตามเลยครับ อาจไม่เข้าใจคำสั่ง แต่ในตอนนี้เราต้องการรู้ขั้นตอนการโปรแกรมไอซีกันก่อนนะครับ)
หลังจากนั้นให้ทำการ Save As เราสามารถตั้งชื่อได้ตามใจชอบ
ในที่นี้ผมตั้งชื่อว่า TEST1 หลังจากนั้นให้พิมพ์ตามด้วยนามสกุลก็คือ
ASM เราจะได้ไฟล์ที่ชือ TEST1.ASM
แนวคิดในการทดลอง เราต้องการทดสอบบอร์ดโดยวิธีการให้แอลอีดีบนบอร์ดติดสว่าง
แล้วให้แอลอีดี้ดับสลับกันไป จากวงจรของบอร์ดทดลอง ในการต่อแอลอีดีLED1
- LED8 ถ้าเราป้อนข้อมูลโดยกำหนดให้ที่ขา P0 เป็น "1" (MOV
P0,#0FFH FFH คือ 11111111) ทุกบิต
จะทำให้แอลอีดีสว่าง ถ้าป้อนให้ที่ขา P0 เป็น "0" ทุกบิต
(MOV P0,#00H 00H
คือ 00000000) จะทำให้แอลอีดีดับ
ขั้นตอนที่4
การแปลงไฟล์ โปรแกรมแอสเซมเบลอร์โดยการแปลงไฟล์จากภาษาแอสเซมบลี้
ให้เป็นภาษาเครื่อง ในที่นี้ผมจะออกไปที่ Command Prompt ก่อน
เริ่มจาก 
ใช้โปรแกรมแอสเซมเบลอร์
SXA51หรือแอสเซมเบอร์ตัวอื่นๆ รูปแบบการพิมพ์ดังนี้ C:\>SXA51
-L TEST1.ASM กดปุ่ม Enter (เราสามารถที่จะใช้วิธีการแอสแซมเบลอร์
โดยไม่ต้องออกไปที่ระบบดอสได้ จะอธิบายภายหลัง หรือดูที่นี้)
รูปที่
4 แสดงการแอสเซมเบลอร์
หมายเหตุ
** การที่แอสเซมเบลอร์ผ่าน ไม่ได้หมายความว่าบอร์ดจะใช้งานได้เสมอไป
ทำไม่? เพราะ
ถ้าพิมพ์ MOV P2,#0FFH พิมพ์เป็น MOV P1,#0F0H การแอสเซมเบลอร์ก็ผ่านเช่นเดียวกัน
ุเพิ่มเติม Numerical Constants หมายถึง การใช้อักษรแอสกี้(ASCII)แสดงค่าอินทีเจอร์*(Integer)
ที่มีเครื่องหมายด้วยตัวเลขฐานสองขนาด 32 บิต ค่าคงที่ของจำนวนตัวเลขจะต้องขึ้นต้นด้วยเลขและปิดท้ายตัวอักษรที่แสดงถึงฐาน
เช่น
0110B หมายถึง เลขฐานสอง ที่มีค่าเป็น 0-1
674O หมายถึง เลขฐานแปด ที่มีค่าเป็น 0-7
235D หมายถึง เลขฐานสิบ ที่มีค่าเป็น 0-9
ADEH หมายถึง เลขฐานสิบหก ที่มีค่าเป็น 0-9, A-F ถ้าเป็นตัวอักษรต้องมี
0 นำหน้าด้วยเช่น 0FFH, 0D7H
ขั้นตอนที่
5 ให้เปิดไฟล์ โดยดูไฟล์ทั้งหมดในโฟลเดอร์ จะประกอบด้วยไฟล์

รูปที่
5 แสดงการเปิดไฟล์ทั้งหมดที่ได้
LIST
FILE
ให้ทำการเปิดไฟล์
TEST1.LST จะได้รูปแบบเป็นรายละเอียดของการเขียนโปรแกรม ในแต่ละบรรทัด
สามารถแบ่งออกได้เป็นคอลัมน์ (column) แต่ละคอลัมน์เรียกเป็นหนึ่งฟีลด์
(field) บรรทัดหนึ่งจะประกอบด้วยฟีลด์สูงสุด 5 ฟีลด์ คือ line #, label,
op-code operands และcomment

รูปที่
6 แสดงการเปิดไฟล์ TEST1.LST
HEX
FILE
TEST1.HEX จะได้รูปแบบไฟล์ชื่อ TEST1.HEX เปิดไฟล์นี้ดูจะมีรายละเอียดดังนี้
รูปที่ 7 แสดงการเปิดไฟล์ TEST1.HEX
อะไรคืออะไรใน HEX FILE
ขั้นตอนที่
6 การโปรแกรมตัวไอซี
1.
ต่อสายจากเครื่องโปรแกรมที่จะติดต่อกับคอมพิวเตอร์ที่ Port LPT1
เข้ากับเครื่องโปรแกรม วิธีการต่อดูได้ในรูปที่ 8