Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 65 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
65
Dung lượng
1,32 MB
Nội dung
LẬPTRÌNHXỬLÝ ĐĨA&FILE CƠ BẢN VỀ LƯU TRỮ TRÊN ĐĨA TỪ MỘT ỨNG DỤNG HIỂN THỊ SECTOR MỘT ỨNG DỤNG HIỂN THỊ CLUSTER CÁC CHỨC NĂNG VỀ FILE Ở MỨC HỆ THỐNG QUẢN LÝĐĨA VÀ THƯ MỤC TRUY XUẤT ĐĨA VỚI INT 13H CỦA ROMBIOS BÀI TẬP GiỚI THIỆU FILE VÀ LẬPTRÌNHXỬLÝFILE 9/21/2017 LAPTRINHXULYDIA TU CƠ BẢN VỀ LƯU TRỮ TRÊN ĐĨA TỪ Ngơn ngữ ASM vượt trội ngơn ngữ khác khả xửlýđĩa Ta xem xét việc lưu trữ thơng tin đĩa theo mức độ : mức phần cứng/BIOS mức phần mềm/DOS mức phần cứng :lưu trữ thơng tin liên quan đến cách liệu lưu trữ cách vật lýđĩa từ? mức phần mềm : việc lưu trữ quản lý tiện ích quản lýFile HĐH DOS 9/21/2017 LAPTRINHXULYDIA TU 9/21/2017 LAPTRINHXULYDIA TU 9/21/2017 LAPTRINHXULYDIA TU CÁC ĐẶC TÍNH LUẬN LÝ & VẬT LÝ CỦA ĐĨA TỪ Ở mức vật lý : đĩa tổ chức thành Tracks, Cylinders, Sectors Khả lưu trữ đĩa mơ tả thơng sơ : C (cylinder number) H (Head side) R (sector number) 9/21/2017 LAPTRINHXULYDIA TU 9/21/2017 LAPTRINHXULYDIA TU CÁC KHÁI NIỆM TRACK, CYLINDER, SECTOR Tracks : vòng tròn đồng tâm tạo bề mặt đĩa Cylinder : tập tracks bán kính chồng đĩa Mặt đĩa có track có nhiêu Cylinder Sector : đọan track (cung từ) có khả lưu trữ 512 bytes liệu Các sector đánh số track đĩa tồn nhiều sector số hiệu 9/21/2017 LAPTRINHXULYDIA TU 9/21/2017 LAPTRINHXULYDIA TU Ở mức luận lý : đĩa tổ chức thành Clusters, files mà DOS dùng để cấp phát vùng lưu trữ cho liệu cần lưu trữ Cluster : nhóm gồm 2,4,6 sector kề Đó đơn vị cấp phát vùng lưu trữ cho liệu (file) Các cluster đánh số Nếu liệu cần lưu trữ byte hệ điều hành cấp phát cluster số bytes/cluster hay sector/cluster tùy thuộc vào loại đĩa 9/21/2017 LAPTRINHXULYDIA TU TƯƠNG QUAN GIỮA SECTOR VẬT LÝ VÀ SECTOR LOGIC TRÊN ĐĨA MỀM MẶT ĐĨA TRACK SECTOR SECTOR THƠNG TIN LOGIC 0 0 0 2-5 6-9 1-3 1-4 5-8 9-11 BOOT RECORD FAT Thư mục gốc Thư mục gốc 4-9 12-17 Dữ liệu 1-9 18-26 Dữ liệu 9/21/2017 LAPTRINHXULYDIA TU 10 MỞ FILE HÀM 3CH INT 21H AH = 3CH DS:DX địa chuổi ASCII (chuổi tên File kết thúc byte 0) CL = thuộc tínhFile Nếu thành cơng, AX = thẻ File Nếu CF set có lỗi, mã lỗi chứa AX (lỗi 3,4,5) 9/21/2017 LAPTRINHXULYDIA TU 51 Viết code mở File với thuộc tính đọc, tên File FILE1 Fname DB ‘FILE1’,0 INT 21H FHANDLE DW ? MOV FHANDLE, AX MOV AX,@DATA JC OPEN_ERROR MOV DS,AX ……… MOV AH,3CH MOV CL,1 LEA DX,FNAME 9/21/2017 LAPTRINHXULYDIA TU 52 CHỨC NĂNG MỞ FILE ĐÃ CÓ SẴN HÀM 3Dh INT 21H OPEN FILE AH = 3DH DS:DX = địa chuổi ASCII (chuổi tên File kết thúc byte 0) AL = mã truy cập : mở để đọc : mở để ghi : mở để đọc ghi Thành cơng, AX = Fhandle Có lỗi Mã lỗi chứa AX (2,4,5,12) 9/21/2017 LAPTRINHXULYDIA TU 53 CHỨC NĂNG MỞ FILE ĐÃ CÓ SẴN HÀM 3Dh INT 21H OPEN FILE MOV AH, 3DH MOV AL, MOV DX, OFFSET FILENAME INT 21H JC DISPLAY_ERROR MOV INFILEHANDLE, AX … INFILE DB ‘ D:\FILE1.DOC’, INFILEHANDLE DW ? 9/21/2017 LAPTRINHXULYDIA TU 54 CHỨC NĂNG 3EH ĐÓNG FILE ĐIỀU KIỆN : AH = 3EH BX = FILE HANDLE CẦN ĐÓNG XUẤT : KHÔNG LỖI CF = CÓ LỖI CF = EX : LỖI SỐ : INVALID HANDLE MOV AH, 3EH FILE HANDLE TRONG BX KHÔNG PHẢI LÀ THẺ FILE CỦA FILE ĐÃ MỞ MOV BX, INFILEHANDLE INT 21H JC DISPLAY_ERROR … INFILE DB ‘D:\FIEL1.DOC’, INFILEHANDLE DW ? 9/21/2017 LAPTRINHXULYDIA TU 55 CHỨC NĂNG 3FH ĐỌC FILE ĐỌC SỐ BYTES TỪ FILE LƯU VÀO BỘ NHỚ ĐIỀU KIỆN : AH = 3FH BX = FILE HANDLE , CX = SỐ BYTES CẦN ĐỌC DS:DX : ĐỊA CHỈ BỘ ĐỆM XUẤT : AX = SỐ BYTES ĐỌC ĐƯC, NẾU AX = HAY AX