Tải bản đầy đủ (.pdf) (12 trang)

BÀI GIẢNG VỀ PHẦN MỀM CỦA HỆ THỐNG MÁY TÍNH ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (200.2 KB, 12 trang )

bi giảng về phần mềm hệ thống của máy tính


1- Tài liệu tham khảo Perter Norton. Nguyễn Khải

2 - Technicad reference.
3 - Các mạch vi xử lý.


Chơng 1
giải phẫu pc



Máy gồm : Mạch vi xử lý (Microprocessor , MP)
Bộ nhớ (Memory).
Mạch tạo xung nhịp (Impulse Generator)
Mạch điều khiển ngoại vi (Periferal Control) nằm ở bảng mạch hệ
thống (Main Board)

1 - Mạch xử lý trung tâm CPU (Central Processing Unit) :
Mạch xử lí trung tâm là mạch điều khiển chính các hoạt động vào ra thông tin của máy tính.
Các mạch vi xử lý 16 bit của Intel (Mỹ)

8086 8088 80286
Năm sản xuất 6/1978 1979 2/1992
Tần số nhịp đồng hồ (MHz) 10 10 20
Tốc độ xử lý (Triệu lệnh/s, MiPS) 0,33 0,33 1,2
Số Transistor 29.000 20.000 134.000
Bus dữ liệu (Data Bus) (Bits) 16 8 16
Bus địa chỉ (Address Bus) (Bits) 20 20 24


Mức địa chỉ hoá (MBytes) 1 1 16
Số chân 40 40 68
Cache không không có
Chế độ bộ nhớ ảo không không có
Bộ quản lý bộ nhớ trong không không không
Bộ đồng xử lý toán học (Cooprated MP) MP 8087 MP 8087 MP 80287
Các mạch Vi xử lý 32 bit của Intel
Bộ Vi xử lý 80386DX 80386SX 80486DX 80486SX 486DX2 Pentium
Năm sx 10/1985 6/1988 4/1989 4/1991 3/1992 5/1993
Tần số nhịp 40 33 50 25 66 100
Tốc độ xử lý (MiPS) 6 2,5 20 16,5 52 112
Số Transistor 275.000 275.000 1,2 triệu 1,18 triệu 1,2 triệu 3,1 triệu
Cache ngoài ngoài trong 8K trong 8K trong 8K trong 16K
Bus dữ liệu (bits) 32 16 32 32 32 64
Bus địa chỉ (bits) 32 24 32 32 32 32
Mức địa chỉ hoá 4GB 16MB 4GB 4GB 4GB 4GB
Số chân 132 100 168 168 168 273
Bộ nhớ ảo có có có có có có
Bộ quản lý bộ nhớ trong có có có có có có
Mạch đồng xử lý toán 80387DX 80387SX trong 80487SX tron
g
trong
Mạch xử lí trung tâm quản lí thông tin thông qua các địa chỉ đợc xử lí thông qua bộ địa chỉ hoá.
Khi thực hiện một lệnh CPU lấy lệnh từ bộ nhớ, đọc các tham số đi kèm sau lệnh, giải mã lệnh, thực hiện
lệnh và ghi kết quả .
Mạch MP-8088, MP-8086 là mạch vi xử lí trung tâm thế hệ 3 đóng trong vỏ dài 40 chân, dùng
14 thanh ghi 8 bít dữ liệu, xử lí 16 bít. Tần số hoạt động thấp 5-8Mhz, có khả năng địa chỉ hoá khoảng
1Mbyte

1

MP-80286 thế hệ 4 đóng trong vỏ vuông 68 chân, dùng loại thanh ghi 16 bít, tần số hoạt động là
10Mhz, có khả năng địa chỉ hoá khoảng 16Mbyte. Mạch vi xử lí MP-80286 gồm 4 đơn vị sau :
- Đơn vị điều khiển Bus (BU) sinh ra các tín hiệu địa chỉ, tín hiệu số liệu, tín hiệu điều khiển.
Các tín hiệu này sẽ thâm nhập vào bộ nhớ và các cổng vào ra. Trong đơn vị này có một bộ nhớ đệm
6byte cho phép nhận lệnh song song trong các quá trình khác nhau.
- Đơn vị lệnh (IU) nhận lệnh từ bộ nhớ đệm để đa vào bộ giải mã lệnh, tín hiệu giải mã của lệnh
đợc đa tới bộ nhớ tạm (hàng đợi lệnh) để chờ đa vào đơn vị thực hiện .
- Đơn vị thực hiện (EU) gồm có 15 thanh ghi (Register) loại 16 bit, bộ điều khiển, bộ xử lí số
học và logic ALU (Arithmetical Logical Unit). Đơn vị này thực hiện lệnh theo mã máy và gửi kết quả ra
bộ nhớ hoặc cổng (port) thông qua BUS
- Đơn vị địa chỉ (AU) có chức năng quản lí, bảo vệ bộ nhớ và chuyển địa chỉ logic thành địa chỉ
vật lí.
P80386 hoặc P80486 là mạch vi xử lí thế hệ 5 đóng trong vỏ vuông 132 chân, dùng loại thanh
ghi 32 bít dữ liệu, tần số hoạt động trên 20 Mhz, có khả năng địa chỉ hoá tới 4 giga Byte. MP80386 dùng
Bus dữ liệu 32 bit và Bus địa chỉ 32 bit .
MP-80386 gồm 6 đơn vị sau :
-Đơn vị BUS
-Đơn vị nhận lệnh (Prefetch Unit)
-Đơn vị giải mã lệnh (Decode Unit)
-Đơn vị thực hiện lệnh (Execution Unit)
-Đơn vị quản lí bộ nhớ theo đoạn (Segment Unit)
-Đơn vị quản lí bộ nhớ theo trang (Page Unit)

