(NB) Giáo trình Kiến trúc máy tính là một môn học chuyên môn của học viên ngành sửa chữa máy tính và quản trị mạng. Môn học này nhằm trang bị cho học viên các trường công nhân kỹ thuật và các trung tâm dạy nghề những kiến thức về Kiến trúc máy tính.
ỦY BAN NHÂN DÂN THÀNH PHỐ HÀ NỘI TRƯỜNG CAO ĐẲNG NGHỀ VIỆT NAM - HÀN QUỐC THÀNH PHỐ HÀ NỘI NGUYỄN TUẤN HẢI (Chủ biên) LÊ TRỌNG HƯNG – ĐẶNG MINH NGỌC GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính Trình độ: Trung cấp (Lưu hành nội bộ) Hà Nội - Năm 2021 LỜI NĨI ĐẦU Kiến trúc máy tính mảng kiến thức thiếu sinh viên chuyên ngành điện tử viễn thông công nghệ thông tin Đây tảng để nghiên cứu chuyên sâu chuyên ngành Chúng ta biết kiến thức sở vững vàng khơng có phát triển ứng dụng tài liệu giúp cho sinh viên trang bị cho kiến thức nhất, thiết thực Cuốn sách khơng hữu ích sinh viên ngành viễn thơng cơng nghệ thơng tin, mà cịn cần thiết cho cán kỹ thuật theo học lớp bổ túc hồn thiện kiến thức Mơn học Kiến trúc máy tính mơn học chun mơn học viên ngành sửa chữa máy tính quản trị mạng Môn học nhằm trang bị cho học viên trường công nhân kỹ thuật trung tâm dạy nghề kiến thức Kiến trúc máy tính Với kiến thức học viên áp dụng trực tiếp vào lĩnh vực sản xuất đời sống Mơn học làm tài liệu tham khảo cho cán kỹ thuật, học viên nghành khác quan tâm đến lĩnh vực Mặc dù có cố gắng để hồn thành giáo trình theo kế hoạch, hạn chế thời gian kinh nghiệm soạn thảo giáo trình, nên tài liệu chắn cịn khiếm khuyết Rất mong nhận đóng góp ý kiến thầy cô Khoa bạn sinh viên sử dụng tài liệu Xin chân thành cảm ơn! Hà Nội, ngày tháng năm 2021 Chủ biên: Ths.Nguyễn Tuấn Hải MỤC LỤC LỜI NÓI ĐẦU MỤC LỤC Chương Tổng quan 1.1 Các hệ máy tính 1.2 Phân loại máy tính 1.3 Thành máy tính 1.4 Thơng tin mã hóa thông tin 12 Chương Kiến trúc phần mềm xử lý 22 2.1 Các thành phần máy tính 22 2.2 Định nghĩa kiến trúc máy tính 26 2.3 Tập lệnh 27 2.4 Kiến trúc RISC 32 2.5 Toán hạng 35 Chương Tổ chức xử lý 37 3.1 Đường liệu 37 3.2 Bộ điều khiển 39 3.3 Diễn tiến thi hành lệnh mã máy 41 3.4 Ngắt (INTERRUPT) 43 3.5 Kỹ thuật ống dẫn (PIPELINE) 44 Chương Bộ nhớ 50 4.1 Các loại nhớ 50 4.2 Các cấp nhớ 56 4.3 Truy cập liệu nhớ 58 4.4 Bộ nhớ CACHE 61 Chương Thiết bị nhập xuất 69 5.1 Đĩa từ 69 5.2 Đĩa quang 71 5.3 Các loại thẻ nhớ 73 5.4 Băng từ 74 5.5 Các chuẩn BUS 75 5.6 An toàn liệu lưu trữ 76 Chương Ngôn ngữ assembly 81 6.1 Tổng quan 81 6.2 Các Lệnh 93 6.3 Các lệnh điều khiển 95 6.4 Ngăn xếp thủ tục 106 TÀI LIỆU THAM KHẢO 119 CHƯƠNG TRÌNH MƠN HỌC Tên mơn học: Kiến trúc máy tính Mã số mơn học: MH 12 Thời gian môn học: 75 (Lý thuyết: 46 giờ; Thực hành, thí nghiệm, thảo luận, tập: 24 giờ; Kiểm tra: giờ) VỊ TRÍ, TÍNH CHẤT CỦA MƠN HỌC - Vị trí: + Mơn học bố trí sau sinh viên học xong mơn học chung, môn học sở chuyên ngành đào tạo chun mơn nghề - Tính chất: + Là mơn học chuyên ngành MỤC TIÊU CỦA MÔN HỌC - Biết lịch sử máy tính, hệ máy tính cách phân loại máy tính - Hiểu thành phần kiến trúc máy tính, tập lệnh Các kiểu kiến trúc máy tính: mơ tả kiến trúc, kiểu định vị - Hiểu cấu trúc xử lý trung tâm: tổ chức, chức nguyên lý hoạt động phận bên xử lý Mô tả diễn tiến thi hành lệnh mã máy số kỹ thuật xử lý thông tin: ống dẫn, siêu ống dẫn, siêu vô hướng - Hiểu chức nguyên lý hoạt động cấp nhớ - Hiểu phương pháp an toàn liệu thiết bị lưu trữ - Lập trình tập lệnh Assembly - Tự tin tiếp cận công nghệ phần cứng NỘI DUNG CỦA MÔN HỌC Thời gian TT I Tên chương mục Tổng Lý số thuyết Thực hành, Bài tập Tổng quan 2 Các hệ máy tính 0.5 0.5 Phân loại máy tính 0.5 0.5 Thành máy tính 0.5 0.5 Thơng tin mã hóa thơng tin 0.5 0.5 Kiểm tra* II III IV V VI Kiến trúc phần mềm xử lý 10 Thành phần máy tính 1.5 0.5 Định nghĩa kiến trúc máy tính 1 Tập lệnh 1.5 0.5 Thủ tục 2 Toán hạng 1 Tổ chức xử lý Đường liệu 1 Bộ điều khiển 1 Diễn tiến thi hành lệnh mã máy 1 Ngắt 1 Kỹ thuật ống dẫn 1 Ống dẫn, siêu ống dẫn, siêu vô hướng 1 12 Các loại nhớ 1 Các cấp nhớ Cách truy xuất liệu nhớ Hiểu nhớ Cache cách tổ chức nhớ Cache CPU 1 Thiết bị nhập xuất 15 10 Đĩa từ 1.5 0.5 Đĩa quang 1.5 0.5 Các loại thẻ nhớ 0.5 0.5 Băng từ 0.5 0.5 Các chuẩn BUS An toàn liệu lưu trữ 25 17 Tổng quan 1 Các lệnh Các lệnh điều khiển Ngăn xếp thủ tục 75 46 24 Bộ nhớ Ngôn ngữ Assembly Cộng 1 Chương Tổng quan Mục đích: - Giới thiệu lịch sử phát triển máy tính, hệ máy tính cách phân loại máy tính Giới thiệu cách biến đổi hệ thống số, bảng mã thông dụng dùng để biểu diễn ký tự 1.1 Các hệ máy tính Mục đích: - Giới thiệu lịch sử phát triển máy tính - Trình bày hệ máy tính Sự phát triển máy tính mơ tả dựa tiến công nghệ chế tạo linh kiện máy tính như: xử lý, nhớ, ngoại vi,…Ta nói máy tính điện tử số trải qua bốn hệ liên tiếp Việc chuyển từ hệ trước sang hệ sau đặc trưng thay đổi công nghệ 1.1.1 Thế hệ (1946-1957) Hình 1- Thế hệ (1946-1957) ENIAC (Electronic Numerical Integrator and Computer) máy tính điện tử số Giáo sư Mauchly người học trò Eckert Đại học Pennsylvania thiết kế vào năm 1943 hoàn thành vào năm 1946 Đây máy tính khổng lồ với thể tích dài 20 mét, cao 2,8 mét rộng vài mét ENIAC bao gồm: 18.000 đèn điện tử, 1.500 công tắc tự động, cân nặng 30 tấn, tiêu thụ 140KW Nó có 20 ghi 10 bit (tính tốn số thập phân) Có khả thực 5.000 phép tốn cộng giây Cơng việc lập trình tay cách đấu nối đầu cắm điện dùng ngắt điện Giáo sư toán học John Von Neumann đưa ý tưởng thiết kế máy tính PIAS (Princeton Institute for Advanced Studies): chương trình lưu nhớ, điều khiển lấy lệnh biến đổi giá trị liệu phần nhớ, làm toán luận lý (AALU: Arithmetic And Logic Unit) điều khiển để tính tốn liệu nhị phân, điều khiển hoạt động thiết bị vào Đây ý tưởng tảng cho máy tính đại ngày Máy tính cịn gọi máy tính Von Neumann Vào năm đầu thập niên 50, máy tính thương mại đưa thị trường: 48 hệ máy UNIVAC I 19 hệ máy IBM 701 bán 1.1.2 Thế hệ thứ hai (1958-1964) Công ty Bell phát minh transistor vào năm 1947 hệ thứ hai máy tính đặc trưng thay đèn điện tử transistor lưỡng cực Tuy nhiên, đến cuối thập niên 50, máy tính thương mại dùng transistor xuất thị trường Kích thước máy tính giảm, rẻ tiền hơn, tiêu tốn lượng Vào thời điểm này, mạch in nhớ xuyến từ dùng Ngôn ngữ cấp cao xuất (như FORTRAN năm 1956, COBOL năm 1959, ALGOL năm 1960) hệ điều hành kiểu (Batch Processing) dùng Trong hệ điều hành này, chương trình người dùng thứ chạy, xong đến chương trình người dùng thứ hai tiếp tục 1.1.3 Thế hệ thứ ba (1965-1971) Thế hệ thứ ba đánh dấu xuất mạch kết ( mạch tích hợp - IC: Integrated Circuit) Các mạch kết độ tích hợp mật độ thấp (SSI: Small Scale Integration) chứa vài chục linh kiện có kết độ tích hợp mật độ trung bình (MSI: Medium Scale Integration) chứa hàng trăm linh ện mạch tích hợp Mạch in nhiều lớp xuất hiện, nhớ bán dẫn bắt đầu thay nhớ xuyến từ Máy tính đa chương trình hệ điều hành chia thời gian dùng 1.1.4 Thế hệ thứ tư (1972) Thế hệ thứ tư đánh dấu IC có mật độ tích hợp cao (LSI: Large Scale Integration) chứa hàng ngàn linh kiện Các IC mật độ tích hợp cao (VLSI: Very Large Scale Integration) chứa 10 ngàn linh kiện mạch Hiện nay, chip VLSI chứa hàng triệu linh kiện Với xuất vi xử lý (microprocessor) chứa phần thực phần điều khiển xử lý, phát triển công nghệ bán dẫn máy vi tính chế tạo khởi đầu cho hệ máy tính cá nhân Các nhớ bán dẫn, nhớ cache, nhớ ảo dùng rộng rãi Các kỹ thuật cải tiến tốc độ xử lý máy tính khơng ngừng phát triển: kỹ thuật ống dẫn, kỹ thuật vô hướng, xử lý song song mức độ cao,… 1.1.5 Khuynh hướng Việc chuyển từ hệ thứ tư sang hệ thứ chưa rõ ràng Người Nhật tiên phong chương trình nghiên cứu đời hệ thứ máy tính, hệ máy tính thơng minh, dựa ngơn ngữ trí tuệ nhân tạo LISP PROLOG, giao diện người máy thông minh Đến thời điểm này, nghiên cứu cho sản phẩm bước đầu gần (2004) mắt sản phẩm người máy thông minh gần giống với người nhất: ASIMO (Advanced Step Innovative Mobility: Bước chân tiên tiến đổi chuyển động) Bảng 1-1 Các hệ máy tính Thế hệ Năm 1946- Đèn điện tử Máy tính điện tử IBM 701 UNIVAC 1957 tung thị trường 1958- Transistors 1964 Máy tính rẻ tiền Intel,Burroughs 6500, NCR, CDC 6600, Honeywell 1965- Mach IC 1971 Máy tính mini 50 hãng mới: DEC PDP-11, Data general ,Nova 1972 Máy tính cá nhân Apple II, IBM-PC, Appolo trạm làm việc DN 300, Sun Kỹ thuật LSI - VLSI Sản phẩm Hãng sản xuất máy tính Xử lý song Máy tính đa xử lý Sequent … Thinking song Đa máy tính Machine Inc Honda, Casio Với hàng trăm nghìn máy móc điện tử tối tân đặt thể, ASIMO lên / xuống cầu thang cách uyển chuyển, nhận diện người, cử hành động, giọng nói đáp ứng số mệnh lệnh người Thậm chí, bắt chước cử động, gọi tên người cung cấp thông tin sau bạn hỏi, gần gũi thân thiện Hiện có nhiều cơng ty, viện nghiên cứu Nhật th Asimo tiếp khách hướng dẫn khách tham quan như: Viện Bảo tàng Khoa học lượng Đổi quốc gia, hãng IBM Nhật Bản, Công ty điện lực Tokyo Hãng Honda bắt đầu nghiên cứu ASIMO từ năm 1986 dựa vào nguyên lý chuyển động hai chân Cho tới nay, hãng chế tạo 50 robot ASIMO Các tiến liên tục mật độ tích hợp VLSI cho phép thực mạch vi xử lý ngày mạnh (8 bit, 16 bit, 32 bit 64 bit với việc xuất xử lý RISC năm 1986 xử lý siêu vơ hướng năm 1990) Chính xử lý giúp thực máy tính song song với từ vài xử lý đến vài ngàn xử lý Điều làm chuyên gia kiến trúc máy tính tiên đốn hệ thứ hệ máy tính xử lý song song 1.2 Phân loại máy tính Mục đích: - Trình bày cách phân loại máy tính Thơng thường máy tính phân loại theo tính kỹ thuật giá tiền 1.2.1 Các siêu máy tính (Super Computer): Là máy tính đắt tiền tính kỹ thuật cao Giá bán siêu máy tính từ vài triệu USD Các siêu máy tính thường máy tính vectơ hay máy tính dùng kỹ thuật vơ hướng thiết kế để tính tốn khoa học, mơ tượng Các siêu máy tính thiết kế với kỹ thuật xử lý song song với nhiều xử lý (hàng ngàn đến hàng trăm ngàn xử lý siêu máy tính) 1.2.2 Các máy tính lớn (Mainframe): Là loại máy tính đa dụng Nó dùng cho ứng dụng quản lý tính tốn khoa học Dùng kỹ thuật xử lý song song có hệ thống vào mạnh Giá máy tính lớn từ vài trăm ngàn USD đến hàng triệu USD 1.2.3 Máy tính mini (Minicomputer): Là loại máy cỡ trung, giá máy tính mini từ vài chục USD đến vài trăm ngàn USD 1.2.4 Máy vi tính (Microcomputer) Là loại máy tính dùng vi xử lý, giá máy vi tính từ vài trăm USD đến vài ngàn USD 1.3 Thành máy tính Hình 1-2 cho thấy diễn biến thành tối đa máy tính Thành tăng theo hàm số mũ, độ tăng trưởng máy vi tính 35% năm, loại máy khác, độ tăng trưởng 20% năm Điều cho thấy tính máy vi tính vượt qua loại máy tính khác đầu thập niên 90 Tác dụng: thường dùng để thiết lập vài bit tốn hạng đích cách cộng logic tốn hạng với tốn hạng tức thời mà bit có vị trí tương ứng với bít cần lập Ví dụ: OR AL,BL OR AL,0F h * NOT Cú pháp NOT toanhang Tác dụng: lấy phủ định toán hạng ( dùng để dảo bít tốn hay hạng lấy bù1) * XOR : (loại trừ toán hạng) Cú pháp XOR toanhang, toanhang Tác dụng: dùng để xóa ghi Ví dụ: XOR AX,AX ;xóa ghi AX d Nhóm lệnh dịch chuyển quay * SHL : Shift – left (dịch trái) Cú pháp SHL đích,CL Tác dụng: dịch bit tốn hạng đích sang trái CL vị trí, giá trị đưa vào bên phải tốn hạng đích, cịn bít MSB đưa vào CF 15 CF * SHR: Shift – Right; dịch phải Cú pháp SHR đích,CL Tác dụng: dịch bit tốn hạng đích sang phải CL vị trí, giá trị đưa vào bít MSB cịn giá trị bit LSB chuyển vào cờ CF 105 15 CF * ROL: Rotation Left- quay trái Cú pháp ROL đích,CL Dịch bit sang bên trái Bit MSB đưa LSB cờ CF, muốn quay nhiều lần chứa CL MSB CF MSB * ROR: Rotation Right – quay phải Cú pháp ROR đích, CL Dịch sang bên phải bit LSB đưa vào MSB cờ CF muốn quay nhiều lần chứa CL LSB LSB 15 6.4 Ngăn xếp thủ tục CF Mục đích: - Hiểu sử dụng đượcđược ngăn xếp Hiểu cách viết chương trình cách truyền tham số cho chương trình 6.4.1 Ngăn xếp (stack) a Định nghĩa ngăn xếp: Ngăn xếp tổ chức nhớ cho ta đọc từ đỉnh ngăn xếp viết từ vào đỉnh ngăn xếp 106 Địa đỉnh ngăn xếp chứa ghi đặc biệt gọi trỏ ngăn xếp SP (Stack Pointer) Ứng với cấu trúc ngăn xếp, người ta có lệnh viết vào ngăn xếp PUSH lệnh lấy khỏi ngăn xếp POP Các lệnh vận hành sau: - Cho lệnh PUSH SP := SP +1 M (SP) := Ri (Ri ghi cần viết vào ngăn xếp) - Cho lệnh POP Ri := M(SP) (Ri ghi, nhận từ lấy khỏi ngăn xếp) SP := SP -1 Trong xử lý RISC, việc viết vào lấp khỏi ngăn xếp dùng lệnh bình thường Ví dụ ghi R30 trỏ ngăn xếp việc viết vào ngăn xếp thực lệnh: ADDI R30, R30, ; tăng trỏ ngăn xếp lên từ dài 32 bit STORE Ri, (R30) ; Viết Ri vào đỉnh ngăn xếp Việc lấy khỏi ngăn xếp thực lệnh : LOAD Ri, (R30) ; lấy số liệu đỉnh ngăn xếp nạp vào Ri SUBI R30, R30,4 ; giảm trỏ ngăn xếp bớt b Đặc tả ngăn xếp - Che dấu thông tin:khi sử dụng lớp stack không cần biết lưu trữ nhớ phương thức thực Đây vấn đề cho dấu thông tin - Tính khả thi hiệu ứng dụng: Tuy ứng dụng cần phải độc lập với thực cấu trúc liệu việc chọn cách thực ảnh hưởng đến tính khả thi hiệu ứng dụng Chúng ta cần hiểu ưu nhược điểm cách thực cấu trúc liệu để lựa chọn cho phù hợp với tính chất ứng dụng - Tính sáng chương trình: ưu điểm khác che giấu thơng tin tính sáng chương trình Những tên gọi quen thuộc dành cho thao tác cấu trúc liệu giúp hình dung rõ ràng giải thuật chương trình Chẳng hạn thao tác ngăn xếp, người ta thường quen dùng từ:đầy-push; lấy-pop; 107 - Thiết kế từ xuống:sự tách rời việc sử dụng cấu trúc liệu cách thực cịn giúp thực hiên tốt trình thiết kế từ xuống cho cấu trúc liệu cho chương trình ứng dụng 6.4.2 Chương trình Nhằm mục đích làm cho chương trình ngắn gọn dễ hiểu, thơng thường người ta thực chia nhỏ chương trình thành Module khác nhau, Module thực một khối cơng việc định Mỗi Module gọi chương trình Trong lập trình hợp ngữ thông thường người ta sử dụng loại chương trình thủ tục Cấu trúc chương trình loại thực sau: a Cấu trúc chương trình PROC [kiểu] ; thân chương trình ;…………………… RET ENDP Trong đó: + tên ctc: tên chương trình mà người sử dụng tự đặt theo quy định đặt tên ASSEMBLY + PROC, ENDP: lệnh giả thực để khai báo bắt đầu kết thúc chương trình + kiểu: NEAR FAR NEAR (mặc định) có nghĩa dịng lệnh gọi thủ tục đoạn với thủ tục FAR có nghĩa dòng lệnh gọi thủ tục đoạn khác b Ví dụ Xoa_mh PROC MOV AH,0 MOV AL,3 INT 10h RET Xoa_mh ENDP 108 c Một số ý: Tránh trường hợp sau thực xong chương trình con, nội dung ghi bị thay đổi, thường người ta sử dụng lệnh PUSH POP chương trình để đưa tạm vào ngăn xếp sau lấy lại ghi Ví dụ đoạn chương trình trên, sau thực chương trình xong, nội dung ghi AX bị thay đổi Ta viết lại sau: Xoa_mh PROC PUSH AX ;đẩy tạm AX vào ngăn xếp MOV AH,0 MOV AL,3 INT 10h POP AX ;lấy lại giá trị cũ từ ngăn xếp cho AX RET ; sau trở chương trình Xoa_mh ENDP - Để người khác đọc hiểu rõ thủ tục thực thì, người lập trình phải có đoạn giải thích sau: ; Chức thủ tục ; Vào: (lấy thông tin từ chương trình gọi) ;Ra: (trả thơng tin xử lý cho chương trình gọi) ; cách sử dụng (nếu có) Ví dụ: Viết thủ tục thực nhân số nguyên dương A B cách cộng dịch bit Thuật toán: Tich = Repeat If LSB(B) = Then Tich = tich + A End_if SHL A,1 SHR B,1 Until B= 109 Đoạn mã: Nhan PROC ; nhan so A,B bang phep dich cong cac bit ; Vao: AX = A; BX = B ; Ra: DX = ketqua PUSH AX ;đẩy tạm vào AX vào ngăn xếp PUSH BX ;đẩy tạm vào BX vào ngăn xếp XOR DX,DX ;xoá ghi DX chứa tích REPEAT: ;if B le TEST BX,1 ; bit LSB BX 1? JZ END_IF ;khôngbằng 1, dịch trái AX… ;then ADD DX,AX ;tich=tich+AX END_IF: SHL AX,1 ;dịch trái AX SHR BX,1 ;dịch phải BX ;until B=0 JNZ REPEAT ;B0, lặp lại POP BX ;khôi phục lại BX POP AX ; AX từ ngăn xếp RET Nhan ENDP 6.4.3 Truyền tham số cho chương trình Sau lập chương trình con, người lập trình việc gọi chúng từ đoạn chương trình sau: CALL Việc gọi chương trình đơn giản, song có số ý ta thực với chương trình a Chương trình nằm đoạn với chương trình Nếu chương trình nằm đoạn với chương trình ta gọi thực theo mẫu sau: 110 Title ctchinh MODEL Small STACK 100h DATA ; khai báo liệu cho chương trình CODE Main PROC MOV AX, @data MOV DS,AX ; lệnh chương trình CALL Ctc ; lệnh chương trình Main ENDP Ctc PROC ;các lệnh chương trình RET Ctc ENDP END main b Chương trình soạn thảo tệp khác Nếu chương trình soạn thảo tệp khác (ví dụ CTC.lib), sử dụng lệnh INCLUDE vị trí khai báo chương trình Vídụ: Title ctchinh MODEL Small STACK 100h DATA ; khai báo liệu cho chương trình CODE Main PROC MOV AX, @data MOV DS,AX ; lệnh chương trình CALL Ctc 111 ; lệnh chương trình Main ENDP INCLUDE Ctc.lib END mai 6.4.4 Một số hàm ngắt 21h Ngắt 21h: chức ngắt DOS Hàm 01h: vào kí tự từ bàn phím hiển thị hình Mơ tả Ví dụ minh hoạ Vào: AH=01h MOV AH,01h Ra: AL= mã ASCII kí tự nhậpvào INT 21h MOV Ktu, AL Hàm 02h: In kí tự hình Mơ tả Ví dụ minh hoạ Vào: MOV AH,02 ;in hình AH=02h MOV DL, ‘A’ ; chữ A DL = mã ASCII kí tự nhập vào INT 21h Ra: khơng Hàm 08h: kí tự từ bà phím khơng hiển thị hình Mơ tả Ví dụ minh hoạ Vào: MOV AH,08h AH=08h INT 21h Ra AL = mã ASCII kí tự nhập vào MOV Ktu, AL Hàm 09h: in chuỗi kí tự hình Mơ tả Ví dụ minh hoạ Vào: MOV AH,09h AH=09h LEA DX,chuoi DS:DX =con trỏ đến chuỗi kết thúc INT 21h $ Ra: không 112 Hàm 4Ch: kết thúc chương trình EXE Mơ tả Ví dụ minh hoạ Vào: MOV AH,4Ch AH= 4Ch INT 21h Ra: không Hàm 2Ah: Xác định ngày tháng Mơ tả Ví dụ minh hoạ Vào: R.AH=$2A AH= 2Ah INTR($21,R) Ra: Ngay-tuan:=R.AL; AL = ngày tuần (0-6) Nam:=R.CX; CX = Năm Thang:=R.DH; DH = tháng (1-12) Ngay:=R.DL; DL=ngày tháng Hàm 2Bh: Cài đặt ngày tháng (cài đặt ngày hệ thống) Mô tả Ví dụ minh hoạ Vào: R.AH=$2B AH= 2Bh Nam:=R.CX; Ra: Thang:=R.DH; AL = ngày tuần (0-6) Ngay:=R.DL; CX = Năm INTR($21,R) DH = tháng (1-12) IF R>AL=0 then write(‘ok’); DL=ngày tháng Else write(‘not ok’); Hàm 2Ch: Xác định thời gian hệ thống Mơ tả Ví dụ minh hoạ Vào: R.AH=$2C AH= 2Ch INTR($21,R) Ra: Gio:=R.CH; CH = (0-23) Phut:=R.CL; 113 CL = phút (0-59) Giay:=R.DH; DH = giây (0-59) Phan_tram:=R.DL DL=phần trăm giây (0-99) Hàm 2Dh: đặt lại thời gian hệ thống Hàm 30h: Xác định số phiên DOS Hàm 36h: Xác định dung lượng cịn trống đĩa Mơ tả Ví dụ minh hoạ Vào: R.DL := 1; AH= 36h INTR ($21,R); DL = ổ đĩa Free_cyl:=R.BX; Ra: Bps:=R.CX; {byte per sector} BX = số liên cung chưa dùng Cpd:= R.DX; {cylinder per disk} CX = số byte/liên cung IF AX=FFFFh then write(‘no disk’) DX = số liên cung / đĩa Else Spc:= AX= FFFFh ổ đĩa không hợp lệ = cylinder} số cung/liên cung (hợp lệ) R.AX; DH = giây (0-59) DL=phần trăm giây (0-99) b Một số loại ngắt khác Ngắt 10h: ngắt hình Hàm 00h: chọn chế độ hiển thị cho hình Mơ tả Ví dụ minh hoạ Vào: R.AH= 0h; AH= 0h R.AL:=mode; AL = chế độ INTR($10,R) 03h: text 80*25*16 12h: Grapt 640*480*16 13h: Grapt 320*200*256 Ra: không 114 {Sector per Hàm 02h: Dịch chuyển trỏ Mơ tả Ví dụ minh hoạ Vào: R.AH= 02h; AH= 02h R.BH:=trang; BH = trang số R.DH:= hang; DH = hàng R.DL:= cot; DL = cột INTR($10,R) Ra: không Hàm 06h: Cuốn hình hay cửa sổ lên số dịng xác định Mơ tả Ví dụ minh hoạ Vào: R.AH= 02h; AH= 06h R.BH:=trang; AL=số dịng (=0; tồn bộ) R.DH:= hang; BH= thuộc tính dịng trống R.DL:= cot; CH,DL = số dịng, cột góc bên trái INTR($10,R) CL,DL= số dịng,cột góc phải Ra: khơng Hàm 07h: Cuốn hình hay cửa sổ xuống số dịng xác định Mơ tả Ví dụ minh hoạ Vào: R.AH= 07h; AH= 07h R.AL:=so_dong; AL=số dịng (=0; tồn bộ) R.BH:=thuoc_tinh; BH= thuộc tính dịng trống R.CH:= dong1; R.CL = cot1 CH,CL= số dịng,cột góc phải R.DH:= dong2; R.DL=cot2; Ra: khơng INTR($10,R); Hàm 09h: Hiển thị kí tự với thuộc tính vị trí trỏ Mơ tả Ví dụ minh hoạ Vào: R.AH= 09h; AH= 09h R.AL:=kitu; AL= mã ASCII kí tự R.BH:=0 {trang số 0}; 115 BH= trang số R.BL:= mau; BL= thuộc tính (text); màu (graph) R.CX:= solan; CX = số lần viết kí tự INTR($10,R); Ra: khơng Ngắt 16h: Ngắt bàn phím Hàm 00h: Đọc kí tự từ bàn phím Mơ tả Ví dụ minh hoạ Vào: R.AH= 00h; AH= 00h INTR($16,R); Ra: R.AH:= ma_scan; AH= mã quét phím R.AL:= ma_ ASCII; AL= ASCII kí tự Hàm 02h: Lấy cờ bàn phím Mơ tả Ví dụ minh hoạ Vào: R.AH= 02h; AH= 02h INTR($16,R); Ra: R.AH:= ma_scan; AL= cờ R.AL:= ma_ ASCII; Ngắt 33: ngắt chuột Hàm 02h: khởi tạo chuột Mơ tả Ví dụ minh hoạ Vào: R.AX= 00h; AX= 00h INTR($33,R); Ra: If R.AX:= FFFF then AX= FFFFh không nhận chuột Write (‘khong khoi tạo duoc chuot’) Hàm 01h: trỏ chuột Mơ tả Ví dụ minh hoạ Vào: R.AX= 01h; AX= 01h INTR($33,R); Ra: không 116 Hàm 02h: ẩn trỏ chuột Mơ tả Ví dụ minh hoạ Vào: R.AX= 02h; AX= 02h INTR($33,R); Ra: không Hàm 03h: trạng thái nhấn chuột Mơ tả Ví dụ minh hoạ Vào: R.AX= 03h; AX= 03h INTR($33,R); Ra: CX,DX = toạ độ ảo chuột X = R.CX shl 3+1; BX = trạng thái nút chuột nhấn Y = R.DX shl 3+1; 0: nút trái If (R.BX and 1) = then 1: nút phải Write (‘phim trai chuot!’); 2: nút CÂU HỎI ÔN TẬP VÀ BÀI TẬP Giải thích lệnh sau: MOV AL,3Fh; MOV DL,D7h; ADD AL,DL; 2.Chỉ chế độ địa lệnh sau: a MOV AL,BL b MOV AX,100h c.MOV AX,[101] d ADD AL,[BX]+5 e ADD AL,[BX]+[SI]+1000 Cho biết mã lệnh mã máy lệnh 4.Viết chương trình thực in hình thơng tin thân Sau lần hiển thị thơng tin, người sử dụng 117 5.Viết chương trình thực việc nhập vào kí tự từ bàn phím sau in hình lần kí tự dịng 6.Viết đoạn chương trình thực việc nhập vào kí tự từ bàn phím Nếu kí tự số in dịng tiếp theo, khơng kí tự số in dịng thơng báo “kí tự bạn vừa nhập khơng phải kí tự số” 7.Viết đoạn chương trình thực việc nhập vào kí tự từ bàn phím Nếu chữ hoa đổi thành chữ thường in kết hình, chữ thường đổi thành chữ hoa in kết hình, khơng phải kí tự in thơng báo “kí tự bạn vừa nhập khơng phải chữ” 8.Viết đoạn chương trình thực việc nhập vào kí tự số (0-9) từ bàn phím thực việc tính tổng hai số in hình 9.Viết đoạn chương trình thực việc nhập vào kí tự số (0-9) từ bàn phím thực việc lấy số lớn trừ số nhỏ, in hình hiệu số 10.Viết đoạn chương trình thực việc nhập vào từ bàn phím kí tự, kiểm tra kí tự chữ hiển thị 20 lần dịng, khơng chữ khỏi chương trình 118 TÀI LIỆU THAM KHẢO Nguyễn Đình Việt (2000), Giáo trình Kiến trúc máy tính, NXB: Đại học Quốc gia Hà nội Msc Võ Văn Chín, Ths Nguyễn Hồng Vân, KS Phạm Hữu Tài, Giáo trình kiến trúc máy tính(1997), Khoa Cơng nghệ thơng tin, Đại học Cần thơ 119 ... Computer) Các kiến thức kiến trúc RISC, tổng quát tập lệnh kiến trúc máy tính 2.1 Các thành phần máy tính Mục đích: - Giới thiệu thành phần hệ thống máy tính Thành phần máy tính gồm: xử lý trung tâm... sử máy tính, hệ máy tính cách phân loại máy tính - Hiểu thành phần kiến trúc máy tính, tập lệnh Các kiểu kiến trúc máy tính: mơ tả kiến trúc, kiểu định vị - Hiểu cấu trúc xử lý trung tâm: tổ chức,... loại máy tính dùng vi xử lý, giá máy vi tính từ vài trăm USD đến vài ngàn USD 1.3 Thành máy tính Hình 1-2 cho thấy diễn biến thành tối đa máy tính Thành tăng theo hàm số mũ, độ tăng trưởng máy