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

ซอฟต์แวร์ระบบส� ำหรั บแผงวงจรไมโครคอนโทรลเลอร์เพื่ อการเรี ยนรู้ 152 The Journal of the Royal Institute of Thailand Vol. 38 No. 3 July-Sep 2013 8) CH_CASE รูทีนนี้ตรวจสอบรหัสแอสกีในเรจิสเตอร์ AL หากพบว่าเป็นรหัสแทนตัวอักษร ภาษาอังกฤษตัวเล็ก (“a” - “z”) ก็จะแปลงไปเป็นรหัสแทนตัวอักษรตัวใหญ่ (“A” – “Z”) ที่สอดคล้องกัน รายการชุดค� ำสั่งภาษาแอสเซมบลีของรูทีน CH_CASE (Antonakos, 1996: 505) เป็นดังนี้ 9) ERROR รูทีนนี้ส่งเครื่องหมายค� ำถาม (“?”) ไปแสดงบนจอของพีซีที่ต่ออยู่กับแผงวงจร ไมโครคอนโทรลเลอร์ พร้อมกับส่งสัญญาณเสียง “บี๊ป” (control G) ไปออกทางล� ำโพงของเครื่องพีซี รายการชุดค� ำสั่งภาษาแอสเซมบลีของรูทีน ERROR (Antonakos, 1996: 505) เป็นดังนี้ 10) C_IN รูทีนนี้ตรวจสอบวงจรรวม 8251 ว่าพร้อมที่จะรับข้อมูลเข้าทางช่องสัญญาณอนุกรม หรือไม่ ถ้าพร้อม ก็ให้รับข้อมูลเข้าไว้เรจิสเตอร์ AL จากนั้นรูทีนนี้จะจัดให้บิตที่มีนัยส� ำคัญสูงสุดของข้อมูล ในเรจิสเตอร์นี้กลายเป็น 0 รายการชุดค� ำสั่งภาษาแอสเซมบลีของรูทีน C_IN (Antonakos, 1996: 506) เป็นดังนี้ - 7 - 8) CH_CASE รูทีนนี้ตรวจสอบรหัสแอสกีในเรจิสเตอร AL หากพบว าเป นรหัสแทนตัวอักษร ภาษาอังกฤษตัวเล็ก (“a” - “z”) ก็จะแปลงไปเป นรหัสแทนตัวอักษรตัวใหญ (“A” – “Z”) ที่ สอดคล องกัน รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน CH_CASE (Antonakos, 1996: 505) เป นดังนี้ ; Routine to convert small letter in AL to capital letter CH_CASE PROC NEAR CMP AL,'a' ; test for character lower than 'a' JC UN_ALPH ; not a small letter CMP AL,'z'+1 ; test for character higher than 'z' JNC UN_ALPH ; not a small letter AND AL,0DFH ; set 5th bit to zero ==> capitalize UN_ALPH: RET CH_CASE ENDP 9) ERROR รูทีนนี้ส งเครื่องหมายคําถาม (“?”) ไปแสดงบนจอของพีซีที่ต ออยู กับแผงวงจรไมโคร คอนโทรลเลอร พร อมกับส งสัญญาณเสียง “ บี๊ป ” (con l G ไปออกทางํ าโ งของเครื่องพีซี รายการชุดคําั่ งภาษาแอสเซมบลีของรูทีน ERROR (Antonakos, 1996: 505) เป ดังนี้ ; Routine to display '?' & give audible beep when error occurs ERROR PROC NEAR MOV AL,'?' CALL C_OUT MOV AL,7 ; ^G = beep sound CALL C_OUT RET ERROR ENDP 10) C_IN รูทีนนี้ตรวจสอบวงจรรวม 8251 ว าพร อมที่จะรับข อมูลเข าทางช องสัญญาณอนุกรมหรือไม ถ าพร อม ก็ให รับข อมูลเข าไว เรจิสเตอร AL จากนั้นรูทีนนี้จะจัดให บิตที่มีนัยสําคัญสูงสุดของ ข อมูลในเรจิสเตอร นี้กลายเป น 0 รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน C_IN (Antonakos, 1996: 506) เป นดังนี้ ; Routine to check 8251 for RxRDY and read a character into AL C_IN PROC NEAR CI_S: - 7 - 8) CH_CASE รูทีนนี้ตรวจสอบรหัสแอสกีในเรจิสเตอร AL หากพบว าเป นรหัสแทนตัวอักษร ภาษาอังกฤษตัวเล็ก (“a” - “z”) ก็จะแปลงไปเป นรหัสแทนตัวอักษรตัวใหญ (“A” – “Z”) ที่ สอดคล องกัน รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน CH_CASE (Antonakos, 19 6: 505) เป นดังนี้ ; Routine to convert small etter in AL to capital letter CH_CASE PROC NEAR CMP AL,'a ; test for char cter lower than 'a JC UN_ALPH ; not a small letter CMP AL,'z +1 ; test for character higher than 'z JNC UN_ALPH ; not a small etter AND AL,0DFH ; set 5th bit to zero = > capitalize UN_ALPH: RET CH_CASE NDP 9) ERRO รูทีนี้ ส งเครื่องหมายคําถาม (“?”) ไปแสดงบนจอของพีซีที่ต อ ยู กับแผงวงจรไมโคร คอนโทรลเลอร พร อมกับส งสัญญาณเสียง “ บี๊ป ” (control ) ไ อ กทางลําโพงของเครื่องพีซี รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน ERROR (Antonakos, 19 6: 505) เป นดังนี้ ; Routine to display '? & give audible beep when erro occurs ER OR PROC NEAR MOV AL,'? CAL C_OUT MOV AL,7 ; ^G = beep sound CAL C_OUT RET ER OR ENDP 10) C_IN รูทีนนี้ตรวจสอบวงจร วม 8251 ว าพร อมที่จะรับข อมูลเข าทางช องสัญญาณอนุกรมหรือไม ถ าพร อม ก็ให รับข อมูลเข าไว เรจิสเตอร AL จากนั้นรูทีนี้ จะจัดให บิตที่มีนัยสําคัญสูงสุดของ ข อมูลในเรจิสเตอร นี้กลายเป น 0 รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน C_IN (Antonakos, 19 6: 506) เป นดังนี้ ; Routine to check 8251 for RxRDY and read a char cter into AL C_IN PROC NEAR CI_S: - 7 - 8) CH_CASE รูทีนนี้ตรวจสอบรหัสแอสกีในเรจิสเตอร AL หากพบว าเป นรหัสแทนตัวอักษร ภาษาอังกฤษตัวเล็ก (“a” - “z”) ก็จะแปลงไปเป นรหัสแทนตัวอักษรตัวใหญ (“A” – “Z”) ที่ สอดคล องกัน รายการชุดคําั่ งภาษาแอสเซมบลีของรูทีน CH_CASE (Antonakos, 1996: 505) เป นดังนี้ ; Routine to convert small letter in AL to capital letter CH_CASE PROC NEAR CMP AL,'a' ; test for character lower than 'a' JC UN_ALPH ; not a small letter CMP AL,'z'+1 ; test for character higher than 'z' JNC UN_ALPH ; not a small letter AND AL,0DFH ; set 5th bit to zero ==> capitalize UN_ALPH: RET CH_CASE ENDP 9) ERROR รูทีนนี้ส งเครื่องหมายคําถาม (“?”) ไปแสดงบนจอของพีซีที่ต ออยู กับแผงวงจรไมโคร คอนโทรลเลอร พร อมกับส งสัญญาณเสียง “ บี๊ป ” (control G) ไปออกทางลําโพงของเครื่องพีซี รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน ERROR (Antonakos, 1996: 505) เป นดังนี้ ; Routine to display '?' & give audible beep when error occur ERROR PROC NEAR MOV AL,'?' CALL C_OUT MOV AL,7 ; ^G = beep sound CALL C_OUT RET ERROR ENDP 10) C_IN รูทีนนี้ตรวจสอบวงจรรวม 8251 ว าพร อมที่จะรับข อมูลเข าทางช องสัญญาณอนุกรมหรือไม ถ าพร อม ก็ให รับข อมูลเข าไว เรจิสเตอร AL จากนั้นรูทีนนี้จะจัดให บิตที่มีนัยสําคัญสูงสุดของ ข อมูลในเรจิสเตอร นี้กลายเป น 0 รายการชุดคําสั่งภาษาแอสเซมบลีของรูทีน C_IN (Antonakos, 1996: 506) เป นดังนี้ ; Routine to check 8251 for RxRDY and read a character into AL C_IN PROC NEAR CI_S:

RkJQdWJsaXNoZXIy NTk0NjM=