Vùng 700H - 9FFFFH có một vài vị trí dùng cho các yêu cầu của DOS, ghi cấu hình máy, toàn bộ phần còn lại được dùng để chạy chương trình.. Bộ nhớ mở rộng Bộ nhớ mở rộng dùng phần cứng
Trang 1Bµi 3
Tæ chøc bé nhí m¸y tÝnh IBM PC XT
Trang 21 Giíi thiÖu chung
Trang 31 Giíi thiÖu chung vÒ bé nhí m¸y tÝnh IBM PC XT
F E D C B A 9 8 7 6
5 PC DRAM (640 KB)
4 3 2 1 0
Bé nhí Video
ROM 256 KB FFFFF
Bé nhí trªn
C0000 BFFFF A0000 9FFFF
Bé nhí qui íc
00000
Tæ chøc bé nhí m¸y tÝnh IBM
PC XT
Trang 4 1 Kb đầu tiên: địa chỉ 0 - 3FFH dành cho bảng véc tơ ngắt
256 byte tiếp theo, vùng nhớ 4FFH dành cho vùng dữ liệu của BIOS
400- 256 byte tiếp theo, vùng nhớ 500 - 5FFH dùng để ghi các tham số của DOS (vùng dữ liệu DOS)
Vùng 700H - 9FFFFH có một vài vị trí dùng cho các yêu cầu của DOS, ghi cấu hình máy, toàn bộ phần còn lại được dùng để chạy chương trình
2 Tổ chức bộ nhớ qui ước
Trang 5VÝ dô 1:
§Þa chØ c¸c cæng COM1-COM4 407H)
Trang 6Bản đồ nhớ máy tính PC XT
FFFFF FE000 FDFFF F6000 F5FFF F4000 F3FFF CA000 C9FFF C8000 C7FFF C0000 BFFFF
A0000 9FFFF 00000
8K BIOS
32 K chương trình dịch BASIC
8K ROM người dùng 18K ROM mở rộng 8K ROM điều khiển đia 32K ROM mở rộng
128K Video RAM 640K DRAM
3 Tổ chức bộ nhớ trên
Trang 7Ví dụ 2:
Viết chữ A màu đỏ trên nền trắng tại dòng 5 cột 10
Trang 9t 3)
Mµu
Ghi chó
ch ữ
vµ mµu nÒn
Mµu ch÷
Green
Bright Cyan
Bright Red Bright
Violet
Yellow Bright White
Trang 10mov ah,01h
int 21h
int 20h
Trang 11Ví dụ 2: Khảo sát bộ nhớ máy tính tại địa chỉ: FFFF:0
Trang 12Ví dụ 3:
Viết chương trình khởi động nguội máy tính, biết rằng chương trình khởi động nằm ở ROM tại địa chỉ: F000:E05BH
Giải:
mov word ptr [BX],0E05BH
mov word ptr [BX+2],0F000H
jmp dword ptr [BX]
Trang 13Phần bản đồ nhớ RAM IBM PC dành cho ngắt và dữ liệu BIOS
Địa chỉ Byte Chức năng 0000:0000 - 0000:03FF 1024 Bảng vectơ ngắt
0000:0410 - 0000:0411 2 Danh mục phần cứng đã cài đặt
0000:0412 - 0000:0412 1 Cờ khởi tạo
Trang 140000:041C - 0000:041D 2 Con trỏ bộ đệm bàn phím (cuối)
0000:041E - 0000:043D 32 Bộ đệm bàn phím
0000:043E - 0000:0448 11 Vùng dữ liệu đĩa
0000:0449 - 0000:0449 1 Chế độ video hiện thời
0000:044A - 0000:044B 2 Số cột màn hình
0000:044C - 0000:044D 2 Kích thước bộ đệm tái tạo (byte)
0000:044E - 0000:044F 2 offset bộ đệm tái tạo
0000:0450 - 0000:045F 16 Vị trí con trỏ, trang 1-8
0000:0460 - 0000:0460 1 Dòng kết thúc con trỏ
0000:0461 - 0000:0461 1 Dòng bắt đầu con trỏ
0000:0462 - 0000:0462 1 Số trang hiển thị hiện thời
0000:0463 - 0000:0464 2 Địa chỉ cơ sở đang hiển thị
0000:0465 - 0000:0465 1 Thanh ghi chế độ CRT của MDA hoặc CGA 0000:0466 - 0000:0466 1 Thanh ghi cho CGA
0000:0467 - 0000:046B 5 Vùng dữ liệu cassette
0000:046C - 0000:0470 5 Vùng dữ liệu của bộ định thời
Trang 15Bé nhí qui íc 0
Trang 16* Bé nhí ph¸t triÓn: Lµ kh«ng gian nhí trªn 1Mb
Trang 17Bộ nhớ mở rộng
Bộ nhớ mở rộng dùng phần cứng (board nhớ mở rộng) và một thủ
thuật lập trình để vượt qua giới
hạn 1MB bộ nhớ.
Năm 1985, 3 hãng Lotus, Intel
và MicroSoft xây dựng tiêu
chuẩn gọi là tiêu chuẩn bộ nhớ
mở rộng EMS (Expanded
Memmory Specification) và sau
này là tiêu chuẩn LIM (Lotus
/Intel /Microsft)
Trang 18 Chuẩn bộ nhớ mở rộng LIM (EMS 3.0) đề xuất sử dụng 64 KB bộ nhớ liền nhau tạo thành một cửa sổ ở
vùng nhớ trên chiếu tới 8 Mb của
bộ nhớ mở rộng
Không gian nhớ 64 KB liền nhau
này được chia thành 4 phần gọi là các khung trang , mỗi khung trang truy nhập 16 KB
Địa chỉ 16 KB trang thứ nhất bắt
đầu từ biên của từng 16 KB, như 0,
4000, 8000, C000
Trang 19 Do 64 K bé nhí ph¶i liÒn nhau
Trang 20 Tiêu chuẩn bộ nhớ mở rộng là
phương pháp nhằm vượt qua giới hạn bộ nhớ 640 KB của DOS bằng các chương trình tráo đổi và bằng cách đưa d liệu vào ra bộ nhớ ữ
chính với tốc độ cao.
Trang 21ơng đương.
RAM CMOS lưu thông tin về cấu hình máy tính, một số thông tin trạng tháI, kiểu đĩa, chế độ làm việc …
Trang 22 RAM CMOS máy tính IBM PC XT có
dung lượng 64 Byte
Để truy nhập bộ nhớ RAM CMOS không thể dùng các lệnh truy cập bộ nhớ thông thường (như lệnh MOV ) mà cần sử dụng lệnh truy cập dữ liệu qua cổng
ở các máy 286/386/486/Pentium RAM CMOS được gán địa chỉ cổng là 70H và 71H
RAM CMOS khi máy tắt được cấp nguồn bằng pin Lithium hoặc Nickel-cadmium
Trang 23B¶ng 7-4: Th«ng tin cña RAM CMOS§Þa
0A * Tr¹ng th¸i thanh ghi A
0B * Tr¹ng th¸i thanh ghi B
Trang 240C * Trạng thái thanh ghi C
0D * Trạng thái thanh ghi D
0E * Byte trạng thái chuẩn đoán
0F * Byte trạng thái dừng máy
10 Byte kiểu ổ đĩa - ổ A và B
Trang 2519 Byte mở rộng của đĩa C
1A Byte mở rộng của đĩa D
trong quá tr ì nh POST)
32 * Byte ngày của thế kỷ
33 * Các cờ thông báo (được đặt khi bật nguồn)34-3F Dự trữ
Trang 26* Đọc nội dung của bộ nhớ CMOS
RAM-1 Gửi địa chỉ của byte cần đọc qua cổng 70H.
2 Đọc nội dung qua cổng địa chỉ 71H.
Trong Debug
O 70 ĐC
I 71
Trang 27* Ghi nội dung vào bộ nhớ CMOS
RAM-1 Gửi vị trí của byte cần ghi qua cổng địa chỉ 70H.
2 Gửi nội dung cần ghi qua cổng
địa chỉ 71H.
Trong Debug
O 70 ĐC
O 71 Giá trị
Trang 28Ví dụ:
Dùng DEBUG khảo sát bộ nhớ RAM CMOS:
- Đọc ngày, tháng, năm và kích thước bộ nhớ cơ sở.
- Xóa mật khẩu được ghi tại Byte CheckSum
Trang 29Byte ngày tháng năm và kích thước
bộ nhớ tương ứng là 7, 8, 9, 15 và 16Trong Debug
Trang 30Xãa mËt khÈu:
O 70 2F
O 71 FF
Trang 316 Bộ nhớ RAM đi kèm (shadow RAM)
Thời gian CPU truy nhập ROM
chậm (vài trăm ns), đòi hỏi bổ sung
2 hoặc 3 trạng thái chờ.
Thời gian truy nhập DRAM nhanh hơn nhiều so với ROM (cỡ chục ns).
Các nhà thiết kế sử dụng phương pháp ánh xạ đặc biệt phần cứng và phương pháp chống ghi bảo vệ dữ
liệu để chuyển nội dung của ROM ở vùng nhớ trên vào các ô nhớ của
DRAM với cùng địa chỉ như ROM
Trang 32 Phần DRAM lưu bản sao của ROM đư
ợc bảo vệ chống ghi này gọi là bộ nhớ RAM đi kèm (Shadow Ram)
Khi có yêu cầu các dịch vụ của ROM,
thì CPU lấy thông tin từ bộ nhớ RAM
đi kèm với tốc độ cao hơn nhiều so với lấy từ ROM
Sử dụng RAM đi kèm làm tăng hiệu
quả thực hiện có thể lên tới 40-50%
Trong một số máy, RAM đi kèm được cho dưới dạng chip riêng mà không sử dụng đến DRAM của hệ thống