(NB) Giáo trình Kiến trúc máy tính cung cấp cho người học những kiến thức như: Tổng quan về Kiến trúc máy tính; Kiến trúc phần mềm bộ xử lý; Tổ chức bộ xử lý; Bộ nhớ; Thiết bị nhập xuất; Ngôn ngữ Assembly. Mời các bạn cùng tham khảo nội dung giáo trình phần 2 dưới đây.
Chương Bộ nhớ Mục đích: Chương giới thiệu chức nguyên lý hoạt động cấp nhớ máy tính: nhớ cache: nguyên lý vận hành, phân loại mức, đánh giá hiệu hoạt động; nguyên lý vận hành nhớ ảo Yêu cầu: Sinh viên phải hiểu cấp nhớ cách thức vận hành loại nhớ giới thiệu để đánh giá hiệu hoạt động loại nhớ 4.1 Các loại nhớ Mục đích: - Giới thiệu loại nhớ máy tính, nhớ Bộ nhớ chứa chương trình, nghĩa chứa lệnh số liệu Người ta phân biệt loại nhớ: Bộ nhớ (RAM-Bộ nhớ vào ngẫu nhiên), chế tạo chất bán dẫn; nhớ đọc (ROM) loại nhớ đọc nhớ bao gồm: đĩa cứng, đĩa mềm, băng từ, trống từ, loại đĩa quang, loại thẻ nhớ, Bộ nhớ RAM có đặc tính nhớ đọc viết vào khoảng thời gian cho dù chúng vị trí nhớ Mỗi nhớ có địa chỉ, thông thường, ô nhớ byte (8 bit), hệ thống đọc hay viết vào nhiều byte (2,4, hay byte) Bộ nhớ (RAM) đặc trưng dung lượng tổ chức (số nhớ số bit cho ô nhớ), thời gian thâm nhập (thời gian từ lúc đua địa ô nhớ đến lúc đọc nội dung nhớ đó) chu kỳ nhớ (thời gian hai lần liên tiếp thâm nhập nhớ) a Phân loại Có thể phân loại vi mạch nhớ bán dẫn thành nhớ cố định, bán cố định nhớ ghi/đọc sơ đồ (hình 4-1) Bộ nhớ có nội dung ghi sẵn lần chế tạo gọi nhớ cố định ký hiệu ROM (Read Only Memory) Sau viết (bằng mặt nạ) từ nhà máy ROM loại không viết lại PROM dạng khác, bit ghi thiết bị ghi người sử dụng lần đầu (Programmable ROM) Bộ nhớ đọc/ghi nhiều lần gọi RAM (Random Access Memory) gồm có loại: RAM tĩnh SRAM (Static RAM) thường xây dựng mặt lật điện tử, Ram động DRAM (Dinamic RAM) xây dựng sở nhớ điện tích tụ điện Bộ nhớ DRAM phải phục hồi thường xuyên 50 Bộ nhớ bán dẫn Bộ nhớ cố định ROM Bộ nhớ định trình mặt nạ Bộ nhớ PROM Bộ nhớ bán cố định Bộ nhớ EPROM Bộ nhớ EEPRO M Bộ nhớ Ghi/Đọc Bộ nhớ RAM tĩnh (SRAM) Bộ nhớ RAM động (DRAM) Hình 4-1.Phân loại nhớ bán dẫn Giữa ROM RAM có lớp nhớ gọi nhớ bán cố định Trong có nhớ EPROM (Erasable Programmable ROM) ghi xung điện xóa tia cực tím, EEPROM (Elictric Erasable Programmable ROM) lại xóa dịng điện Các nhớ DRAM thường thỏa mãn yêu cầu cần nhớ có dung lượng lớn; cần có tốc độ truy xuất nhanh lại phải dùng SRAM Nhưng loại bị thông tin nguồn điện nuôi bị Do chương trình dùng cho việc khởi động máy vi tính BIOS phải nạp nhớ ROM gọi ROM BIOS b Nguyên lý hoạt động linh kiện nhớ bán dẫn * ROM ROM (Read Only Memory) chíp nhớ mà đến tay người dùng đọc Đó loại chíp nhớ có nội dung viết sẵn lần chế tạo giữ cố định (non- volatile) ROM lập trình kiểu mặt nạ chế tạo phiến silicon nhằm tạo tiếp giáp bán dẫn điện theo chiều diode điểm vắt chéo ma trận dây dẫn hàng (từ số liệu) cột (bit số liệu) ví dụ (hình 4.2) 51 Bộ giải mã hàng Y0 Y1 1 Y2 0 Y3 0 1 dây từ (4 hàng) dây bít cột Hình 4-2 Bộ nhớ ROM diode * PROM PROM (Progammable ROM) ROM khả trình cho phép người dùng ghi thơng tin lần Đó loại ROM mà sản xuất, tất điểm vắt chéo đặt diode transistor nối tiếp với cầu chì, cần thông tin với mức logic “1” điểm vắt chéo việc cho dịng điện đủ lớn qua làm cháy đứt cầu chì tương ứng điểm điểm vắt chéo coi khơng có transistor diode Rõ ràng loại PROM ghi thơng tin lần mà khơng xóa Hình 4-3: Cầu chì điểm vắt chéo với diode, transistor lưỡng cực transistor trường * EPROM EPROM (Erasable PROM) chip nhớ PROM xố được, cho phép ghi xố thơng tin nhiều lần chế tạo theo nguyên tắc khác Trong chip này, bit nhớ transistor MOS có cửa chế tạo theo cơng nghệ FAMOST (Floating gate avalanche injection MOS transistor) Số liệu viết vào xung điện có độ dài cỡ 50ms độ lớn +20V đặt vào cực cửa máng transistor Do cửa cách điện cao với 52 xung quanh nên sau hết xung điện, điện tử giữ vai trò phần tử mang thơng tin khơng cịn đủ lượng để vượt ngồi lớp cách điện Vì thơng tin giữ cố định sau ngừng cấp điện cho chip thời gian dài (ít 10 năm) Để xố thơng tin tức làm điện tích vùng cửa nổi, phải chiếu ánh sáng tử ngoại đủ mạnh chip nhớ Những điện tử lúc hấp thụ lượng nhảy lên mức lượng cao hơn, chúng rời cửa cách thâm nhập vào Vì chip EPROM có cửa sổ làm thuỷ tinh thạch anh ánh sáng tử ngoại qua cần xoá số liệu nhớ * EEPROM EEPROM (Electrically EPROM ) loại EPROM xoá phương pháp điện Việc nạp điện tử cho cửa thực cách EPROM Để xố EEPROM, có lớp kênh màng mỏng ơxít vùng cửa trải xuống đế cực máng giữ vai trò quan trọng Các lớp cách điện lý tưởng được, điện tích mang thấm qua lớp phân cách với sác xuất thấp Xác xuất tăng lên bề dày lớp giảm hiệu điện điện cực mặt lớp cách điện tăng lên Muốn phóng điện tích vùng cửa nổi, điện (-20V) đặt vào cực cửa điều khiển cực máng Lúc điện tử âm cửa chảy cực máng qua kênh màng mỏng ôxit số liệu lưu giữ xoá * RAM RAM (Random Acess Memory) loại nhớ ghi/đọc Đây loại chíp nhớ mà thơng tin lưu trữ thơng tin sẽ bị bị cắt nguồn điện ni RAM có loại: RAM động, viết tắt DRAM (dinamic RAM) Ram tĩnh viết tắt SRAM (Static RAM) Cấu trúc đơn giản Hình 4-4 Vận hành nhớ RAM (Wi, Wj, R/W tín hiệu điều khiển) 53 Slot để cắm RAM Hình 4-5.Hình dáng bên ngồi số loại RAM Tuỳ theo công nghệ chế tạo, người ta phân RAM tĩnh chế tạo theo công nghệ ECL (CMOS BiCMOS) Mỗi bit nhớ gồm có cổng logic với độ transistor MOS, việc nhớ liệu tồn nhớ cung cấp điện SRAM nhớ nhanh, việc đọc không làm huỷ nội dung ô nhớ thời gian thâm nhập chu kỳ nhớ RAM động dùng kỹ thuật MOS Mỗi bit nhớ gồm có transistor tụ điện Cũng SRAM, việc nhớ liệu tồn nhớ cung cấp điện Việc ghi nhớ dựa vào việc trì điện tích nạp vào tụ điện việc đọc bit nhớ làm nội dung bit bị huỷ Vậy sau lần đọc ô nhớ, phận điều khiển nhớ phải viết lại ô nhớ nội dung vừa đọc chu kỳ nhớ động gấp đơi thời gian thâm nhập ô nhớ Việc lưu giữ thông tin bit nhớ tạm thời tụ điện phóng hết điện tích nạp vào phải làm tươi nhớ sau 2μs Làm tươi nhớ đọc ô nhớ viết lại nội dung vào lại nhớ Việc làm tươi thực với tất ô nhớ nhớ Việc làm tươi nhớ thực tự động vi mạch nhớ 54 Hình 4-6.SRAM DRAM SDRAM (Synchronous DRAM – DRAM đồng bộ), dạng DRAM đồng bus nhớ Tốc độ SDRAM đạt từ 66-133MHz (thời gian thâm nhập nhớ từ 75ns-150ns) DDR SDRAM (Double Data Rate SDRAM) cải tiến nhớ SDRAM với tốc độ truyền tải gấp đôi SDRAM nhờ vào việc truyền tải hai lần chu kỳ nhớ Tốc độ DDR SDRAM đạt từ 200-400MHz RDRAM (Rambus RAM) loại DRAM thiết kế với kỹ thuật hoàn toàn so với kỹ thuật SDRAM RDRAM hoạt động đồng theo hệ thống lặp truyền liệu theo hướng Một kênh nhớ RDRAM hỗ trợ đến 32 chip DRAM Mỗi chip ghép nối module gọi RIMM (Rambus Inline Memory Module) việc truyền liệu mạch điều khiển chíp riêng biệt khơng truyền chip với BUS nhớ RDRAM đường dẫn liên tục qua chip module BUS, module có chân vào đầu đối diện Do đó, khe cắm không chứa RIMM phải gắn module liên tục để đảm bảo đường truyền nối liền Tốc độ RDRAM đạt từ 400-800MHz Bộ nhớ đọc ROM chế tạo cơng nghệ bán dẫn Chương trình ROM viết vào lúc chế tạo Thơng thường, ROM chứa chương trình khởi động máy tính, chương trình điều khiển thiết bị điều khiển tự động, 55 Bảng 4-1 Các kiểu nhớ bán dẫn 4.2 Các cấp nhớ Mục đích: - Giới thiệu chức nguyên lý hoạt động cấp nhớ máy Các đặc tính lượng thơng tin lưu trữ, thời gian thâm nhập nhớ, chu kỳ nhớ, giá tiền bit nhớ khiến ta phải phân biệt cấp nhớ: nhớ nhanh với dung lượng đến nhớ chậm với dung lượng lớn (hình 4-6) Các đặc tính cấp nhớ dẫn đến hai mức là: mức cache - nhớ mức nhớ ảo (bao gồm nhớ không gian cấp phát đĩa cứng) (hình IV.4) Cách tổ chức suốt người sử dụng Người sử dụng thấy không gian định vị ô nhớ, độc lập với vị trí thực tế lệnh liệu cần thâm nhập Các cấp nhớ giúp ích cho người lập trình muốn có nhớ thật nhanh với chi phí đầu tư giới hạn Vì nhớ nhanh đắt tiền nên nhớ tổ chức thành nhiều cấp, cấp có dung lượng nhanh đắt tiền cấp có dung lượng cao Mục tiêu việc thiết lập cấp nhớ người dùng có hệ thống nhớ rẻ tiền cấp nhớ thấp gần nhanh cấp nhớ cao Các cấp nhớ thường lồng vào Mọi liệu cấp gặp lại cấp thấp tiếp tục gặp lại cấp thấp Chúng ta có nhận xét rằng, cấp nhớ có dung lượng lớn cấp mình, ánh xạ phần địa nhớ vào địa nhớ cấp trực tiếp có tốc độ nhanh hơn, cấp nhớ phải có chế quản lý kiểm tra địa ánh xạ 56 MỨC CAO Dung lượng thời gian truy cập CPU 100s Byte 1s ns Mức quản lý đơn vị tham chiếu Registers Instr.Operand s Cache K byte 4ns 1-0,1 cents/bit CACHE Blocks Main memory M byte 100ns – 300ns 0,0001 – cents/bit Memory 0,00001 DISK G byte, 5ms(5000.000ns) 10-5-10-6 cents/bit pages DISK Files TAPE Lớn MỨC THẤP Hình 4-6 Các cấp nhớ Hình 4-7 Hai mức nhớ 57 4.3 Truy cập liệu nhớ Mục đích: Trình bày truy cập liệu nhớ thiết bị vào Cache nhớ nhanh, chứa lệnh liệu thường xuyên dùng đến Việc lựa chọn lệnh liệu cần đặt vào cache dựa vào nguyên tắc sau đây: Một chương trình 90% thời gian thi hành lệnh để thi hành 10% số lệnh chương trình Nguyên tắc áp dụng cho việc thâm nhập liệu, hiệu nghiệm việc thâm nhập lệnh Như có hai ngun tắc: ngun tắc khơng gian nguyên tắc thời gian -Nguyên tắc thời gian: cho biết ô nhớ hệ thống xử lý thâm nhập có khả thâm nhập tương lai gần Thật vậy, chương trình cấu tạo với phần phần thi hành nhiều phần phụ dùng để xử lý trường hợp ngoại lệ Cịn số liệu ln có cấu trúc thơng thường có phần số liệu thâm nhập nhiều mà -Nguyên tắc không gian: cho biết, xử lý thâm nhập vào nhớ có nhiều khả thâm nhập vào nhớ có địa lệnh xếp thành chuỗi có thứ tự Tổ chức cấp nhớ cho lệnh liệu thường dùng nằm nhớ cache, điều làm tăng hiệu máy tính cách đáng kể 4.3.1 Truy nhập nhớ thiết bị vào/ Thời gian chù kỳ xung đồng hồ hệ thống gọi trạng thái Một trạng thái tính từ sườn âm xung đồng hồ đến sườn âm xung Chu kỳ máy hay chu kỳ bus trình vi xử lý hay đơn vị làm chủ bus thực việc truyền tải liệu bus Một chu kỳ máy gồm hai giai đoạn : gửi địa lên bus chuyển liệu đến hay Giai đoạn đầu, gọi thời gian địa , địa đích vi xử lý gửi với tín hiệu xác định loại chu kỳ bus Giai đoạn hai, gọi thời gian số liệu, xử lý kiểm tra xem có tín hiệu sẵn sàng từ đơn vị cần trao đổi thông tin chưa để cấp nhận liệu Có loại chu kỳ máy bản: đọc nhớ, viết nhớ, đọc vào/ra, viết vào/ra Chu kỳ lệnh thời gian mà vi xử lý cần để nhận lệnh thi hành lệnh Một chu kỳ lệnh gồm hay nhiều chu kỳ máy Tóm lại, trạng thái tạo nên chu kỳ máy chu kỳ máy tạo nên chu kỳ lệnh 58 Trạng thái đợi: nhiều trường hợp, ví dụ tốc độ truy cập nhớ hay tốc độ xử lý liệu thiết bị ngoại vi chậm tốc độ vi xử lý phải có cách nhận biết trì hỗn q trình trao đổi liệu Cách giải vấn đề bên thông tin nhận hay phát tiếp thông tin nhận tín hiệu sẵn sàng READY từ nhớ hay ngoại vi phát liệu Nếu nhớ hay ngoại vi chậm, trì hỗn việc phát tín hiệu READY xử lý khơng nhận tín hiệu mà phải trải qua số nhịp đồng hồ Mỗi khoảng thời gian ứng với chu kỳ đồng hồ đợi gọi chu kỳ đợi hay trạng thái đợi máy tính có nhiều trạng thái đợi xử lý chậm 4.3.2 Truy nhập nhớ synchr READ CLK Đệm địa 74LS244 Clock 8284 Hợp kênh địa 74LS158 Hình 4-8 cho ta sơ đồ kết nối chip trình vi xử lý truy nhập chế độ MAX Lúc 8288 phát tín hiệu điều khiển cho BUS vài đệm nhớ tạm thời Bộ điều khiển nhớ điều khiển nhớ để đọc/ viết số liệu tời địa mong muốn cách xác Điều khiển nhớ Điều khiển BUS 8288 CPU 8086 Đệm nhớ Đệm địa 74LS244 YY Asynchronous READY Hình 4-8 Các chip truy nhập nhớ chế độ MAX 59 Bộ nhớ 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 tố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 ;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 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 ... mang2 nạp vào nhớ địa offset 23 E5h Khi mảng có phần tử khởi tạo hình ảnh chúng nhớ là: Tên phần tử Giá trị khởi tạo Địa nhớ Mang20 Mang 22 Mang24 2BA3h 27 48h 9843h 23 E5h 23 E7h 23 E9h Mang26 1F3Bh 23 EBh... cấu trúc nhớ cache Sự lựa chọn kích thước khối quan trọng cho vận hành cache có hiệu Hình 4-1 0 Trao đổi liệu thành phần CPU Trước khảo sát vận hành cache, ta xét đến khái niệm liên quan: - Thành. .. (RAID - Redundant Array of Independent Disks) theo kỹ thuật thiết lập có mức nào? Trình bày mức đó? 80 Chương Ngơn ngữ assembly Mục đích: - Hiểu thành phần Assembly - Nắm cấu trúc chương trình