สำนักงานราชบัณฑิตยสภา

153 ศ. ดร.มงคล เดชนคริ นทร์ วารสารราชบัณฑิตยสถาน ปีที่ ๓๘ ฉบับที่ ๓ ก.ค.-ก.ย. ๒๕๕๖ 11) CHK_SUM รูทีนนี้ตรวจสอบข้อมูล ณ ต� ำแหน่งที่อยู่ C_SUM ในตารางข้อมูลของ ซอฟต์แวร์ระบบ หากพบว่าข้อมูลนี้ไม่เท่ากับศูนย์ ซึ่งแสดงว่าการดาวน์โหลดแฟ้มข้อมูลมีข้อบกพร่อง รูทีนนี้ก็จะส่งข้อความระบุความผิดพลาดไปแสดงบนจอของพีซีที่ต่อกับแผงวงจรไมโครคอนโทรลเลอร์ รายการชุดค� ำสั่งภาษาแอสเซมบลีของรูทีน CHK_SUM (Antonakos, 1996: 506) เป็นดังนี้ หมายเหตุ ข้อมูลที่รูทีน CHK_SUM ใช้ระบุความผิดพลาดนั้น อยู่ในตารางข้อมูลของซอฟต์แวร์ ระบบโดยมีป้าย CSE ดังนี้ CSE DB ‘<< Checksum error >>$’ 12) GET_BYT รูทีนนี้รับข้อมูลอักขระแอสกี ๒ ตัวต่อเนื่องกันจากช่องทางเข้าส� ำหรับสัญญาณ อนุกรม แล้วแปลงเป็นข้อมูลฐานสิบหกขนาด ๘ บิตที่สอดคล้องกันกับอักขระแอสกีทั้งสองนั้น ตัวอย่าง เช่นเมื่ออักขระแอสกีด้านเข้าเป็น “5” กับ “C” รูทีนนี้จะแปลงให้เป็น 5CH และเก็บไว้ในเรจิสเตอร์ AL รายการชุดค� ำสั่งภาษาแอสเซมบลีของรูทีน GET_BYT (Antonakos, 1996: 506) เป็นดังนี้ IN AL,S_CTRL ; read 8251 status JMP SHORT $+2 ; I/O delay AND AL,02H ; test for receive ready (RxRDY) JZ CI_S ; loop until ready IN AL,S_DATA ; read new char JMP SHORT $+2 ; I/O delay AND AL,7FH ; clear most significant bit RET C_IN ENDP 11) CHK_SUM รูทีนนี้ตรวจสอบข อมูล ณ ตําแหน งที่อยู C_SUM ในตารางข อมูลของซอฟต แวร ระบบ หากพบว าข อมูลนี้ไม เท ากับศูนย ซึ่งแสดงว าการดาวน โหลดแฟ มข อมูลมีข อบกพร อง รูทีน นี้ก็จะส งข อความระบุความผิดพลาดไป ดงบนจอของพีซีที่ต อกับแผงวงจรไมโคร คอนโทรลเลอร รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน CHK_SUM (Antonakos, 1996: 506) เป นดังนี้ ; Routine to check C_SUM location for zero, if not, send error message CHK_SUM PROC NEAR MOV SI,C_SUM ; store address for C_SUM value (C_SUM = 7F24H) CMP BYTE PTR[SI],0 ; test C_SUM for 0 JZ GD_LD ; zero is OK LEA SI,CSE ; address of error message CALL S_END ; send message from memory to PC JMP GET_COM ; get new command GD_LD: RET CHK_SUM ENDP ยเหตุ ข อมูลที่รูทีน CHK_SUM ใช ระบุความผิดพลาดนั้น อยู ในตารางข อมูล งซอฟต แวร ระบบ โดยมีป าย CSE ดังนี้ CSE DB ‘<< Checksum error >>$’ 12) GET_BYT รูทีนนี้รับข อมูลอักขระแอสกี ๒ ตัวต อเนื่องกันจากช องทางเข าสําหรับสัญญาณ อนุกรม แล วแปลงเป นข อมูลฐานสิบหกขนาด ๘ บิตที่สอดคล องกันกับอักขระแอสกีทั้งสองนั้น ตัวอย างเช นเมื่ออักขระแอสกีด านเข าเป น “5” กับ “C” รูทีนนี้จะแปลงให เป น 5CH และเก็บไว ในเรจิสเตอร AL รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน GET_BYT (Antonakos, 1996: 506) เป นดังนี้ IN AL,S_CTRL ; read 8251 status JMP SHORT $+2 ; I/O delay AND AL,02H ; test for receive ready (RxRDY) JZ CI_S ; loop until ready IN AL,S_DATA ; read new char JMP SHORT $+2 ; I/O delay AND AL,7FH ; clear most significant bit RET C_IN ENDP 11) CHK_SUM รูทีนนี้ตรวจสอบข อมูล ณ ตําแหน งที่อยู C_SUM ในตารางข อมูลของซอฟต แวร ระบบ หากพบว าข อมูลนี้ไม เท ากับศูนย ซึ่งแสดงว าการดาวน โหลดแฟ มข อมูลมีข อบกพร อง รูทีน นี้ก็จะส งข อความระบุความผิดพลาดไปแสดงบนจอของพีซีที่ต อกับแผงวงจรไมโคร คอนโทรลเลอร รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน CHK_SUM (Antonakos, 1996: 506) เป นดังนี้ ; Routine to check C_SUM location for zero, if not, send error message CHK_SUM PROC NEAR MOV SI,C_SUM ; store address for C_SUM value (C_SUM = 7F24H) CMP BYTE PTR[SI],0 ; test C_SUM for 0 JZ GD_LD ; zero is OK LEA SI,CSE ; address of error message CALL S_END ; send message from memory to PC JMP GET_COM ; get new command GD_LD: RET CHK_SUM ENDP หมายเหตุ ข อมูลที่รูทีน HK_SUM ใช ระบุความผิดพลาดนั้น อยู ในตารางข อมูลของซอฟต แวร ระบบ โดยมีป าย CSE ดังนี้ CSE DB ‘<< Checksum error >>$’ 12) GET_BYT รูทีนนี้รับข อมูลอักขระแอสกี ๒ ตัวต อเนื่องกันจากช องทางเข าสําหรับสัญญาณ อนุกรม แล วแปลงเป นข อมูลฐานสิบหกขนาด ๘ บิตที่สอดคล องกันกับอักขระแอสกีทั้งสองนั้น ตัวอย างเช นเมื่ออักขระแอสกีด านเข าเป น “5” กับ “C” รูทีนนี้จะแปลงให เป น 5CH และเก็บไว ในเรจิสเตอร AL รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน GET_BYT (Antonakos, 1996: 506) เป นดังนี้

RkJQdWJsaXNoZXIy NTk0NjM=