Execution Unit Segment Unit Page Unit





Decode Unit

Prefrest Unit
BUS Unit

2









Các mạch vi
xử lí đều có thể bổ trợ chức năng số học nhờ mạch đồng xử lý (Cooprocesor) họ P80387 (phần mở
rộng chức năng số học mở rộng cho xử lý tính toán với dấu phẩy động, nó thực hiện đợc các phép + - *
/ và các tính toán lợng giác) mạch P8089 (mở rộng chức năng xử lý vào ra).
Các thanh ghi

Dịch trái/phải

ALU
Các thanh ghi
đoạn segment

bộ chuyển đổi
đoạn Segment
Bộ đệm
chuyển đổi


Bộ chuyển hoá
trang
Bộ giải mã lệnh

hàng đợi lệnh đã
giải mã
Hàng đợi lệnh

Bộ nhận lệnh


Bộ ghép nối
BUS
2- Các thanh ghi (Register) :

* MP-8088 có 14 thanh ghi
+ 4 thanh ghi đa năng
Thanh ghi AX (tổng) loại 16 bít phân thành hai nửa gọi là thanh ghi AH và AL
Thanh ghi BX (cơ sở) BH và BL
Thanh ghi CX (ô đếm) CH và CL
Thanh ghi DX (dữ liệu) DH và DL
4 thanh ghi này để lu các toán hạng và kết quả trung gian
+ 4 thanh ghi địa chỉ đoạn :
Thanh ghi CS (Code Segment) để ghi địa chỉ đoạn mã lệnh gồm 16 bít (bít 15-0)
Thanh ghi DS (Data Segment) để ghi địa chỉ đoạn dữ liệu
Thanh ghi SS (Stack Segment) để ghi địa chỉ đoạn ngăn xếp
Thanh ghi ES (Extra Segment) để ghi địa chỉ đoạn mở rộng
+ 4 thanh ghi offset (để ghi địa chỉ tơng đối - còn gọi là con trỏ ô trong một đoạn bộ nhớ )
Thanh ghi IP (Instruction Pointer- con trỏ lệnh) để chứa địa chỉ của ô của đoạn CS
Thanh ghi SP (Stack Pointer - con trỏ STACK) để chứa địa chỉ của ô trong đoạn SS

Thanh ghi BP (Base Pointer - con trỏ cở sở) để chứa địa chỉ của ô trong đoạn BS
Thanh ghi SI (Source Index-chỉ số nguồn) để chứa địa chỉ của nguồn dữ liệu
Thanh ghi DI (Destination Index-chỉ số đích) Để ghi địa chỉ ô đích cất dữ liệu
+ Thanh ghi cờ 16 bít . Có 9 bít cờ ứng với bit 4 đến bit 15 .
15 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
CF= Carry Flag=cờ nhớ; OF=Overflow Flag=cờ tràn ô khi chia cho số 0 ; ZF=Zero Flag=cờ Zero để chỉ
phép tính cho kết quả bằng 0; SF= Sign Flag= cờ dấu chỉ trạng thái dấu +/- ; PF=Parity Flag= cờ chẵn lẻ ;
AF=Auxiliary Flag= cờ nhớ phụ chỉ thị số nhớ; DF=Direction Flag=cờ định hớng, tiến lùi ; IF=Interrupt
Flag=cờ ngắt; TF=Trap Flag= cờ chạy từng bớc).
* MP-80286 có 15 thanh ghi phân thành 4 nhóm sau :
- Nhóm thanh ghi đa năng : AX , BX , CX, DX
- Nhóm thanh ghi đoạn bộ nhớ : CS (Code Segment), DS (Data Segment), SS (Stack Segment), ES (Extra
Segment)
- Nhóm thanh ghi offset (con trỏ): IP (Instruction Pointer), BP (Base Pointer) , SP (Stack Pointer) , SI
(Source Index), DI (Destination Index)
- Thanh ghi cờ và thanh ghi từ trạng thái : F và MSW
* MP-80386 có 32 thanh ghi loại 32 bit phân thành các nhóm chính sau :
- 4 Thanh ghi đa năng ( General Purpose Register) : Các thanh ghi 32 bit có tên là EAX, EBX,
ECX , EDX các thanh ghi này cũng có chức năng nh các thanh ghi đa năng của các họ vi xử lí khác . 16
bít thấp của các thanh ghi này cũng có thể thâm nhập riêng nên nó cũng có tên riêng là AX, BX, CX, DX,
các thanh ghi này cũng đợc phân thành 2 nửa AH,AL
31 16 15 0
EAX AH AL
EBX BH BL
ECX CH CL
EDX DH DL

- 6 thanh ghi đoạn (Segment Register) : mỗi thanh ghi gồm 2 phần, đó là phần ghi địa chỉ đoạn
của bộ nhớ (gọi là bộ chọn mảng) phần này thâm nhập đợc nên gọi là phần hở , phần thứ hai là phần ghi

mô tả mảng không thâm nhập đợc nên gọi là phần kín. Khi thanh ghi chọn mảng đợc thâm nhập thì
thanh ghi mô tả mảng cũng đợc tự động nạp các thông số của mảng .
31 thanh mô tả đoạn 16 15 Thanh ghi chọn đoạn 0
CS code segment
DS Data Segment
ES Extra Segment
FS
GS Global Segment
SS Stack Segment

- Các thanh ghi offset (con trỏ ô nhớ tơng đối trong từng đoạn)
ESI SI
EDI DI
EBP BP
ESP SP
EIP IP

- 1 Thanh ghi cờ : EFLAGS sử dụng từ bit 0 đến bit 17

3

4
- 3 Thanh ghi điều khiển : CR0 (Control Register) chứa MSW từ bit 0-15, 6 bít điều khiển nằm
ở phần cao hơn. CR2 (Control Register 2) thanh ghi này chứa địa chỉ tuyến tính của trang bộ nhớ có lỗi.
Thanh ghi CR3 (Ctrol Register 3) để ghi địa chỉ cơ sở của bảng danh mục trang bộ nhớ. Thanh ghi CR1
để dùng cho tơng lai của Intel.
- 4 Thanh ghi hệ thống :
GDTR (Global Descriptor Table Register)
IDTR (Interrupt Descriptor Table Register)
TR (Task Register)

LDTR (Local Descriptor Table Register)
Trong đó hai thanh ghi GDTR và IDTR chứa 32 bít cơ sở của địa chỉ tuyến tính và 16 bít giới
hạn của đoạn GDT và IDT. Các đoạn GDT và IDT dùng chung cho tất cả các nhiệm vụ trong hệ thống
nên nó hoàn toàn đợc xác định bởi 32 bit địa chỉ tuyến tính và 16 bít giới hạn .
Hai thanh ghi LDTR và TR có 2 phần : đó là phần chọn đoạn bộ nhớ hệ thống và phần mô tả
đoạn hệ thống, nó cũng có phần hở và phần kín nh các thanh ghi đoạn.
- 6 thanh ghi gỡ rối kí hiệu là DR0,DR1,DR2,DR3,DR6,DR7. trong đó các thanh ghi từ DR0 -
DR3 đùng để ghi 4 điểm gẫy (Break) của chơng trình đang chạy, DR6 để ghi trạng thái gỡ rối , thanh
ghi DR7 để điều khiển gỡ rối.
- 2 thanh ghi kiểm tra RAM (Test Ram) kí hiệu là TR6 và TR7. Trong đó TR6 để ghi từ kiểm
tra (Test Word) còn TR7 để ghi trạng thái kiểm tra (Status Word)
Chú thích :
AX là thanh chứa và thực hiện các phép tính, chứa kết quả.
BX (gốc) dùng để chỉ ra đầu của bảng chuyển đổi trong bộ nhớ, nó còn đợc dùng để lu offset.
CX (đếm) dùng để đếm các quá trình xử lý lăp đi lặp lại (trong trờng hợp sử dùng với lệnh LOOP,
FOR NEXT , Repeat Until , While Wend)
BX (dữ liệu). Dùng để lu tạm dữ liệu 16 bít.
CS Xác định đoạn mã lệnh nào đó chứa chơng trình sẽ đợc thực hiện
DS xác định đoạn dữ liệu là vùng bộ nhớ chứa các dữ liệu hiện thời.
SS xác định đoạn chứa ngăn xếp(STACK) để quản lý các tham số và địa chỉ hiện đợc sử dụng trong
chơng trình hoạt động.
ES là đoạn mở rộng lu trữ dữ liệu bổ sung cho đoạn dữ liệu và dùng cho việc truyền dữ liệu giữa các
đoạn.
IP thanh ghi con trỏ lệnh (iustruction pointer) định vị lệnh đang thực hiện đoạn mã lệnh. Nó
cho ta địa chỉ offset tổng đoạn mã lệnh. Nó đợc dùng với thanh ghi CS để xác định chính xác lệnh tiếp
theo đợc thực hiện.
SP thanh ghi con trỏ ngăn xếp (Stack Pointer cho biết vị trí định ngăn xếp.
BP thanh ghi gốc (con trỏ gốc) cho biết địa chỉ offset trong đoạn ngăn xếp.
SI thanh ghi chỉ số nguồn (Source Index) để chỉ ra miền dữ liệu cần chuyển tới.
3 - Bộ điều khiển ngắt 8259


Ngắt là tín hiệu gửi tới CPU để yêu cầu thực hiện một chức năng xử lí nào đó. 8259 chặn tín hiệu
đó lại, xác định mức độ u tiên, phát lệnh ngắt tới CPU. Khi CPU nhận đơc tín hiệu ngắt nó sẽ gọi
một chơng trình tơng ứng trong ROM-BIOS (Gọi là Service của ROM-BIOS). Hoặc một chơng trình
xử lí ngắt của DOS (Gọi là một Function của DOS). Mạch 8259 có thể xử lý 8 tín hiệu ngắt đồng thời.
Ta có thể lập trình để quản lí các ngắt .
4 - Bộ điều khiển DMA
(Direct Memory Acess) 8237a
Để tránh bận CPU .một số phần của máy có thể chuyển dữ liệu đi hoặc tới bộ nhớ một
cách trực tiếp không qua CPU. Bộ phận chuyển giao xử lý vào ra trực tiếp này là bộ DMA 8237a.
DMA có 4 kênh riêng biệt để mang dữ liệu đến từ bộ nhớ và 344 bít bộ nhớ trong để chứa dữ liệu
cần chuyển. AT nối 2 bộ điều khiển DMA để sử dụng.
5 - Bộ tạo xung nhịp 82284a :

- Phát tần số cơ sở 14,3128 Mhz. Tần số làm việc = tần số cơ sở/ hằng số nào đó. Tần số làm việc
của 8088 là 4,77 MHz, của 80286 là 6 Mhz, 80386 là 40MHz, 80486 có tần số làm việc là 60MHz. BUS
trong và bộ thời gian 8235 dùng tần số 1,193MHz
6- Bộ ghép nối thiết bị ngoại vi lâp trình đợc 8255
8255 dùng để nối các thiết bị ngoại vi vào BUS
7- Bộ thời gian lập trình đợc 8253

8253 (trong AT dùng 8254a) là bộ thời gian và bộ đếm. Nhận tín hiệu từ 82284(A) và đợc chia
tần để dùng 1,190MHz. 8253 tạo âm thanh loa, đồng hồ.

5
8 - Bộ điều khiển CRT 6845
. Điều khiển lái tia màn hình
Gắn ở bảng bổ sung ADAPTER màn hình, có liên quan với thanh ghi trong CPU để điều khiển quét
mành CRT
9- Bộ điều khiển PD765

(điều khiển đĩa)


10- BUS .

BUS là con đờng truyền thông tín hiệu trong các phần tử của thiết bị máy tính
BUS gồm 4 phần :- đờng nguồn
- đờng tín hiệu điều khiển
- đờng dữ liệu
- đờng địa chỉ.
+ BUS địa chỉ : 20 đờng cho phép 2^20 địa chỉ hoá
AT dùng tới 24 đờng cho phép 2^24 địa chỉ trên 16 triệu địa chỉ
+BUS dữ liệu: 8086 dùng 16 đờng
8088 BUS 8 đờng (8bit)
80286 16 đờng hoặc 8 đờng(có bộ phận chuyển đổi)
80386 32 đờng (D0-D31)
Mạch 74LS373 chuyển địa chỉ từ BUS cục bộ sang BUS hệ thống .
Mạch 74LS245 để chuyển dữ liệu từ BUS cục bộ sang BUS hệ thống .
Mạch 82288 để biến các tín hiệu điều khiển từ BUS cục bộ thành tín hiệu điều khiển của BUS hệ thống.
11- Bộ nhớ:

+ Bộ nhớ gồm nhiều khối,mỗi khối 64K
+ Mỗi ô nhớ có 8 bít (1byte), Một từ 16 bít, Một từ kép 32 bit. Một từ đợc nạp vào bộ nhớ theo
nguyên tắc byte thấp nạp vào ô có địa chỉ thấp, byte cao nạp vào ô địa chỉ cao nh vậy khi hiển thị lên
màn hình ta thấy các từ bị xếp ngợc : Byte thấp đứng trớc Byte cao đứng sau. Vơi từ kép thì từ thấp hiển
thị trớc, từ cao hiện sau .
Ví dụ : ta có một từ 2 byte sau 12 34 thì 34 là byte thấp đợc hiển thị trớc, 12 là byte cao đợc
hiển thị sau nên ta thấy 34 12 .
Ta có 2 từ sau : 12 34 : 56 78 đợc xếp lần lợt từ ô nhớ thấp lên đến ô nhớ cao, nhng
khi hiển thị lên màn hình ta sẽ thấy nh sau 78 56 : 34 12

+ Địa chỉ của một từ đơn hay từ kép là địa chỉ của byte thấp nhất trong từ đó vì BUS địa chỉ
gồm 20 đờng nên địa chỉ của mỗi ô đợc đánh giá bằng 20 bít nhị phân = 5 số hệ 16 nên khoảng địa chỉ
hoá tối đa từ 00000FFFFF (từ 01048576 ở hệ 10). ở thế hệ vi mạch mới cáp địa chỉ lên đến 32
đờng nên khả năng địa chỉ hoá rất cao có thể lên tới vài trục MegaByte.
+ Bộ nhớ đợc phân vùng theo đoạn (segment) hoặc theo từng trang 4k (page)
Phân vùng bộ nhớ theo đoạn nh sau :
F0000 ROM thờng trực (ROM_BIOS, ROM basic, chơng trình chẩn đoán)
E0000 vùng ROM cartridge
D0000 vùngROM cartridge
C0000 vùng mở rộng BIOS(đĩa XT)
B0000 RAM màn hình thông thờng (PC,XT,AT)
B0000 địa chỉ đầu RAM màn hình đơn sắc(dùng 4K ở địa chỉ đầu)
B8000 địa chỉ RAM màn hình mầu đồ thị(dùng 16K ở địa chỉ đầu)
A0000 RAM màn hình mở rộng
90000 640K
80000 572K
70000 572K
60000 448K
50000 384K
40000 320K
30000 265K
20000 192K
10000
RAM 128K tối đa cho PCjr
00000 RAM 64K dành cho phần mềm hệ thống
+ MP-80386 có 3 loại địa chỉ : Địa chỉ Logic (ảo), địa chỉ tuyến tính, địa chỉ vật lí. Địa chỉ logic
gồm 2 phần đoạn: offset. Trong đó địa chỉ đoạn đợc chỉ ra trong các thanh ghi đoạn, địa chỉ offset đợc
chỉ ra trong các thanh ghi con trỏ (pointer). Địa chỉ offset gồm 3 phần: địa chỉ cơ sở, chỉ số và dịch
chuyển ( Base, Index, Displacement). Địa chỉ tuyến tính là địa chỉ đợc định theo ô nhớ đầu tiên của bộ
nhớ đuợc tính nh sau: lấy địa chỉ đoạn dịch sang trái 4 bít rồi cộng với offset. Địa chỉ vật lí là địa chỉ

xuất hiện thật ở chân của MP-80386.












Nguyễn Khải


Chơng 2
Hoạt động vào ra của máy tính



1 - CPU Giao tiếp thế nào :

CPU Giao tiếp với các phần tử khác của hệ thống máy bằng 3 cách:
- Trao đổi trực tiếp (hoặc gián tiếp) với bộ nhớ
- Qua các cổng. Tín hiệu vào ra các thiết bị đều qua cổng của nó. Mỗi cổng có một địa chỉ xác định .
- Qua các ngắt.
a - Trao đổi bộ nhớ trực tiếp và gián tiếp :
CPU điều khiển sự truy nhập gián tiếp vào bộ nhớ thông qua các thanh ghi có trong CPU. Chẳng hạn tín
hiệu từ bàn phím các thanh ghi trong 80386 bộ nhớ.

- Sự truy nhập gián tiếp vào bộ nhớ đều thông qua khâu trung gian là CPU để xử lý
- Sự truy nhập trực tiếp vào bộ nhớ là quá trình thông tin đi từ nguồn phát thông tin thẳng đến bộ nhớ
thông qua khối DMA mà không cần đến CPU
Vào trực tiếp ( CPU ) Bộ nhớ
Vào gián tiếp ( DMA) Bộ nhớ
b- Cách định địa chỉ:
Địa chỉ bộ nhớ gồm 2 phần :
- Địa chỉ đoạn (địa chỉ đầu của mỗi đoạn 64K)
- Địa chỉ offset (địa chỉ tơng đối của ô nhớ trong mỗi đoạn )
- Địa chỉ đoạn gồm 16 bít
- Địa chỉ tơng đối (offset) cũng gồm 16 bít
Kết hợp 2 địa chỉ đoạn và offset tạo thành địa chỉ phân đoạn (gọi là một véc tơ ) vì BUS chỉ gồm 20 bít
nên địa chỉ phân đoạn cũng cần địa chỉ hoá 20 bít, bằng cách:
Dịch trái địa chỉ đoạn sang trái 4 bít + điạ chỉ offset 16 bít = địa chỉ phân đoạn 20 bít.
20 bít nhị phân địa chỉ phân đoạn đợc phân thành 5 nhóm, mỗi nhóm 4 bít để làm thành 5 số địa chỉ hệ
16
Thí dụ : Địa chỉ đoạn : 1011 1010 0110 0111
B A 6 7
Địa chỉ offset :1100 0100 0100 0110
C 4 4 6
Địa chỉ phân đoạn hệ 16 sẽ là BA670 + C446 = D3BB6
+ Để mô tả một địa chỉ phân đoạn ta có thể dùng cách mô tả gộp dới dạng tổng của phân dịch trái 4
bít của địa chỉ đoạn + địa chỉ offset (nh thí dụ trên là D3BB6 hoặc mô tả tách rời thành 2 phần cách
nhau có dạng : ĐIA CHI ĐOAN:offset
nh thí dụ trên ta viết là BA67:C446

6

7
d- Ngăn xếp (STACK)

Ngăn xếp là một vùng bộ nhớ để nhớ và quản lý tiến trình công việc. Ghi lại địa chỉ nơi
chơng trình con đợc gọi và những tham số truyền cho nó. Ngăn xếp hoạt động theo nguyên tắc (LIFO)
(Vào cuối ra đầu- last In Pirst Out.)
e- Các luật sử dụng thanh ghi.
Các thanh ghi chung AX,BX,CX,DX đợc dùng thoải mái
+ AX thờng dùng để chứa kết quả.
+ CS không đợc sửa trực tiếp nhng có thể thay đổi gián tiếp bằng cách gọi chơng trình con gần hoặc
ax.
DS có thể thay đổi đợc nhng sau đó thờng đợc trả lại giá trị cũ
+ SS giá trị ban đầu của SS cần phải lu lại trớc khi thực hiện thay đổi với thanh ghi
+ ES có thể thay đổi đợc theo ý muốn.
+ IP không thể thay đổi trực tiếp
+ SP không thể thay đổi đợc.
+ BP thờng đợc thay đổi để truy nhập tới các tham số và thờng đợc phục hồi lại
+ SI, DI có thể tự do theo dõi khi cần.
f- Các cổng I/o
+ Cổng là cửa mà qua đó thông tin truyền đến hoặc truyền đi ( bàn phím, màn hình n chuột, đều gửi
thông tin ra vào cổng. Mỗi linh kiện đều có thể sử dụng vào địa chỉ cổng cho các mục đích khác nhau.
+ Địa chỉ cổng 16 bít. CPU gửi dữ liệu hoặc thông tin tới từng cổng bằng cách chỉ ra số thứ tự của
cổng, còn cổng trả lời bằng cách gửi lên BUS một tín hiệu trạng thái.
Sự trao đổi CPU và cổng thực hiện cụ thể nh sau :
Đầu tiên CPU gửi một tín hiệu lên BUS điều khiển để lu ý tất cả các thiết bị vào ra rằng trên
BUS địa chỉ của một cổng nào đó sau đó CPU gửi tín hiệu địa chỉ cổng lên BUS địa chỉ cuối cùng thì
thiết bị cổng truyền lên BUS điều khiển một tín hiệu trạng thái sẵn sàng hay không sẵn sàng.
Địa chỉ cổng là số thứ tự cổng, đó là một số chỉ tới một vị trí nhớ trong thiết bị vào ra chứ
không phải ở trong bộ nhớ.

Địa chỉ các cổng nh sau: AT
Bộ điều khiển DMA (8237A-5) 000-01F
Bộ điều khiển ngắt (8259A) 020-03F

Bộ thời gian (8253-5;8254.2 ở AT) 040-05F
PPI(8255A5-8255-5 ở PCjr)
Bàn phím (8012) 060-06F
Thanh ghi hay DMA (74LS612) 080-09F
Bộ điều khiển ngắt (8259A) 070-07F
Bộ tạo âm (SN76496N) oc-0c7 0A0-0BF
Bộ điều khiển DMA2 (8237A-5)
Xoá đặt lại bộ xử lý toán OCO-ODF
Xoá đặt lại bộ xử lý toán OFO-OF1
Joystik 200-207 200-20F
Bộ mở rộng 201-217
Máy in song song (thứ 2) 278-27F
Cổng nối tiếp (thứ 2) 2F8-2FF 3F8-3FF 3F8-3FR
Cổng nối tiếp (thứ hai) 2F8-2FF 2F8-2FF
Card mẫu 300-30F 300-34F
Đĩa cứng. 320-32F 1FO-1F8
Máy in song song (thứ nhất) 378-37F 378-37R
SDLC(thứ 2 chỉ trên AT) 380-38F 380-38R
Liên lạc bisynchronous(thứ nhất) 3AO-3AF
Bộ ghép nối màn hình đen trắng máy in 3BO-3BF 3BO-3BF
Bộ ghép nối màn hình đồ thị 3DO-3DF 300-3DF
Bộ điều khiển đĩa mềm OFO-OFF 3FO-3F7 2FO-3F7

g- CPU sử dụng ngắt nh thế nào.
+ Các thiết bị hoạt động theo một chơng trình nào đó đều hoạt động ở chế độ ngắt.
+ Quá trình nh sau:
Thiết bị cứng hay chơng trình gửi một tín hiệu gọi là ngắt tới bộ vi xử lý nhận đợc tín hiệu
ngắt nó sẽ dừng tất cả các công việc khác và kích hoạt chơng trình con nằm trong bộ nhớ gọi là
chơng trình xử lý ngắt (mỗi chơng trình xử lý ngắt tơng ứng 1 số hiệu ngắt cụ thể sau khi chơng
trình xử lý ngắt đã hoạt động máy tính sẽ tiếp tục thực hiện từ chỗ nó dừng.


+ Có 3 lớp ngắt chính sau :
Ngắt cứng tạo ra bởi các mạch của máy tính khi đáp lại một sự kiện nào đấy (chẳng hạn khi
một phím trên bàn phím đợc nhấn) các ngắt này do mạch điều khiển quản lý (8259)
- Ngắt tạo bởi CPU xảy ra trong quá trình thực hiện chơng trình máy coi là một sản phẩm đặc biệt của
chơng trình chẳng hạn chạy chơng trình khi chia cho số 0)
- Ngắt do chơng trình (ngắt mềm) xảy ra khi gọi chạy chơng trình con ngắt này có thể lập trình đợc.
+ Ngoài 3 lớp ngắt chính trên còn có một loại ngắt đặc biệt là ngắt không chắn (NMI) nó dừng
để đòi hỏi sự chú ý tức thời của CPU khi có sự mất điện hoặc hỏng bộ nhớ.
+ Quá trình kích hoạt các ngắt nh sau :
Khi chơng trình gửi số hiệu ngắt tới CPU bộ sử lý ngắt 8259 phân tích số hiệu ngắt nhận đợc rồi nó
chỉ tới một bảng đơc nhớ ở vùng địa chỉ thấp của bộ nhớ. Bảng này gọi là bảng vectơ ngắt trong đó
mỗi ô của bảng này chứa địa chỉ phân đoạn của chơng trình xử lý ngắt cụ thể ứng với một số hiệu ngắt.
Nhờ có địa chỉ này (vec tơ ngắt) máy sẽ nhẩy tới vùng nhớ có chơng trình xử lý ngắt cụ thể và kích
hoạt trạng thái ngắt.
+ Đồng thời với quá trình ngắt thì giá trị của các thanh ghi CS và thanh ghi con trỏ lệch (IP)
đợc cất vào ngăn xếp (STACK). Nhờ đó mà máy có thể làm việc khi ngắt xảy ra.
Đồng thời giá trị của thanh ghi cờ cũng cất vào ngăn xếp và thanh ghi cờ bị xoá đi để ngăn các ngắt khác
tạm thời.














Chơng 3
PHầN MềM ROM




ROM là bộ nhớ gồm nhiều chơng trình cài đặt sẵn chỉ đọc ra mà không thay đổi đợc. Phần
mềm của ROM gồm các chức năng sau :
4 thành phần của ROM.
A ROM khởi động.
B. ROM-BIOS
C. Tệp các chơng trình giữ máy, thực hiện hỗ trợ.
D. ROM-BASIC.
A- ROM khởi động:
Là phần mềm chứa các chơng trình khởi động máy gồm các việc sau :
- Kiểm tra độ tin cậy của cả hệ thống, khẳng định mọi công việc đều sẵn sàng kiểm tra điện nguồn,
kiểm tra bộ nhớ, kiểm tra ổ đĩa
- Chơng trình tạo bảng véc tơ ngắt ở vùng địa chỉ thấp của RAM.
- Chơng trình kiểm tra các thiết bị liên kết với máy tính và ghi các thông tin kiểm tra đợc vào vị trí
chuổn trong RAM ở vùng địa chỉ thấp
- Chơng trình kiểm tra xem có ROM mở rộng không nếu có thì chuyển điều khiển sang ROM mở
rộng để thực hiện tiếp các chơng trình con có trong ROM mở rộng.

8
- Và cuối cùng là chơng trình tải BOOT_STRAP gồm việc đọc bản ghi khởi động ở trên đĩa, nếu việc
đọc bản ghi khởi động thành công ( không có lỗi) thì chuyển điều khiển của máy sang cho chơng

9

trình ghi ở bản ghi khởi động đĩa (chơng trình này có nhiệm vụ tải phần còn lại của chơng trình trên
đĩa).
Nếu quá trình tải của BOOT_STRAP không thành công thì ROM trả lời BOOT-FAILURE.
B- ROM-BIOS.
Phần mềm điều khiển quá trình máy hoạt động gồm các chơng trình điều khiển máy ngoại
vi ROM_BIOS gồm nhiều chơng chình phục vụ (Service) các chơng trình phục vụ BIOS này đợc gọi
ra bằng các vec tơ ngắt khác nhau.
Thí dụ :
a- Các chơng trình phục vụ màn hình đợc gọi ra bằng vec tơ 16
10
gồm tổng số
Service0Service15 (với AT có thêm 4 Service con nữa).
b - Các chơng trình phục vụ bàn phím đợc gọi ra bằng các véc tơ ngắt (16Hex) gồm có 3
service : service 0, service 1, service 2
c- Các chơng trình phục vụ cổng đợc gọi ra bằng ngắt (14H) gồm có 4 service dành cho quá
trình truyền thông tin ra cổng.
d- Các chơng trình phục vụ máy in gọi bằng véc tơ ngắt (17h) gồm có 3 service (service 0, service
1, service 2).
e- Các chơng trình phục vụ đĩa của ROM_BIOS gọi qua ngắt (13H) gồm 24 Service
f- Các chơng trình phục vụ của ROM_BIOS thực chất là chơng trình xử lý ngắt, mỗi chơng
trình này đợc gán một số hiệu ngắt, các số hiệu ngắt này ứng với một ô chứa véc tơ ngắt nằm ở vùng
địa chỉ thấp của RAM. Vec tơ ngắt chính là địa chỉ phân đoạn để định vị chơng trình xử lý ngắt. Khi
một số hiệu ngắt đợc gọi ra thì địa chỉ phân đoạn của vec tơ ngắt đợc tải vào thanh ghi CS (đoạn mã
lệnh ) và thanh ghi IP (con trỏ lệnh). Các véc tơ ngắt nằm ở vùng địa chỉ thấp nhất của bộ nhớ RAM
đầu tiên là ngắt số 0 và tiếp tục là ngắt số 1
Mỗi véc tơ ngắt dài 2 từ (4byte). Vị trí của véc tơ ngắt trong vùng bộ nhớ thấp đợc xác định bằng
cách lấy số hiệu ngắt *4 . Ví dụ : Ngắt số 5 có địa chỉ offset trong đoạn số 0000 là 5*4=20.
Nếu dùng DEBUG để kiểm tra ngắt này thì phải chuyển sang hệ 16. Thí dụ ngắt số 5 ở vùng
5*4=20
10

=14
16
.
Vậy nếu dùng DEBUG với lệnh D 0000:0014 L4 ta thấy ở địa chỉ đó chứa 4 byte sau 54 FF 00
F0. Do sự sắp xếp từ ngợc nên Bốn bai này phải đợc hiểu nh sau: 2 bai đầu làm thành một từ hiểu
đúng là FF 54 đó là địa chỉ offset. 2 bai sau làm thành một từ đúng là F0 00 đó là địa chỉ đoạn. Vậy địa
chỉ F000:FF54 là địa chỉ của chơng trình xử lý ngắt số 5 ở trong ROM .
Chú ý sự xắp xếp từ ngợc : Từ đứng trớc 2 byte đầu chỉ địa chỉ offset 2 byte sau chỉ địa chỉ đoạn
* ROM-BIOS gồm tất cả 12 ngắt chia thành 5 nhóm ;
- Nhóm 1 gồm 6 ngắt phục vụ các ngoại vi
- Nhóm 2 gồm 2 ngắt phục vụ các thiết bị hệ thống.
- Nhóm 3 gồm 1 ngắt phục vụ điều khiển đồng hồ hệ thống (ngày tháng)
- Nhóm 4 gồm 1 ngắt phục vụ in trang màn hình.
- Nhóm 5 gồm 3 ngắt chuyển máy tính sang trạng thái khác.
* Cách gọi phục vụ của các ngắt nh sau:
- Trớc tiên nạp số hiệu phục vụ vào thanh ghi AH.
- Sau đó gọi véc tơ ngắt .

Thí dụ: Muốn gọi chơng trình phục vụ số 1 về màn hình trong ngắt 16
10
=10
16
ta làm nh sau :
- Nạp số 1 vào thanh ghi AH bằng lệnh hợp ngữ MOV AH,1
- Gọi véc tơ ngắt số 10h bằng lệnh hợp ngữ INT 10
I - Các Chơng trình xử lí ngắt của ROM-BIOS :
1 - Ngắt 00 : Ngắt tạo bởi CPU khi tràn ô khi thực hiện phép chia (DIV) cho 0
2 - Ngắt 01 : Đặt trạng thái chạy từng bớc (khi cờ TF=1)
3 - Ngắt 02 : Ngắt không chắn đợc (ngắt không bị cấm bởi lệnh xoá ngắt CLI)
4 - Ngắt 03 : Đặt và xử lí điểm dừng của chơng trình

5 - Ngắt 04 : Đợc tạo ra khi kết quả của phép tính số học bị tràn .
6 - Ngắt 05 : Gọi chơng trình in trang màn hình .
7 - Ngắt 08 : Ngắt phát sinh từ phần cứng , tạo bởi nhịp kích của đồng hồ trong máy ngắt này thờng
đợc sử dụng trong các chơng trình thờng trú chạy định kì.
8 - ngắt 09 : Ngắt phát sinh từ phần cứng để xử lí bàn phím mỗi khi có một phím đợc đè hoặc nhả.
9 - Ngắt 13 (0Dh) : Tạo khi bộ CRT quét ngợc mành màn hình .

10
10- Ngắt 14 (0Dh) : Ngắt phát sinh từ phần cứng và đợc kích hoạt bởi bộ điều khiển mềm mỗi khi có
một tác vụ về đĩa mềm.
11- Ngắt 15 (0Fh) : Điều khiển máy in
12- Ngắt 16 (10h) : Gọi các dịch vụ màn hình của ROM-BIOS
Các chơng trình phục vụ màn hình của ROM_BIOS đều đợc gọi qua ngắt 16
10
(10h). Gồm 28
phục vụ theo các bảng phục vụ phân bố sau:
Số hiệu
Service
Chức năng Số hiệu
Service
Chức năng
Od Đặt kiểu màn hình 13 Đọc một điểm (pexel)
1d Đặt kích thớc con trỏ 14 Ghi ký tự nh điện báo
2d Đặt vị trí con trỏ 15 Lấy kiểu màn hình hiện thời
3 Dọc vi trí con trỏ 16 Ghép bảng mầu
4 Đoc vị trí bút sáng 17 Ghép bộ tạo ký tự
5 Đặt trạng thái hoạt động 18 Chọn lối ra dự bị.
6 Cuốn của sổ lên 19 Ghi chuỗi ký tự
7 Cuốn cửa sổ xuống 20 (Có thể đổi địa chỉ cho PC)
8 Đọc ký tự và thuộc tính 21 (Có thể đổi địa chỉ cho PC)

9 Ghi ký tự thuộc tính 26 (Đọc ghi mã hiển thị tổ hợp)
10 Ghi 1 ký tự 27 Lấy thông tin trạng thái
11 Đặt bảng 4 mầu 28 Cất ghi lại trạng thái
12 Ghi 1 điểm (pixel)
13- Ngắt 17 (11h) : Gọi các dịch vụ liệt kê thiết bị
14- Ngắt 18 (12h) : Gọi các dịch vụ tính kích thớc bộ nhớ
15- Ngắt 19 (13h) : Goi các dịch vụ ổ đĩa của ROM-BIOS (đĩa mềm và đĩa cứng).
* Các chơng trình phục vụ đĩa mềm chuẩn của ROM-BIOS đều đợc gọi qua ngắt 19d (13Hex) có 6
service. Các service này đợc chọn qua thanh ghi AH nh sau:
- Nạp vào thanh ghi AH số hiệu của Service : MOV AH, số hiệu của service
- Gọi Ngắt 13h bằng lệnh Hợp ngữ : INT 13h

Số hiệu Service Chức năng
0 Khởi động hệ thống đĩa
1 Đọc trạng thái đĩa
2 Đọc sector
3 Ghi sector lên đĩa
4 Kiểm tra sector
5 Khởi tạo rãnh đĩa mềm

* Các sevice đĩa cứng.
6 Khởi tạo rãnh đĩa cứng PC/XT
7 Khởi tạo rãnh đĩa cứng PC/XT
8 Đọc tham số ở ổ đĩa hiện hành
9 Khởi tạo bảng tham số đĩa cứng
10 và 11 Đọc và ghi dài
12 Tìm đến xem lại
13 Khởi động đĩa cứng
16 Kiểm tra lại sự sẵn sàng của ổ đĩa cứng
17 Đặt chuẩn lại từng ổ đĩa cứng.

20 Chuẩn đoán bộ điều khiển
21 Đọc kiểu đĩa
22 Thay đổi trạng thái đĩa
23 Đặt kiểu đĩa mềm
24 Đặt kiểu đĩa để khởi tạo
25 Thu đầu dọc.
26 Khởi tạo đĩa cứng gắn với bộ phối ghép ESDI

11



16 - Ngắt 20 (14h): Gọi các dịch vụ quản lí sự nhập xuất cổng chuẩn RS-232 của RomBios

Service Chức năng Service Chức năng
00 Khởi tạo cổng truyền thông 02 Nhận một kí tự từ cổng
01 Gửi một kí tự ra cổng 03 Lấy tình trạng cổng truyền thông

17- Ngắt 21 (15h) : Gọi các dịch vụ mở rộng chức năng của máy AT

Service Chức năng Service Chức năng
00 Bật motơ Cassette 84h Điều khiển Joystick
01 Tắt motor Cassette 85h Đọc Phím SysReq ấn nhả
02 Đọc cassette 86h Đợi vòng lặp của ngắt
03 Ghi Cassette 87h Di chuyển khối vùng nhớ mở rộng
80h Mở thiết bị 88h Lấy kích thớc vùng nhớ mở rộng
81h Đóng thiết bị 89h Vào mode bảo vệ (Vùng nhớ ảo)
82h Kết thúc chơng trình 90h Đợi khi thiết bị bận
83h Đợi biến cố từ thiết bị 91h Báo thiết bị hết bận, giải phóng ngắt


18- Ngắt 22 (16h) : Gọi các dịch vụ Quản lí I/O bàn phím :

Service Chức năng Service Chức năng
00 Đợi để đọc phím kế tiếp 05h Đặt 1 kí tự vào bộ đệm bàn phím
01 Kiểm tra kí tự gõ từ bàn phím vào
bộ đệm bàn phím cha
10h Đợi để đọc bàn phím mở rộng 101/ 102
phím
02 Đọc trạng thái phím Shift, Ctrl,
Alt, Scroll lock, NumLock,
CapsLock, Insert
11h Kiểm tra kí tự gõ từ bàn phím mở rộng
vào bộ đệm bàn phím cha
03 Đặt tốc độ gõ lặp, trễ của sự gõ
phím
12h Đọc trạng thái phím Shift,Ctrl,Alt, Scroll
lock, NumLock, CapsLock, Insert của
bàn phím mở rộng

19- Ngắt 23 (17h) : Gọi các dịch vụ Quản lí I/O máy in .

Service Chức năng
00 Gửi một byte ra máy in
01 Khởi động máy in, gửi 2 mã điều khiển 08h, 0Ch ra cổng máy in
02 Đọc trạng thái máy in

17- Ngắt 24 (18h) : Khởi động ROM-BASIC có sẵn trong máy
18 -Ngắt 25 (19h) : Gọi chơng trình khởi động máy. (tải BOOT-STRAP)
19- Ngắt 26 (18h) : Gọi các dịch vụ quản lí thời gian :
Service Chức năng

00 Đọc số đếm nhịp hiện thời
01 Đặt số đếm nhịp
02 Đọc giờ hiện tại
03 Đặt giờ cho đồng hồ
04 Đọc ngày tháng thực của đồng hồ
05 Đặt lại ngày tháng cho đồng hồ
06 Đặt chuông báo thời gian vào một giờ nhất định
07 Đặt cấm chuông

12
09 §äc tr¹ng th¸i cÊm chu«ng

20- Ng¾t 21 (1Bh) : Gäi ch−¬ng tr×nh KÝch ho¹t Ctrl+Break






×