1 / 28

การติดต่อกับจอภาพและแป้นพิมพ์

การติดต่อกับจอภาพและแป้นพิมพ์. BIOS Interrupt. Interrupt Type 0 - 7 Interrupt Type 8H - FH Interrupt 8 Timer Interrupt 9 Keyboard Interrupt Type 10H - 1FH Interrupt 10H Video Interrupt 11H Equipment Check Interrupt 12H Memory Size. ส่วนประกอบของการ์ดแสดงผล.

Download Presentation

การติดต่อกับจอภาพและแป้นพิมพ์

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. การติดต่อกับจอภาพและแป้นพิมพ์การติดต่อกับจอภาพและแป้นพิมพ์

  2. BIOS Interrupt • Interrupt Type 0 - 7 • Interrupt Type 8H - FH • Interrupt 8 Timer • Interrupt 9 Keyboard • Interrupt Type 10H - 1FH • Interrupt 10H Video • Interrupt 11H Equipment Check • Interrupt 12H Memory Size

  3. ส่วนประกอบของการ์ดแสดงผลส่วนประกอบของการ์ดแสดงผล • หน่วยความจำแสดงผล (Display Memory) • วงจรควบคุมการแสดงผล (Video Controller)

  4. ความสามารถของการ์ดแสดงผลความสามารถของการ์ดแสดงผล • ความสามารถในโหมดข้อความและกราฟิก • ความละเอียดของการแสดงผล • จำนวนสีที่แสดงผลได้ในแต่ละครั้ง • จำนวนจุดในการสร้างตัวอักษรแต่ละตัว

  5. วิดีโอมาตรฐาน • MDA (Monochrome Display Adapter) • แสดงผลได้สีเดียว • CGA (Color Graphics Adapter) • แสดงผลได้ 4 สี • EGA (Enhanced Graphics Adapter) • แสดงผลได้ 16 สี • VGA (Video Graphics Array) • แสดงผลได้ 256 สี

  6. โหมดแสดงผล • โหมดข้อความ • โหมด 0,1,2,3,7 • โหมดกราฟิก • โหมด 4,5,D,E

  7. การแสดงผลทางจอภาพ • ระบบจะแสดงผลได้จะต้องเอาข้อมูลที่จะแสดงผลไปใส่ใน Video RAM โดยตัวอย่างแอดเดรสหน่วยความจำจะเป็นดังนี้ • โหมด 0 แอดเดรส B800 จำนวน 2000 ไบต์ • โหมด 2 แอดเดรส B800 จำนวน 4000 ไบต์ • โหมด 13 แอดเดรส A000 จำนวน 6400 ไบต์

  8. การแสดงผลในโหมดข้อความการแสดงผลในโหมดข้อความ • หนึ่งตัวอักขระจะใช้หน่วยความจำสองไบต์ • ไบต์แรกเป็นรหัสแอสกี • ไบต์ที่สองเป็นแอตทริบิวต์ D7 D6 D5 D4 D3 D2 D1 D0 B R G B I R G B สีตัวอักษร สีพื้น

  9. ตัวอย่างโปรแกรม MOV AX,0B800H MOV DS,AX MOV CX,2000 MOV DI,0 FILL_BUF: MOV [DI],1441H ADD DI,2 LOOP FILL_BUF

  10. การใช้ INT 10H • อินเทอร์รัพต์ 10H ฟังก์ชัน 0 เลือกโหมดแสดงผล อินพุต AH = 0 AL = หมายเลขโหมด เอาต์พุต ไม่มี • อินเทอร์รัพต์ 10H ฟังก์ชัน 2 กำหนดตำแหน่ง cursor อินพุต AH = 2 DH = ตำแหน่งแถวใหม่ DL = ตำแหน่งคอลัมน์ใหม่ BH = หมายเลขเพจ

  11. การใช้ INT 10H • อินเทอร์รัพต์ 10H ฟังก์ชัน 6 เลื่อนจอภาพ อินพุต AH = 6 AL = จำนวนบรรทัดที่เลื่อน ถ้าเป็น 0 เลื่อนหนึ่งหน้า BH = ค่าแอตทริบิวต์ CH,CL = แถวและคอลัมน์มุมบนซ้าย DH,DL = แถวและคอลัมน์มุมล่างขวา เอาต์พุต ไม่มี

  12. การใช้ INT 10H • อินเทอร์รัพต์ 10H ฟังก์ชัน 9 แสดงผลตัวอักษรพร้อมแอตทริบิวต์ที่ตำแหน่ง cursor อินพุต AH = 9 BH = เพจที่แสดงผล AL = รหัสแอสกีของตัวอักขระ CX = จำนวนครั้งที่จะแสดงผล BL = ค่าแอตทริบิวต์ เอาต์พุต ไม่มี

  13. จงเขียนโปรแกรมให้ทำงานต่อไปนี้จงเขียนโปรแกรมให้ทำงานต่อไปนี้ • เซตจอภาพให้แสดงผลในโหมด 3 • สร้าง window สีบนจอภาพ โดยมีจุดยอดเป็น (26,8) และ (52,16) • ย้าย cursor ไปที่ (39,12) • พิมพ์ตัว A กระพริบที่ตำแหน่ง cursor

  14. แป้นพิมพ์ • คีย์คอมพิวเตอร์แบ่งออกเป็น 3 กลุ่ม • แอสกีคีย์ • คีย์พิเศษ • ฟังก์ชันคีย์

  15. ฟังก์ชันของ DOS สำหรับแป้นพิมพ์ • การรับอักขระตัวเดียวจากแป้นพิมพ์ MOV AH , 01 INT 21H • การรับอักขระสตริงจากแป้นพิมพ์ MOV AH , 0A MOV DX , ตำแหน่งของบัฟเฟอร์ บัฟเฟอร์มี 3 ส่วน ส่วนแรกขนาด 1 ไบต์ เก็บจำนวนตัวสูงสุด ส่วนที่สองขนาด 1 ไบต์ เก็บจำนวนข้อมูลที่ป้อน ส่วนที่สามเป็นข้อมูล

  16. รับอักขระตัวเดียวไม่แสดงผลบนหน้าจอรับอักขระตัวเดียวไม่แสดงผลบนหน้าจอ MOV AH , 07 INT 21H • รับอักขระตัวเดียวไม่แสดงผลบนหน้าจอ (กด CRT-BREAK มีผล) MOV AH , 08 INT 21H

  17. ตัวอย่างโปรแกรม Password PWTXT DB ‘twat’,0DH .STARTUP GETPW: LEA SI , PWTXT GETCH: MOV AH , 8 INT 21H CMP AL , [SI] JNZ GETPW INC SI CMP AL , 0DH JNZ GETCH

  18. ฟังก์ชันของ BIOS สำหรับแป้นพิมพ์ • INT 16H ฟังก์ชัน 0 อ่านค่าตัวอักขระ อินพุต AH = 0 เอาต์พุต AL = รหัสแอสกีถ้ากดคีย์แอสกี = 0 ถ้ากดคีย์ฟังก์ชัน AH = รหัสสแกนของคีย์

  19. ตัวอย่างรหัสสแกนคีย์ คีย์ เลขฐานสิบหก เลขฐานสิบ Ctrl 1D 29 Left Shift 2A 42 Alt 38 56 F1 - F10 3B - 44 59 - 68 Up 48 72 Down 50 80 Left 4B 75 Right 4D 77

  20. ฟังก์ชันของ BIOS สำหรับแป้นพิมพ์ • INT 16H ฟังก์ชัน 2 อ่านค่าไบต์สถานะ อินพุต AH = 2 เอาต์พุต AL = ไบต์สถานะของคีย์บอร์ต ์ D7 D6 D5 D4 D3 D2 D1 D0 Insert Caps Lock Num Lock Scroll Lock ALT CTRL Left

  21. EX : โปรแกรมย้าย cursor ไปมุมบนซ้ายถ้ากดคีย์ F1 MOV AH , 0 EXECUTE: INT 16H MOV AH , 2 OR AL , AL XOR BH , BH JNE EXIT INT 10H CMP AH , 3BH EXIT: JE F1 MOV DX , 184FH JMP EXECUTE F1: XOR DX , DX

  22. โปรแกรมตรวจสอบการกดคีย์โปรแกรมตรวจสอบการกดคีย์ *

  23. ตัวอย่างโปรแกรม Password DO_FUNCTION ;เก็บค่าต่าง ๆ ลงสแต็ก รหัสสแกนอยู่ใน AX CMP AH , 72 JE CURSOR_UP CMP AH , 75 JE CURSOR_LEFT CMP AH , 77 JE CURSOR_RIGHT CMP AH , 80 JE CURSOR_DOWN

  24. Time Display Program • INT 21H Function 2CH Time-of-Day Input: AH = 2CH Output: CH = hours (0-23) CL = minutes(0-59) DH = seconds(0-59) DL = 1/100 seconds (0-99)

  25. Time Display Program .DATA TIME_BUF DB ‘00:00:00$’ .CODE MAIN PROC MOV AX , @DATA MOV DS , AX LEA BX , TIME_BUF CALL GET_TIME LEA DX , TIME_BUF MOV AH , 09H INT 21H

  26. Time Display Program GET_TIME PROC MOV AH , 2CH INT 21H ;convert hours into ASCII and store MOV AL , CH CALL CONVERT MOV [BX] , AX ;convert minutes into ASCII and store MOV AL , CL CALL CONVERT MOV [BX+3] , AX

  27. CONVERT PROC ; input : AL = number ; output : AX = ASCII digits, AL = high digit , AH = low digit MOV AH , 0 MOV DL , 10 DIV DL OR AX , 3030H RET CONVERT ENDP

  28. Date Function • INT 21H Function 2AH หาวันเดือนปีจากฐานเวลาของคอมพิวเตอร์ Input: AH = 2AH Output: AL = วันของสัปดาห์ (Sunday = 0 , Monday = 1 , etc) CX = ปี (1980 - 2099) DH = เดือน (01-12) DL = วันที่ (01-31)

More Related