Giáo trình Kiến trúc máy tính Nghề: Kỹ thuật lắp ráp và sửa chữa máy tính Trình độ: Cao đẳng nghề (Tổng cục Dạy nghề)

112 28 0
Giáo trình Kiến trúc máy tính  Nghề: Kỹ thuật lắp ráp và sửa chữa máy tính  Trình độ: Cao đẳng nghề (Tổng cục Dạy nghề)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

(NB) Giáo trình Kiến trúc máy tính 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. Với các kiến thức này học viên có thể áp dụng trực tiếp vào lĩnh vực sản xuất cũng như đời sống. Môn học này cũng có thể làm tài liệu tham khảo cho các cán bộ kỹ thuật, các học viên của các ngành khác quan tâm đến lĩnh vực này.

BỘ LAO ĐỘNG -THƯƠNG BINH VÀ XÃ HỘI TỔNG CỤC DẠY NGHỀ -   - : 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 ĐỘ: CAO ĐẲNG (Ban hành theo Quyết định số: 120/QĐ-TCDN ngày 25 tháng 02 năm 2013 Tổng cục trưởng Tổng cục dạy nghề) NĂM 2013 (mặt sau trang bìa) TUYÊN BỐ BẢN QUYỀN: Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng ngun trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU Kiến trúc máy tính mảng kiến thức khơng thể 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 khơng có 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 thiết cho cán kỹ thuật theo học lớp bổ túc hoà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 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 Hà Nội, 2013 Tham gia biên soạn Khoa Công Nghệ Thông Tin Trường Cao Đẳng Nghề Kỹ Thuật Công Nghệ Địa Chỉ: Tổ 59 Thị trấn Đông Anh – Hà Nội Tel: 04 38821300 Chủ biên: Phùng Sỹ Tiến Mọi góp ý liên hệ: Phùng Sỹ Tiến – Trưởng Khoa Công Nghệ Thông Tin Mobible: 0983393834 Email: tienphungktcn@gmail.com – tienphungktcn@yahoo.com MỤC LỤC MỤC LỤC KIẾN TRÚC MÁY TÍNH U CẦU VỀ ĐÁNH GIÁ HỒN THÀNH MƠN HỌC Error! Bookmark not defined CHƯƠNG 1:TỔNG QUAN Các hệ máy tính 1.1 Thế hệ (1946-1957) 1.2 Thế hệ thứ hai (1958-1964) 1.3 Thế hệ thứ ba (1965-1971) 1.4 Thế hệ thứ tư (1972) 1.5 Khuynh hướng Phân loại máy tính 10 2.1 Các siêu máy tính (Super Computer): 10 2.2 Các máy tính lớn (Mainframe): 10 2.3 Máy tính mini (Minicomputer): 10 2.4 Máy vi tính (Microcomputer) 10 Thành máy tính, qui luật Moore phát triển máy tính 11 Thơng tin mã hóa thơng tin 13 4.1 Khái niệm thông tin 13 4.2 Lượng thơng tin mã hố thông tin 13 4.3 Biểu diễn số: 14 4.4 Số nguyên có dấu 16 4.5 Cách biểu diễn số thập phân 18 4.6 Biểu diễn ký tự 19 Chương 2: GIAO TIẾP VẬT LÝ 22 Các thành phần máy tính 23 1.1 Bộ xử lý trung tâm (CPU) 23 1.2 Bo mạch chủ (Mainboard) 24 1.3 Bộ nhớ 26 1.4 Thiết bị lưu trữ 27 1.5 Thiết bị nhập xuất 27 Định nghĩa kiến trúc máy tính 27 Tập lệnh 28 3.1 Tập ghi (của vi xử lý 8086) 28 Kiến trúc RISC 31 4.1 Giới thiệu 32 4.2 Các kiểu định vị xử lý 34 Toán hạng 36 CÂU HỎI ÔN TẬP VÀ BÀI TẬP CHƯƠNG 36 Chương 3: TỔ CHỨC BỘ XỬ LÝ 37 Đường liệu 37 Bộ điều khiển 39 2.1 Bộ điều khiển mạch điện tử 39 2.2 Bộ điều khiển vi chương trình: 41 Diễn tiến thi hành lệnh mã máy 41 Ngắt (INTERRUPT) 43 Kỹ thuật ống dẫn (PIPELINE) 44 5.1 Ống dẫn 44 5.2 Khó khăn kỹ thuật ống dẫn 45 Siêu ống dẫn 47 CÂU HỎI ÔN TẬP VÀ BÀI TẬP CHƯƠNG 48 Chương 4: BỘ NHỚ 49 Các loại nhớ 49 1.1 Bộ nhớ 49 Các cấp nhớ 55 Truy cập liệu nhớ 57 3.1 Truy nhập nhớ thiết bị vào/ 58 3.2 Truy nhập nhớ 58 Bộ nhớ CACHE 61 CÂU HỎI ÔN TẬP VÀ BÀI TẬP CHƯƠNG 67 Chương 5:THIẾT BỊ NHẬP XUẤT 68 Đĩa từ 68 Đĩa quang 70 Các loại thẻ nhớ 72 Băng từ 73 Các chuẩn BUS 73 An toàn liệu lưu trữ 75 CÂU HỎI ÔN TẬP VÀ BÀI TẬP CHƯƠNG 79 Chương 6: NGÔN NGỮ ASSEMBLY 80 Tổng quan 80 1.1 Cấu trúc chung chương trình 80 1.2 Biến khai báo biến 85 1.3 Các chế độ địa 88 Các Lệnh 90 2.1 Các lệnh tính tốn 90 2.2 Lệnh nhập xuất 91 Các lệnh điều khiển 91 3.1 Các lệnh điều kiện, lặp 91 3.3 Lệnh chuyển hướng chương trình 100 Ngăn xếp thủ tục 102 4.1 Ngăn xếp (stack) 103 4.2 Chương trình 103 4.3 Truyền tham số cho chương trình 105 4.4 Một số hàm ngắt 21h 106 CÂU HỎI ÔN TẬP VÀ BÀI TẬP CHƯƠNG 111 TÀI LIỆU THAM KHẢO CHÍNH 112 MÔN HỌC: KIẾN TRÚC MÁY TÍNH Mã mơn học: MH12 Vị trí, ý nghĩa, vai trò 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 chun ngành - Ý nghĩa vai trò môn học + Là môn học thiếu nghề Sửa chữa lắp ráp máy tính Mơn Kiến trúc máy tính cung cấp cho học sinh, sinh viên cấu tạo, nguyên lý hoạt động toàn linh kiện máy tính phục vụ cho học tập công việc học sinh, sinh viên nghề Mục tiêu 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ữ ngồi - 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 môn học: Mã môn học Tên chương mục MH12-01 Tổng quan Các hệ máy tính Phân loại máy tính Thành máy tính Thành máy tính MH12-02 Kiến trúc phần mềm xử lý Thành phần máy tính Định nghĩa kiến trúc máy tính Tập lệnh Thủ tục Tốn hạng Tổng số 12 Thời gian Lý Thực thuyết hành 0 Kiểm tra* MH12-03 MH12-04 MH12-05 MH12-06 Tổ chức xử lý Đường liệu Bộ điều khiển Diễn tiến thi hành lệnh mã máy Ngắt Kỹ thuật ống dẫn Ống dẫn, siêu ống dẫn, siêu vô hướng Bộ nhớ Các loại nhớ 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 Thiết bị nhập xuất Đĩa từ Đĩa quang Các loại thẻ nhớ Băng tử Các chuẩn BUS An toàn liệu lưu trữ Ngôn ngữ Assembly Tổng quan Các lệnh Các lệnh điều khiển Ngăn xếp thủ tục Cộng 12 16 11 16 11 30 16 12 90 56 26 CHƯƠNG 1:TỔNG QUAN Mã chương: MH12 – 01 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ự 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 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 IAS (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ý (ALU: 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 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.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.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 kết độ tích hợp mật độ trung bình (MSI: Medium Scale Integration) chứa hàng trăm linh kiệ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.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.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) 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 thuê 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 Bảng 1-1 Các hệ máy tính Thế Năm Kỹ thuật Sản phẩm hệ 1946-1957 Đèn điện tử Máy tính điện tử tung thị trường 1958-1964 Transistors Máy tính rẻ tiền 1965-1971 Mach IC Máy tính mini 1972 Hãng sản xuất máy tính IBM 701 UNIVAC Intel,Burroughs 6500, NCR, CDC 6600, Honeywell 50 hãng mới: DEC PDP-11, Data general ,Nova LSI - VLSI Máy tính cá Apple II, IBM-PC, Appolo nhân trạm DN 300, Sun làm việc Xử lý song Máy tính đa Sequent … Thinking song xử lý Đa máy Machine Inc Honda, Casio tính 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 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) 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 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 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 Ví du: Viết đoạn chương trình thực nhập vào từ bàn phím kí tự Sau cho hiển thị 200 lần hình Giải: MOV AH,9 LEA DX, yeucau INT 21h MOV CX,200 MOV AH,1 INT 21h PUSH AX MOV AH,2 MOV DL,13 INT 21h MOV DL,10 INT 21h POP AX MOV AH,2 FOR: MOV DL,AL INT 21h LOOP FOR f Cấu trúc while…do… Là cấu trúc lặp phụ thuộc vào điều kiện Cú pháp: WHILE điều_kiện DO Công_việc Công _việc thực điều kiện trở nên sai Điều kiện sai Cơng việc Ví dụ: Viết đoạn chương trình thực đếm số kí tự nhập vào từ bàn phím Giải: XOR CX,CX MOV AH,1 WHILE: INT 21h CMP AL,13 JE END_WHILE INC CX JMP WHILE END_ WHILE: MOV AH,4Ch INT 21h g Cấu trúc REPEAT …UNTIL… Cú pháp: REPEAT công_việc UNTIL điều_kiện Đây cấu trúc lặp mà cơng_viêc thực trước, sau kiểm tra điều_kiện Nếu điều_kiện kết thúc trình lặp Ngược lại, điều_kiện sai quay trở lại thực cơng việc… Cơng việc sai Điều kiện Ví dụ: Viết đoạn chương trình thực nhập vào từ bàn phím kí tự kết thúc việc nhấn phím ENTER Giải: MOV AH,9 LEA DX,yeucau INT 21h REPEAT: MOV AH,1 INT 21h CMP AL,13 JNE REPEAT MOV AH,4Ch INT 21h 3.3 Lệnh chuyển hướng chương trình a Nhảy có điều kiện Cú pháp: Jxxx nhãn_đích Nếu điều kiện nhảy thoả mãn nhảy đến nhãn_đích thi hành lệnh Nhãn trước sau Trước không 126 byte, sau không 127 byte Bảng lệnh nhảy Nhảy có dấu Kí hiệu Chức điều kiện nhảy Jg/jnle nhảy lớn Zf = 0, sf = 0f nhảy không nhỏ hay Jge/jnl nhảy lớn hay Sf = 0f nhảy không nhỏ Jl/jnge nhảy nhỏ Sf 0f nhảy không lớn hay Jle/jng nhảy nhỏ hay Zf = hay sf = 0f nhảy không lớn nhảy không dấu Ja/jnbe nhảy lớn Cf = zf = nhảy không nhỏ hay Jae/jnb nhảy lớn hay Cf = nhảy không nhỏ Jb/jnae nhảy nhỏ Cf = nhảy không lớn hay Nhảy có dấu nhảy điều kiện đơn Je/jz nhảy Zf = nhảy Jne/jnz nhảy không Zf = nhảy không b Nhảy không điều kiện Cú pháp: JMP nhãn_đích Nhãn đích nằm đoạn với JMP, vượt xa 126 byte lệnh nhảy có điều kiện c Lệnh logic Trong nhóm ta quan tâm đến lệnh sau:AND, OR,XOR,NOT * AND Cú pháp AND đích,nguồn Đích, nguồn phải có điều kiện: - độ dài - đồng thời ô nhớ, ghi đoạn Tác dụng: thường dùng để che hay giữ lại vài bit tốn hạng đích Ví dụ: AND AX,0Fh * OR Cú pháp OR đích,nguồn Đích, nguồn phải có điều kiện: - độ dài - đồng thời ô nhớ, ghi đoạn 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 toán hạng đích, bít MSB đưa vào CF CF 15 * 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 giá trị bit LSB chuyển vào cờ CF 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 Ngăn xếp thủ tục Mục đích: CF 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 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 Đị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 sao.Đâ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; - 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 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 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 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= Đ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 ;xố 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 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: 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 ; lệnh chương trình Main ENDP INCLUDE Ctc.lib END mai 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ào: AH=01h Ra: AL= mã ASCII kí tự nhậpvào Hàm 02h: In kí tự hình Mơ tả Vào: AH=02h DL = mã ASCII kí tự nhập vào Ra: khơng Ví dụ minh hoạ MOV AH,01h INT 21h MOV Ktu, AL Ví dụ minh hoạ MOV AH,02 ;in hình MOV DL, ‘A’ ; chữ A INT 21h 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ào: AH=09h DS:DX =con trỏ đến chuỗi kết thúc $ Ra: không Hàm 4Ch: kết thúc chương trình EXE Mơ tả Vào: AH= 4Ch Ra: không Hàm 2Ah: Xác định ngày tháng Mô tả Vào: AH= 2Ah Ra: AL = ngày tuần (0-6) CX = Năm DH = tháng (1-12) DL=ngày tháng Ví dụ minh hoạ MOV AH,09h LEA DX,chuoi INT 21h Ví dụ minh hoạ MOV AH,4Ch INT 21h Ví dụ minh hoạ R.AH=$2A INTR($21,R) Ngay-tuan:=R.AL; Nam:=R.CX; Thang:=R.DH; Ngay:=R.DL; Hàm 2Bh: Cài đặt ngày tháng (cài đặt ngày hệ thống) Mô tả Vào: AH= 2Bh Ra: AL = ngày tuần (0-6) CX = Năm DH = tháng (1-12) DL=ngày tháng Hàm 2Ch: Xác định thời gian hệ thống Mô tả Vào: AH= 2Ch Ra: CH = (0-23) CL = phút (0-59) DH = giây (0-59) DL=phần trăm giây (0-99) Ví dụ minh hoạ R.AH=$2B Nam:=R.CX; Thang:=R.DH; Ngay:=R.DL; INTR($21,R) IF R>AL=0 then write(‘ok’); Else write(‘not ok’); Ví dụ minh hoạ R.AH=$2C INTR($21,R) Gio:=R.CH; Phut:=R.CL; Giay:=R.DH; Phan_tram:=R.DL 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 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:= R.AX; {Sector per AX= FFFFh ổ đĩa không hợp lệ = cylinder} số cung/liên cung (hợp lệ) 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 Hàm 02h: Dịch chuyển trỏ Mô tả Vào: AH= 02h BH = trang số DH = hàng DL = cột Ra: khơng Ví dụ minh hoạ R.AH= 02h; R.BH:=trang; R.DH:= hang; R.DL:= cot; INTR($10,R) 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}; 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ào: AH= 00h Ra: AH= mã quét phím AL= ASCII kí tự Hàm 02h: Lấy cờ bàn phím Mơ tả Vào: AH= 02h Ra: AL= cờ Ngắt 33: ngắt chuột Hàm 02h: khởi tạo chuột Mô tả Vào: AX= 00h Ra: AX= FFFFh khơng nhận chuột Ví dụ minh hoạ R.AH= 00h; INTR($16,R); R.AH:= ma_scan; R.AL:= ma_ ASCII; Ví dụ minh hoạ R.AH= 02h; INTR($16,R); R.AH:= ma_scan; R.AL:= ma_ ASCII; Ví dụ minh hoạ R.AX= 00h; INTR($33,R); If R.AX:= FFFF then Write (‘khong khoi tạo duoc chuot’) Hàm 01h: trỏ chuột Mô tả Vào: AX= 01h Ra: khơng Ví dụ minh hoạ R.AX= 01h; INTR($33,R); Hàm 02h: ẩn trỏ chuột Mô tả Vào: AX= 02h Ra: không Ví dụ minh hoạ R.AX= 02h; INTR($33,R); Hàm 03h: trạng thái nhấn chuột Mô tả Vào: AX= 03h Ra: CX,DX = toạ độ ảo chuột BX = trạng thái nút chuột nhấn 0: nút trái Ví dụ minh hoạ R.AX= 03h; INTR($33,R); X = R.CX shl 3+1; Y = R.DX shl 3+1; If (R.BX and 1) = then Mơ tả 1: nút phải 2: nút Ví dụ minh hoạ Write (‘phim trai chuot!’); CÂU HỎI ÔN TẬP VÀ BÀI TẬP CHƯƠNG 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 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 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ơ ... 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 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... - 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... dài tốn hạng, tác vụ mà máy tính thực Kiến trúc máy tính bao gồm ba phần: Kiến trúc phần mềm, tổ chức máy tính lắp đặt phần cứng - Kiến trúc phần mềm máy tính chủ yếu kiến trúc phần mềm xử lý, bao

Ngày đăng: 17/06/2020, 16:12

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan