Bài giảng Lập trình hợp ngữ - Chương 12: Lập trình xử lý đĩa và file

LẬP TRÌNH XỬ 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ẬP TRÌNH XỬ LÝ FILE  
5/8/2022  
LAP TRINH XU LY DIA TU  
1
CƠ BẢN VỀ LƯU TRỮ TRÊN ĐĨA TỪ  
Ngôn ngữ ASM vượt trội hơn các ngôn ngữ khác  
về khả năng xử lý đĩa.  
Ta xem xét việc lưu trữ thông tin trên đĩa theo 2  
mức độ : mức phần cứng/BIOS và 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 dữ liệu được lưu trữ 1 cách vật lý  
như thế nào trên đĩa từ?  
mức phần mềm : việc lưu trữ được quản lý  
bởi tiện ích quản lý File của HĐH DOS.  
5/8/2022  
LAP TRINH XU LY DIA TU  
2
5/8/2022  
LAP TRINH XU LY DIA TU  
3
5/8/2022  
LAP TRINH XU LY DIA TU  
4
CÁC ĐẶC TÍNH LUẬN LÝ & VẬT LÝ CỦA  
ĐĨA TỪ  
Ở mức vật lý : đĩa được tổ chức thành các  
Tracks, Cylinders, Sectors.  
➔ Khả năng lưu trữ của đĩa được mô tả  
bằng 3 thông sô :  
C (cylinder number)  
H (Head side)  
R (sector number)  
5/8/2022  
LAP TRINH XU LY DIA TU  
5
5/8/2022  
LAP TRINH XU LY DIA TU  
6
CÁC KHÁI NIỆM TRACK, CYLINDER,  
SECTOR  
Tracks : là các vòng tròn đồng tâm được  
tạo ra trên bề mặt đĩa.  
Cylinder : tập các tracks cùng bán kính  
trên 1 chồng đĩa. Mặt đĩa có bao nhiêu  
track thì sẽ có bấy nhiêu Cylinder.  
Sector : là 1 đọan của track (cung từ)  
có khả năng lưu trữ 512 bytes dữ liệu.  
Các sector được đánh số bắt đầu từ 1  
trên mỗi track → trên 1 đĩa tồn tại  
nhiều sector cùng số hiệu.  
5/8/2022  
LAP TRINH XU LY DIA TU  
7
5/8/2022  
LAP TRINH XU LY DIA TU  
8
Ở mức luận lý : đĩa được tổ chức thành các  
Clusters, các files mà DOS sẽ dùng để cấp  
phát vùng lưu trữ cho dữ liệu cần lưu trữ.  
Cluster : là 1 nhóm gồm 2,4,6 các  
sector kề nhau. Đó chính là đơn vị cấp  
phát vùng lưu trữ cho dữ liệu (file). Các  
cluster được đánh số bắt đầu từ 0.  
Nếu dữ liệu cần lưu trữ chỉ 1 byte thì hệ  
điều hành cũng cấp phát 1 cluster.  
số bytes/cluster hay sector/cluster tùy  
thuộc vào từng loại đĩa.  
5/8/2022  
LAP TRINH XU LY DIA TU  
9
TƯƠNG QUAN GIỮA SECTOR VẬT LÝ VÀ  
SECTOR LOGIC TRÊN ĐĨA MỀM  
MẶT TRACK SECTOR SECTOR THÔNG TIN  
ĐĨA  
LOGIC  
0
0
0
0
0
1
0 BOOT RECORD  
0
2-5  
6-9  
1-3  
1-4 FAT  
0
5-8 Thư mục gốc  
9-11 Thư mục gốc  
1
1
0
0
1
4-9 12-17 Dữ liệu  
1-9 18-26 Dữ liệu  
5/8/2022  
LAP TRINH XU LY DIA TU  
10  
BAD SECTOR  
Trên bề mặt đĩa có thể tồn tại các sector mà  
HĐH không thể ghi dữ liệu vào đó hoặc không  
thể đọc dữ liệu từ đó. Các sector này gọi là Bad  
Sector.  
Làm sao biết sector nào là bad sector  
Kiểm tra giá trị của các phần tử (entry) trong  
bảng FAT, phần tử nào chứa giá trị (F)FF7H thì  
cluster tương ứng bị Bad  
5/8/2022  
LAP TRINH XU LY DIA TU  
11  
BẢNG FAT  
FILE ALLOCATION TABLE  
DOS quản lý các File nhờ vào 1 bảng gọi là  
bảng FAT.  
Trong bảng FAT có ghi cluster bắt đầu của File  
này ở đâu ? Và đĩa còn bao nhiêu Clusters  
trống chưa cấp phát.  
tổ chức luận lý của đĩa được mô tả như hình sau :  
Bảng  
FAT2  
Boot  
record  
Bảng  
FAT1  
Root  
directory  
data  
5/8/2022  
LAP TRINH XU LY DIA TU  
12  
Thí dụ về bảng FAT  
Đĩa mềm 3.5”” 360K thì :  
Sector 0 : boot sector  
Sector 1-4 : bảng FAT  
Sector 5 – 11 : thư mục gốc  
Sector 12-719 : vùng chứa data  
5/8/2022  
LAP TRINH XU LY DIA TU  
13  
BOOT RECORD  
Còn được gọi là Boot Sector. Ổ đĩa cứng  
gọi là Master boot, là Sector đầu tiên khi  
đĩa được format.  
chứa 1 chương trình nhỏ cho biết dạng  
lưu trữ trên đĩa và tên hệ thống MT, kiểm  
tra xem có các file hệ thống IO.SYS,  
MSDOS.SYS, COMMAND.COM hay không ?  
nếu có thì nạp chúng vào bộ nhớ (gọi là  
chương trình mồi của HĐH)  
5/8/2022  
LAP TRINH XU LY DIA TU  
14  
BOOT RECORD (tt)  
Tọa độ vật lý :  
C=0, H=0, R =1 (C0H0R1) tức ở tại  
sector đầu tiên của track đầu tiên,  
mặt trên của đĩa đầu tiên trong ổ đĩa  
cứng.  
Trong Master boot có chứa bảng  
PARTITION TABLE cho biết tầm địa chỉ  
vật lý (dung lượng) của ổ đĩa luận lý.  
Master boot không thuộc Partition nào  
5/8/2022  
LAP TRINH XU LY DIA TU  
15  
BOOT RECORD (tt)  
BOOT RECORD được ROM BIOS nạp  
vào địa chỉ 0000:7C00H.  
Nếu máy không bị Virus thì lệnh đầu  
tiên của chương trình BOOT là JMP 7C3EH,  
nghĩa là nhảy đến chương trình nạp mồi.  
chương trình nạp mồi (Bootstrap  
Loader) nạp thành phần cốt lõi của DOS  
lên RAM trong quá trình khởi động MT.  
5/8/2022  
LAP TRINH XU LY DIA TU  
16  
THÔ NG TIN TRONG MASTER BOOT  
BYTEBĐẦU SỐ BYTES  
THÔNG TIN  
00H  
3 chỉ thị nhảy về nới chứa CT nạp mồi  
03H  
0BH  
0DH  
0EH  
8
2
Tên nhà sản xuất và hệ điều hành  
Bytes/sector  
1 Sector/block (mỗi block >=1 sector)  
2 Số lượng Sectors không dùng đến kể  
từ sector 0.  
10h  
1
Số lượng bảng FAT  
5/8/2022  
LAP TRINH XU LY DIA TU  
17  
THÔ NG TIN TRONG MASTER BOOT  
BYTE BĐẦU SỐ BYTES  
THÔNG TIN  
11H  
2
Số Entry của thư mục gốc ổ đĩa.  
13H  
15H  
16H  
18H  
1AH  
2 Tổng số sector của ổ đĩa logic này.  
1
2
2
2
Byte mô tả  
Số sector cho 1 bảng FAT  
Số Sectors trong 1 track.  
Số lượng đầu đọc  
1CH  
20H  
4
4
Số lượng sector ẩn  
Tổng số sectors  
5/8/2022  
LAP TRINH XU LY DIA TU  
18  
THÔ NG TIN TRONG MASTER BOOT  
BYTE BĐẦU SỐ BYTES  
THÔNG TIN  
3EH  
Bootstrap  
….  
1BEH 64  
……  
PARTITION TABLE  
1FEH  
1FFH  
1
1
Giá trị 55H  
Giá trị 0AAH  
5/8/2022  
LAP TRINH XU LY DIA TU  
19  
THÔ NG TIN TRONG MASTER BOOT  
Từ thông tin trong bảng FORMAT, ta tính được địa  
chỉ của bảng FAT1, FAT2, Thư mục gốc ổ đĩa, địa  
chỉ bắt đầu của vùng dữ liệu.  
5/8/2022  
LAP TRINH XU LY DIA TU  
20  
Tải về để xem bản đầy đủ
ppt 65 trang baolam 22780 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hợp ngữ - Chương 12: Lập trình xử lý đĩa và file", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pptbai_giang_lap_trinh_hop_ngu_chuong_12_lap_trinh_xu_ly_dia_va.ppt