สำนักงานราชบัณฑิตยสภา
161 ศ. ดร.มงคล เดชนคริ นทร์ วารสารราชบัณฑิตยสถาน ปีที่ ๓๘ ฉบับที่ ๓ ก.ค.-ก.ย. ๒๕๕๖ อย่างไรก็ตาม ซอฟต์แวร์ระบบในที่นี้ยังไม่สมบูรณ์พร้อม เนื่องจากค� ำสั่งงาน T ซึ่งเดิมมีไว้เพื่อ จะใช้ทดสอบการท� ำงานของช่องทางเข้าของสัญญาณจากตัวแปลงแอนะล็อกเป็นดิจิทัล (analog-to-digital converter) นั้น ยังไม่มีให้ใช้ เหตุผลก็คือวงจรรวมที่เป็นตัวแปลงดังกล่าวยังไม่ได้ต่อเข้ากับระบบฮาร์ดแวร์ ของแผงวงจรไมโครคอนโทรลเลอร์ อย่างไรก็ตาม เราอาจเขียนรูทีนส� ำหรับค� ำสั่งงาน T ไว้เพื่อทดสอบการ ท� ำงานของช่องทางเข้า/ออกช่องอื่น ๆ แทนก็ได้ เช่น ช่องทางเข้า/ออกส� ำหรับสัญญาณแบบขนาน ซึ่งผ่าน > B 1002<CR> Breakpoint saved. > D 1000 1005<CR> 1000 03 D8 CC D1 CD 95 > G 1000<CR> AX:1111 BX:4444 CX:3333 DX:7777 BP:75FC SI:5145 DI:7955 SP:7FF8 DS:0000 SS:0000 ES:0000 Flags: S=0 Z=0 A=0 P=1 C=0 Breakpoint encountered at [0000:1002] > D 1000 1005<CR> 1000 03 D8 03 D1 CD 95 > S<CR> Placing 8088 in HALT state. - คําสั่ง B 1002 ใช เพื่อกําหนดจุดพัก (breakpoint) ของ โปรแกรมไว ที่ตําแหน ง 1002 ในกรณีนี้ ซอฟต แวร ระบบจะแก ข อมูลที่ตําแหน ง 1002 จาก 03 เป น CC (INT 3H) ดังที่ปรากฏเมื่อผู ใช ใส คําสั่งงาน D 1000 1005 เพื่อแสดงข อมูลที่เกี่ยวข อง - เมื่อผู ใช ใส คําสั่งงาน G 1000 เพื่อดําเนินโปรแกรมที่ ตําแหน ง 1000 อีกครั้งหนึ่ง ผลก็คือข อมูลใน BX เท านั้น เปลี่ยนไป เพราะ เมื่อดํา เนินไปถึงตําแหน ง 1002 โพรเซสเซอร จะกลับสู ซอฟต แวร ระบบผ านทางคําสั่ง CC (INT 3H) และแก ข อมูลที่ตําแหน งนี้สู ค าเดิม คือ 03 ดังที่แสดงด วยคําสั่งงาน D 1000 1005 ในสดมภ ซ ายมือ - คําสั่งงาน S ใช เพื่อหยุดการทํางานของไมโครโพร เซสเซอร 8088 อย างไรก็ตาม ซอฟต แวร ระบบในที่นี้ยังไม สมบูรณ พร อม เนื่องจากคําสั่งงาน T ซึ่งเดิมมีไว เพื่อจะใช ทดสอบการทํางานของช องทางเข าของสัญญาณจากตัวแปลงแอนะล็อกเป นดิจิทัล (analog-to-digital converter) นั้น ยังไม มีให ใช เหตุผลก็คือวงจรรวมที่เป นตัวแปลงดังกล าวยังไม ได ต อเข ากับระบบฮาร ดแวร ของแผงวงจร ไมโครคอนโทรลเลอร อย างไรก็ตาม เราอาจเขียนรูทีนสําหรับคําสั่งงาน T ไว เพื่อทดสอบการทํางานของ ช องทางเข า / ออกช องอื่น ๆ แทนก็ได เช น ช องทางเข า / ออกสําหรับสัญญาณแบบขนาน ซึ่งผ านวงจรรวม 8255 หรือช องทางเข า / ออกสําหรับสัญญาณแบบอนุกรม ซึ่งผ านวงจรรวม 8251 ในแผงวงจรไมโครคอนโทรลเลอร ในการทดลองใช งานซอฟต แวร ระบบสําหรับบทความนี้ ผู นิพนธ ได ใช พีซีที่ดําเนินโปรแกรมเครื่อง ปลายทางใบ ของ Haskell (1993: 314-315) ร วมกับระบบปฏิบัติการดอส เพื่อสื่อสารข อมูลกับแผงวงจร - 15 - > E<CR> AX – BBEF? 1111<CR> BX – 0282? 2222<CR> CX – AAAA? 3333 <CR> DX – A2A2? 4444<CR> BP – 75FC? <CR> SI – 5145? <CR> DI – 7955? <CR> SP – 1554? <CR> DS – AEAB? <CR> SS – 20B2? <CR> ES –EAEB? <CR> > R<CR> AX:1111 BX:2222 CX:3333 DX:4444 BP:75FC SI:5145 DI:7955 SP:1554 DS:EABB SS:20B2 ES:AEAB Flags: S=0 Z=1 A=0 P=0 C=0 > G 1000<CR> AX:1111 BX:3333 CX:3333 DX:7777 BP:75FC SI:5145 DI:7955 SP:7FF8 DS:0000 SS:0000 ES:0000 Flags: S=0 Z=0 A=0 P=1 C=0 Re-entry by external program at [0000:1004] ภาษาแอสเซมบลีได ดังนี้ 1000 03 D8 => ADD BX,AX ; ( บวกข อมูลใน BX ด วยข อมูลใน AX) 1002 03 D1 => ADD DX,CX ; ( บวกข อมูลใน DX ด วยข อมูลใน CX) 1004 CD 95 => INT 95H ; ( ข ามไปดําเนินคําสั่ง ณ ตําแหน งที่เก็บไว ในเวกเตอร 95H ของตารางเวกเตอร ) - คําสั่งงาน E ใช เพื่อใส ข อมูลให แก บรรดาเรจิสเตอร ทั้งหลายของไมโครโพรเซสเซอร 8088 ส วนคําสั่งงาน R ใช เพื่อตรวจสอบข อมูลในบรรดาเรจิสเตอร และตัว บ งชี้ (flag) - คําสั่งงาน G 1000 ใช เพื่อให โพรเซสเซอร ดําเนิน โปรแกรมโดยเริ่มที่คําสั่ง ณ ตําแหน ง 1000 และเมื่อ ดําเนินไปถึงตําแหน ง 1004 โพรเซสเซอร ก็กลับเข าสู ซอฟต แวร ระบบผ านทางคําสั่ง CD 95 (INT 95H) และ แสดงข อมูลในบรรดาเรจิสเตอร อีกทั้งตัวบ งชี้ดังที่ ปรากฏในสดมภ ซ ายมือ
Made with FlippingBook
RkJQdWJsaXNoZXIy NTk0NjM=