Giáo trình hướng dẫn phân tích chuyển địa chỉ trong kỹ thuật table indecator kết hợp paging p10 - Pdf 19

partition active vào RAM và chuyển quyền điều khiển về cho boot sector.
 Bảng partition (64 byte: bắt đầu từ byte 1BE h): gồm 4 phần tử, đánh
số từ 1 đến 4, mỗi phần tử dài 16 byte dùng để lưu thông tin của một partition. Các
thông tin trong một phần tử trong bảng partition cho biết: Phân khu có phải là
active hay không; Vị trí bắt đầu phân khu (head, sector, cylinder); Vị trí kết thúc
phân khu (head, sector, cylinder); Có bao nhiêu sector nằm trong phần khu; Kích
thước của một phân khu tính theo sector; Phân khu được định dạng như thế nào và
được cài đặt hệ điều hành nào?.
Vì bảng partition chỉ có 4 phần tử nên DOS chỉ cho phép tạo ra tối đa là 4
partition. Đây là một hạn chế. Để khắc phục điều này hệ điều hành DOS cho phép
tạo ra nhiều đĩa logic trên một partition mở rộng, tức là có thể tạo ra được nhiều đĩa
logic trên một ổ đĩa cơ sở. Hệ điều hành windowsNT/ 2000 cho phép tạo ra nhiều
hơn 4 partition trên một ổ đĩa và số lượng các phần tử trong bảng partition có thể
thay đổi.
 Chữ ký hệ điều hành (2 byte: bắt đầu từ byte 1FEh): thường chứa giá
trị 55AAh. Hệ điều hành DOS kiểm tra giá trị tại vùng này để biết đĩa này có phải
được định dạng bởi nó hay không.
Một phần tử trong bảng phân khu chứa các thông tin sau:
Offset Nội dung

2

Par

3

Par

4

chữ ký
h
ệ điều h
ành

0
1
B
E

1CE

1DE
1E
E
1F
E
B
ảng partition có 4
Master Boot Record

t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w

Locate_active:
Mov AL, masterboot[SI]
Cmp AL, 80h
Je Active
Add SI, 16
Loop Locate_active
No_active:

Active:

Ví dụ 2: Để đọc nội dụng boot sector của đĩa cứng C ghi vào biến BootDat
ta phải thực hiện lần lượt các bược sau đây:
 Đọc sector đầu tiên của đĩa cứng lưu vào biến masterboot
 Tìm partition active (phần tử trong bảng partition có offset 00 bằng
80h)
 Đọc buye tại offset 01h và word tại offset 02 của phần tử partition
tương ứng ở trên (head, sector và cylinde), để xác định số hiệu sector
bắt đầu của partition active, đây chính là boot sector của đĩa cứng.
 Đọc nội dung của sector xác định được ở trên lưu vào BootDat.
Active:
Click to buy NOW!
P
D
F
-
X
C
h
a
n

F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k

chúng ta đã nói đến ở trên. Nội dung của các tập tin cũng được chia thành các bolck
có kích thước bằng kích thước của một cluster. Các cluster trên đĩa dùng để chứa
nội dung của các tập tin trên đĩa. Các thông tin liên quan đến một tập tin trên đĩa
được chứa ở vùng hệ thống.
 Vùng hệ thống: bao gồm các đoạn chương trình, các thông tin hệ
thống, các thông tin liên quan đến các tập tin/thư mục trên đĩa mà hệ điều hành
dùng để quản lý việc lưu trữ tập tin/thư mục trên đĩa sau này. Cụ thể nó bao gồm
các thành phần sau đây: Boot sector, FAT1, FAT2 và Root Directory.
Sau đây chúng ta sẽ khảo sát các thành phần trong vùng hệ thống, để thấy
được cách mà DOS quản lý các file và các thư mục được lưu trữ trên đĩa. Master

Boot
Record

0
sector 0 (FDD) hay
sector đầu tiên của partition
Block
(cluster
)

Click to buy NOW!
P
D

.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w
w
.
d
o
c

tính. Chính vì vậy bootstrap loader còn được gọi là chương trình mồi khởi
động. Bảng sau đây cho thấy vị trí, độ lớn và nội dung của các trường trong
boot sector.
Offset Nội dung Size
00 h Lệnh JUMP, nhảy về Bootstrap
Loader
3
byte
03 h Tên nhà sản xuất và số phiên bản 8 byte

0B h Số byte trên một sector 2 byte

0D h Số sector trên một cluster 1 byte

0E h Số sector dành cho boot sector 2 byte

10 h Số bảng FAT 1 byte

11 h Số phần tử (entry) trong Root
directory
2
byte
13 h Tổng số sector trên một tập đĩa (volume) 2 byte

15 h Mã nhận diện đĩa 1 byte

16 h Số sector dành cho bản FAT 2 byte

18 h Số sector trên một track 2 byte


t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w
e
r
w
w

4 byte

29 h Tên tập đĩa (nhãn đĩa) 11
byte
34 h Loại FAT: “FAT12” hoặc “FAT16” 8 byte

3Ch -
200h
Code của chương trình bootstrap
loader
452
byte
Bảng 4.4: Các trường trong boot sector
Như vậy, ngay sau khi quyền điều khiển được trả về cho boot sector thì hệ thống
sẽ thực hiện lệnh nhảy (Jmp) ở đầu boot sector (offset 00), để nhảy đến thực
hiện đoạn code bootstrap loader ở cuối boot sector (từ offset 3Ch đến offset
200h). Và bootstrap loader sẽ thực hiện nhiệm vụ của nó.
Dựa vào boot sector ta biết được nhiều thông tin về đĩa như: loại FAT, nhãn
đĩa, số sector trên một cluster, số byte trên một sector, … Và từ đó ta cũng có
thể tính được dung lượng của đĩa tính theo byte: Tổng số sector trên một tập
đĩa * số byte trên một sector.
Ví dụ: Để in ra loại FAT đang sử dụng trên đĩa mềm hoặc trên một volume trên
đĩa cứng ta thực hiện như sau:
 Đọc nội dung của boot sector lưu vào biến bootdat
 In ra 8 kí tự bắt đầu tại offset 34h của bootdat
Mov cx, 8
Mov SI, 34h
Mov ah, 02 ; hàm 02h/21h in kí tự trong DL
Loai_FAT:
Mov DL, byte PTR bootdat[SI]

o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e

V
i
e
w


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status