1 giga byte = 1024MB = 27° byte B6 nhé do cho phép máy tính như có nhiều bộ nhớ hơn thực tế bộ nhớ vật lý tối đa là 16MB, Điều này thực hiện được là nhờ một sơ đổ địa chỉ hóa bộ nhớ nhằm
Trang 2_ữ east /
cee SRO
_ ĐẠI HỌC] MỞ: BÁN CÔNG TP HỒ CHÍ MINH
_a; ÑHOA TÍN TIN HỌC sista
Trang 3IH CÁC THIẾT BỊ VÀO RA ee ee
Chương 2
TỔ CHÚC HOẠT ĐỘNG CỦA CPU 16 BIT 8086/8088/80286
1 CÁC DẠNG DỮ LIỆU CỦA CPU
I GIAO TIẾP GIỮA CPU VÀ BỘ NHỚ
II CAC THANH GHI CUA CPU 2220-0 0056
IV co chu TỔ CHỨC VÀ HOẠT ĐỘNG CỦA INTERRUPT
V CƠ CẤU ĐỊNH ĐỊA CHỈ CUA CPU 80286
VI PHƯƠNG PHÁP MA HÓA CÁC LỆNH CỦA CPU 80286
CẦU HỔI ỒN TẬP - Q Q Q Q Q ee ee
Chương 3
CHƯƠNG TRÌNH GỠ RỐI DEBUG
1 GIGI THIRU PHAN MEM DEBUG
Il CÁCH KHỞI ĐỘNG DEBUG
II CÁC LỆNH CHÍNH CỦA CHƯƠNG TRÌNH DEBUG
BÀI TẬP THỰC HÀNH - eee ee eee eee
Trang 4II CAC PHAN CO BAN CUA HOP NG Lee 76
II CÁC PHẾP ĐỊNH ĐỊA CHỈ TRONG ASSEMBLER 101
VI TẬP TIN COM VÀ EXE kg nh va 105
V — MACRO ASSEMBLER 5l1.Ô 109
VI CÁC BƯỚC CƠ BẢN KHI LẬP TRÌNH TRONG GIỜ THỰC
TẬP ee eee 113
CAU HOI ON TAP Lee ee ee ee eee ees 114 BÀI TẬP THỰC HÀNH v 117
Chương 5 TẬP LỆNH HỢP NGỮ
A Nhóm lênh chuyễn đữ liêu: 124
1 NHÓM LỆNH CHUYỂN DỮ LIỆU ĐA DỤNG
(GENERAL PURPOSE INSTUCTION) 124
B Nhóm lệnh chuyển điểu khiển 143
1 LENH NHAY KHONG DIEU KIEN JMP (JUMP) 143
II LỆNH NHẢY CÔ ĐIỂU KIỆN 146
Ill LỆNH SO SANH CMP wees 151
IV NHÓM CÁC LỆNH VÒNG LẶP 152
V LỆNH GỌI CHƯƠNG TRÌNH CON 154 BÀI TẬP THỰC TẬP ¬ eee 163
Trang 5a
C Nhóm lênh tính toán số học 170
1 NHÓM LỆNH XỦ LÝ PHÉP CỘNG., 170
II NHÓM LỆNH XỦ LÝ PHẾP TRÙỪ 179
II NHÓM LỆNH XỦ LÝ PHẾP NHÂN 187
IV NHÓM LỆNH XỦ LÝ PHÉP CHIA 194
+ r a 2 ` V NHÓM CÁC LỆNH DỊCH CHUYỂN VA QUAY (SHIFT "0o v2 aaaaA 201 VI NHÓM CÁC LỆNH LOGIC 207
BÀI TẬP THỰC HÀNH Lee ee 211 DN các 8 lý chuổi 219
BÀI TẬP THỰC HÀNH 230
Chương 6 a ` > KIỂU CẤU TRÚC VÀ KIỂU BẢN GHI (structure and record) lL KIỂU CẤU TRÚC c cu 235 a ” Il KIỂU BẢN GHI 0 200 aee 238 BAI TAP THUC TAP 2.0.0.0 eee een eae 243 Chuong 7 MACRO I GI6L THIBU 0 oe c _245 II CAC DIRECTIVE DUNG TRONG MACRO 248
Wl CAC TOAN TU DUNG TRONG MACRO 257
Trang 6BAI QC KOLA CONG TREC Khoa Tia Hoe
I BỘ VI XỬ LÝ
1 Giới thiệu tống quát:
Đây là bộ não của máy tính, nó năm trên bản mạch hệ thống (main board) Bộ vi xử lý có khả năng thực hiện các lệnh viết bằng ngôn ngữ máy
Intel là hãng sản xuất bộ vi xủ lý đầu tiên và là hãng
có bộ vi xử lý khá phong phú Trải qua nhiều thế hệ máy tính, các bộ vi xử lý của hãng này được phát triển theo 3 giai đoạn khác nhau
+ BO vi xu lý 8 bịt (CPU 8080, 8085 )
Đặc điểm chính:
- Có khả năng xủ lý 8 bit dữ liệu cùng một lúc
- Có khả năng địa chỉ hóa được 64KB bộ nhớ
- Không có khả năng đa xử lý và đa chương
- Tốc độ xử lý chậm
+ Bộ vi xử it (CPU 8086, 8088 )
Đặc điểm chính:
- 0 kha năng xử lý đữ liệu 8 bít hay 16 bf cùng một lúc
- Có khả năng địa chỉ hóa được 1MB bộ nhớ và 64KB địa chỉ cổng
- Tốc độ xử lý nhanh hơn, tốc độ chuẩn SMHz.
Trang 7chvong I; Tổ cade PC Gido Trink Hop Nev
Có khả năng da xủ lý, ví dụ như máy tính có khả
năng vừa in, vừa thực hiện chương trìh cùng một lúc
Nói chung, CPU 8086 và CPU 8088 có cùng một chức năng, tập lệnh của chúng giống nhau 8088 chỉ khác 8086 ở một điểm: 8088 truyền dữ liệu thỏng qua bus đữ liệu 8 bịt, còn 8086 truyền thông qua bus dữ
Có khả năng địa chỉ hóa 16MB bệ nhớ vật lý (bộ nhớ thật)
Có khả năng làm việc ở 2 chế độ: Chế độ thực (real mode) và chế độ bảo vệ (protected mode)
* Ở chế độ thực: 80286 làm việc giống như 8086, tập lệnh của nó giống như 8086 nhưng nhiều hơn một sỐ lệnh, chương trình chạy nhanh hơn khoảng 2-5 lẩn
* Ở chế đô bảo về: Khi chuyển sang chế độ bảo vệ,
80286 có thể làm mọi công việc như ở chế độ thực,
nhưng cho phép bảo vệ dữ liệu và tổ chúc bộ nhớ
theo mảng Cơ chế tổ chức bộ nhớ theo mảng cho phép quản lý bộ nhớ cục lớn đến 16MB bộ nhớ vật lý
va 1 giga byte bô nhớ ảo
(1 giga byte = 1024MB = 27° byte)
B6 nhé do cho phép máy tính như có nhiều bộ nhớ
hơn thực tế (bộ nhớ vật lý tối đa là 16MB), Điều này thực hiện được là nhờ một sơ đổ địa chỉ hóa bộ nhớ nhằm giữ một phần chương trình trong bộ nhớ và phan còn lại ở trên dĩa Khi một lệnh hay đữ Hệu của chương trình được cần đến mà không nằm trong bộ nhớ thì chúng sẽ được lấy từ đĩa vào
Trang 8DAL ROC Part CONG TPRCW khoa Tin foe
Có khả năng đa chương túc là thực hiện đổng thời nhiều chương trình cùng một lúc
+ BỘ vi xử lý 32 bit (80386)
Đặc điểm chính:
Tốc độ 25-40 MH¿z
Có thể làm việc với các dữ liệu 8, 16, 32 bit
Có thể địa chỉ hóa 4 giga byte bộ nhớ vật lý và 64 tera byte bộ nhớ ảo
(1 tera byte = 1024 giga byte = 2*° byte)
Rất tối ưu đối với các hệ điểu hành đa nhiệm (multitasking system) nhu windows NT, 0S/2
Có khả năng làm việc cả 3 chế độ: chế độ thực, chế
độ bảo vệ và chế độ ảo
Ưu điểm lớn của 80386 là khả năng làm việc ở chế độ
ảo VM86 (virtual 8086 mode) chế độ VM86 tổ chức bộ nhớ theo trang, cơ chế này rất thuận lợi đối với
người lập trình hệ thống trong việc quản lý bộ nhớ
Cho phép cơ chế bô nhớ cache trong CPU,
Có bộ đồng vị xủ lý toán học bên trong CPU
Cho phép cơ chế đa vi xử lý (Multip Processor) Đây
là bộ vị xử lý tối ưu nhất hiện nay đối với các hệ điều hành đa nhiệm
Trong giáo trình này chúng ta chủ yếu nghiên cứu về các
bộ vi xử lý 8086, 8088, 80286
Trang 9Clwong [ : 10 chide PC Gido Trink Hợp Ngi
2 Giới thiêu về Bus:
Máy PC lên kết toàn bộ mạch điêu khiển bên trong thông qua các con đường chung nằm trên bản mạch hệ thống goi la bus Khi chuyển đữ liệu từ, phẩn này sang phần khác thì chúng truyền theo các đường chung này
máy XT có khả năng địa chỉ hóa 2?9z1MB õ nhớ Máy
AT 286 dùng 24 đường tín hiệu do đó nó cho phép đa chỉ hóa 2'=16MB 6 nhớ
* Bụs dữ liều: là tập hợp các đường dẫn thông tin về
đữ liệu
Bus di liệu làm việc trong mối lién kết với bus
địa chỉ để truyền đữ liệu đến 1 địa chỉ xác định trong bộ nhớ
* Bus điểu khiển: là tập hợp các đường dấn tín hiệu điều khiển để đối thoại giữa CPU với bên ngoài
Trong CPU 3086, 16 đường địa chỉ đầu được dùng để truyền di liệu vào/ra CPU, chúng tạo thành BUS dữ liệu
16 bit CPU 8088 chỉ đùng 8 đường địa chỉ để truyền đữ Hiệu CPU 80286 dùng 16 đường khác để để truyền đữ liệu
a CPU 8086, 8088 tổ chức thành 2 đơn vị làm việc song song
- Đơn vị ghép nối BUS BIU (Bus Interface Unit)
- Đơn vị thực hiện EU (Execution Unit)
sh
Trang 10OAL HOC WÈBÍN (ÔNG TPRN Khoa Tin ioe
* Dơn vị BIU: đây ià phẩn duy nhất của CPU được phép làm việc trục tiếp với bus; khi đó thẻng qua bus, CPU sẽ giao tiếp với bộ nhớ trong để đọc các
mã lệnh từ bộ nhớ vào CPU Khi được đọc vào, thì
các mã lệnh sẽ được lưu trũ trong hàng đợi lệnh
- 8086 dùng hàng đợi lệnh có chiều đài 6 byte
~- 8088 dùng hang đợi lệnh có chiều dài 4 byte
* Đơn vi EU: Có nhiệm vụ thục hiện các mã lệnh của CPU nhận được từ hàng đợi lệnh của BIU Trong quá trình xứ lý các lệnh, nếu cẩn đọc thêm các dữ liệu
từ bộ nhớ vào hay cẩn ghi dữ liệu ra ngoài bộ nhớ,
lúc đó EU sẽ thông qua trung gian là BI để giao tiếp với bộ nhớ trong
Cơ chế hàng đợi lệnh giúp cho bộ vi xử lý tiết kiệm thời gian, thực chất là quá trình lấy lệnh tiếp theo và quá trình thực hiện lệnh hiện tại được thực hiện
song song
Tóm lại CPU 8086, 8088 hoạt động nhu sau :
~- Thực hiện lệnh trong hàng đợi lệnh, đồng thời lấy lệnh tiếp theo vào hang doi
- Đọc hay ghi dữ liệu (nếu lệnh có yêu cẩu)
So sánh sự hoạt động của CPU 8 bit va 16 bit
Sơ đồ hoạt động của CPU_8 bịt (8080)
CPU |Thực hiện| đọc hay lấy |Thục hiện| đọc hay
lệnh ¡ |ghi dữ Hệu|lệnh 2| lệnh 2` |ghi dữ liệu
BUS bận bân ban
Trang 11
Chyong |: 78 chte PC ido Trink Hop Negi
Sơ đổ hoạt đông của CPU 16 bit (8086, 8088)
CPU Thuc hién doc hay thuc hién doc hay
lệnh ! ghi dữ iiệu lệnh 2 ghi dữ liệu
yêu cầu yêu cẩu
vào hàng đợi |ghi dữ liệu |vào hàng đợi | ghi dữ liệu
BUS ban ban ban ban
Nhìn vào 2 sơ đổ trên rõ ràng CPU 16 bit hoạt động nhanh
hơn CPU 8 bit do tính hoạt động song song
b CPU 80286 tổ chức thành 4 đơn vị làm việc song sơng:
- Đơn vi BUS BU (Bus Unit)
Don vi lénh IU (Interface Unit)
Don vi thuc hién EU (Execution Unit)
Don vi dia chi AU (Address Unit)
Don vi BU: BU làm việc trực tiếp với BUS, sinh ra các tín hiệu địa chỉ, tín hiệu đữ liệu và tín hiệu điều khiển để giao tiếp với bộ nhớ trong hay các cổng vào ra Đơn vị này cho phép quá trình nhận lệnh song song với các quá trình khác nhờ có vùng đệm 6 byte
Đơn vị IU: IU nhận lệnh tự vùng đệm, giải mã rồi
đưa vào hàng đợi lệnh Hàng đợi lệnh chứa được
3 lệnh
Đơn vị EU: EU thục hiện lệnh đã được giải mã
trong hàng đợi Trong quá trình xử lý lệnh, nó
Trang 12DAT HOC HO-BAN CONG TPRX
giải mã lệnh | giải mã lệnh giải mã lệnh |giải mã lệnh
2 trong 3 trong 4 trong 5 trong vùng đệm vùng đệm |vùng đệm và| vùng đệm
và đưa vào | và đưa vào đưa vào và đưa vào
đọc lệnh 3 đọc lệnh 4 đọc lệnh 5 đọc lệnh 6
đệm đệm đệm đệm
Cách làm việc song song trong CPU 286 giữa các đơn vị
BU, IU, EU
byte (1 byte = 8 bit) đây là vùng mà máy tính có thể truy xuất nhanh nhất
Bộ nhớ trong gổm 2 phần: ROM và RAM : -
- ROM là bộ nhớ chỉ có thể đọc mà không ghi được, nó chứa các chương trình hệ thống của các nhà sản
Trang 13(hương ! : Tổ chte PC Giáo Trình fúp age
xuất máy tính, chúng ta sẽ bàn kỹ về các chương trình trong ROM ở Giáo Trình Lập Trình Hệ Thống
- RAM là bộ nhớ dùng để lưu trữ thông tin một cách tạm thời, khi tắt máy tính thì mọi thông tin trong RAM sẽ bị xóa hết
Bộ nhớ trong của máy tính hình thành từ tập hợp các
ô nhớ (cell) liên tục, mỗi 6 nhớ chứa 1 byte thông tin, ta
có thể truy xuất đến mỗi ô nhớ bằng địa chỉ riêng của chúng Địa chỉ của ö nhớ được đánh thứ tự tăng dần bắt
đầu từ 0 cho ô nhớ đầu tiên
Kích thước bộ nhớ trong thường thay đổi theo từng loại
máy, người lập trình cẩn phải phân biệt khái niệm CPU có khả năng địa chỉ hóa tối đa đến đâu và bộ nhớ hiện thời của máy tính có bao nhiêu ô nhớ vật lý
Bộ nhớ trong của các máy thế hệ cũ như máy 8 bit chỉ
có tối đa 64KB
Máy XT dùng 20 đường địa chỉ, do đó có khả năng địa
chỉ hóa 1MB = 1024 KB ô nhớ đánh số từ 00000 đến FFFFF theo hệ 16, bộ nhớ 1024K được chia thành 16 khối 64K
SO _DO PHAN CHIA {6 KHOI 8O NHO TRONG
00000-0FFFF: RAM 64K thường dùng cho phần mềm hệ
Trang 14BAL BOC WOBAN CONG TPAC hos Tin dpe
B0000-BFFFF: Bộ nhớ màn hình
C0000-CFFFF: Vùng ROM mở rộng
Đ0000-DFFFF: Ving ROM cartridge
E0000-EFFFF: Ving ROM cartridge
FOOOO-FFFFF: Vùng ROM thường truc, ROM BIOS, ROM BASIC
- Mười khối đầu (0-9), tổng cộng 640K được danh cho RAM
- Khối B là vùng nhớ dành cho màn hình, nó được chia thành hai nửa 32KB, có địa chỉ bắt đẩu B0000 và B8000, khối B0000 dùng cho các màn hình đơn sắc và B8000 ding cho các màn hình mau
- Khối A là vùng bộ nhớ màn hình mở rộng, nó mở rộng vùng nhớ màn hình cho các màn hình độ phân giải cao
như EGA va VGA
~ Khối F là vùng ROM thường trực chứa các chương trình
và đữ liệu dùng để khởi động, điều khiển các hoạt động của hệ thống máy tính, giao tiếp với các thiết bị ngoại
vi nối với máy tính Lợi ích của các chương trình ROM
là chúng nằm trục tiếp trong bộ nhớ máy tính do đó không cẩn nạp chúng vào bộ nhớ từ dĩa như phải nạp
hệ điều hành Vì các chương trình ROM nằm thường trực trong máy nên chúng được dùng làm cơ sở để xây dựng các chương trình khác (kể cả hệ điều hành)
- Khối C là vùng ROM mở rộng gớm các chương trình thêm vào cho ROM khi một thiết bị mới lạ được cài thêm vào
máy tính
2 Bö nhớ ngoài:
Bộ nhớ trong có thể tray xuất trong thời gian rất
nhanh, nhưng giá thành đất Để lưu giữ thông tin lau dai,
ta dùng bộ nhớ ngoài ,
x Iĩa mềm mŒx mấy chỉ có tối đa 2 6 dia mém, ky hifu A, B
Trang 15(lương ¡ : Tổ chức PC Giáo Trink Hop kev
Dia mém (floppy disk) có dung lượng chứa nhở gồm nhiều loại 360KB, 720KB, 1.2MB, 1.4MB có thể vừa đọc và viết, giá thành rẻ nhưng tốc độ truy xuất chậm
* Dia cứng (Harddisk): mỗi máy chỉ có tối đa là 2 6 dia cứng Đặc điểm là dung lượng lưu trữ cao, mỗi đĩa cúng chứa khoảng 20-200MB Có thể vừa đọc, vừa ghi, tốc độ truy xuất mau hơn đĩa mềm rất nhiều
* Dịa quang (Laser disk): đây là loại dĩa có dung lượng chứa rất cao khoảng 500MB, có thể đọc nhưng chỉ có thể viết tối đa một lần
* Băng từ (Tape): ít người sử dụng, dùng để backup dữ
liệu và chương trình
III GÁC THIẾT BI VÀO RA
Các linh kiện hỗ trợ cho CPU:
Bộ vi xử lý không thể nào kiểm soát được toàn bộ máy tính do đó nó cẩn chuyển một số công việc cẩn thực hiện cho những linh kiện khác, lúc đó CPU có thể tập trung vào những công việc chính của mình Các linh kiện hỗ trợ được giao trách nhiệm điều khiển các thiết bị vào ra được ghép vào máy tính như màn hình và ổ đĩa, điều khiển các luổng thông tin ở mạch bên trong, diéu khiển ngắt và tạo nhịp Nhiều linh kiện hố trợ trong PC đều có thể lập trình được bởi người sử dụng, nghĩa là ta có thể thay đổi các tính chất của linh kiện này bằng chương trình Dưới đây là một số linh xiện hố trợ quan trọng có thể = lap trinh được
10
Trang 16BAI HOC HO“BAN CONG TPECW Shox Tin foc
* B6 di@u_khién DMA 8237A (Direct Memory Acess)
Bộ điều khiển DMA cho phép chuyển số liệu với tốc độ cao giữa các thiết bị vào ra và bộ nhớ mà không cần sự can thiệp của bộ vi xử lý
Mục đích chính của bộ điều khiển DMA là cho phép ghi
dữ liệu từ bộ nhớ lên đĩa hoặc đọc dữ liệu từ dĩa vào bộ
nhớ mà không cẩn thông qua bộ vi xủ lý Lúc đó CPU được giải phóng khi truy xuất dĩa Vì việc truy xuất đữ liệu trên dĩa là tương đối chậm, do đó DMA làm cho CPU hoạt động nhanh hơn
* Bộ ghép nối thiết bị ngoai vi PPI 8255: (Programmable Peripheral Interface)
8255 dùng để nối kết giữa CPU và một số thiết bị ngoại
vi của máy tính như bàn phím hoặc loa Thông tin gởi đến
hoặc đi từ các thiết bị như loa hoặc casette theo cổng vào
ra đều qua linh kiện này
* Bô điều khiển CRT 6845:
Là linh kiện chính trên một số bản mạch điểu khiển màn hình Nó có 19 thanh ghi nội dùng để xác định và điều khiển sự quét, chế độ và hoạt động của màn hình
* Bộ điều khiển đĩa uPD765:
MPD765 cũng được gắn trên bản mạch bổ sung, dùng để kiểm soát và điểu khiển hoạt động của ổ đĩa, di chuyển đầu đọc ổ dĩa, đọc đữ liệu từ dĩa và ghi dữ liệu lên đĩa
* Bô điểu khiển ngắt PIC 8259: (Programmable Interrupt Controller)
8259 quan lý hoạt động ngắt cứng (hardware interrupt)
Ngắt cứng là tín hiệu được gởi đến bộ vi xử lý từ một thiết
bị vào ra để yêu cầu thực hiện một công việc nào đó, (ví
dụ khi ấn phín thì bàn phím sẽ tạo ra một ngắt để CPU xử lý)
11
Trang 17Cheong I: 10 chde PC Gido Trinh Hop Nee
Nếu cùng một lúc có nhiều ngắt cứng được gởi đến, 8259
sẽ giữ và xem xét các tín hiệu đó, xác định tín hiệu nào có
độ ưu tiên cao nhất, từ đó nó phát lệnh ngắt ứng với tín hiệu đó đến CPU CPU sẽ thực hiện một đoạn chương trình tương ứng để đáp ứng yêu cầu của tín hiệu đó
8259 có khả năng xủ lý 8 yêu cầu ngắt đồng thời
Có thể lập trình trên 8259 để sắp xếp lại các mic uu tiên của tín hiệu ngắt ở thời điểm nào đó, nghĩa là có thể thay đổi trình tu xu lý ngất
* Bộ tạo nhịp 8284A:
Nếu CPU là bộ rão của máy tính thì bộ tạo nhịp được
xem như là trái tim của máy tính, nó cung cấp các tín hiệu
nhịp, tín hiệu đồng bộ cẩn cho việc điều khiển bộ vi xử lý
và các thiết bị ngoại vi Các tín hiệu này điểu khiển khoảng thời gian của các phép tính trong toàn bộ hệ thống
máy tinh Tan sé co sd cia n6 1a 14,8128 MHz
Tuy CPU có thể thực hiện các phép toán đối với số thực
một cách gián tiếp bằng các chương trình phần- mềm, nhưng
với bộ vị xử lí toán học, nó thực hiện nhanh hơn 100 lần
Bộ vi xủ lý toán học có thể thực hiện trực tiếp các phép
toán số thực cơ bản như phép cộng, trừ, nhân, chia, lấy căn số cũng như tính các hàm lugng gifc sin, cos
12
Trang 18BAL HOC WO-BAN CONG TPC Khoa Tin foe
2 Các thiết bị vào ra chuẩn:
Bộ phối ghép màn hình có các cổng vào ra có thể lập trình được bởi người sử dụng
Màn hình biểu thị được 2 chế độ: chế độ văn bản và
chế độ đồ thị
~ Chế độ văn bản chỉ hiển thị được tối đa 256 ký
tự khác nhau theo một kích thước cho trước (tối
đa 512 ký tự đối với card EGA hay VGA).-
- Chế độ đỏ thị có thể hiển thị các ký tự với các kích thước khác nhau và có thể vẽ được các hỉnh về
phúc tạp
Các loại Card màn hình thông dụng hiện nay:
- MDA (Monochrome Display Adapter): Bộ phối ghép màn hình đơn sắc Dược hãng IBM giới thiệu vào năm 1981 cho các loại máy IBM PC classic Nó chỉ có thể làm việc ở chế độ văn bản 25 dòng 80 cột, chỉ thể hiện được 1 màu, do đó đối với bộ phối ghép đơn sắc thì ta mất khả năng biểu điễn đổ thị và màu Bộ nhớ RAM màn hình chỉ
có 4KB
Để giải quyết vấn để đồ thị hãng fiercules đã đưa ra
Hercules graphics card
Trang 19(hương ¡ ; Tổ chúc PC Gido Trink Hop Net
- HGC (Hercules Graphics Card): bé ghép néi dé hoa đơn
sắc HGC đáp ứng khả năng đổ thị không màu và hiển
thị văn bản với độ nét cao, chất lượng đồ thị khá tốt
Độ phân giải 720x348 Bộ nhớ RAM màn hình 64KB Tuy
nhiên HGC chỉ tương thích với MDA ở chế độ văn bản
Về khả năng đổ thị, HGC không tương thích với tất cả
các card khác của IBM
- CGẠ (Color Graphics Adapter): bộ phối ghép màu đổ
thị Được hãng IBM giới thiệu cũng vào năm 1981 CGA
có thể làm việc ở chế độ văn bản 25 đồng 40 cột hoặc
80 cột gổm 16 màu và chế độ đổ thị với độ phân gidi
320x200 4 màu và 640x200 2 màu trên các màn hình
đigital RGBI Bộ nhớ RAM màn hình 16KB
~ EGA (Enhenced Graphics Adapter): Bộ phối ghép màu
đổ thị mở rộng Được IBM giới thiệu năm 1985 EGA
tương thích hoàn toàn với CGA và có thêm những khả
năng mới như cho phép làm việc ở chế độ đổ thị với độ
phân giải 640x350 16 màu trên các màn hình đigital
RrGgBb Dùng RAMFont thay cho ROMFont Bộ nhớ RAM
màn hình thay đổi từ 64KB đến 256KB
- MCGA (Multi Color Graphicss Array) Được IBM giới
thiệu vào năm 1987 với máy PS2 model 25 và 30 MCGA
tương thích hoàn toàn với CGA, EGA Cho phép làm việc
ở chế độ đở thị với độ phân giải 640x480 2 màu hoặc
320x200 256 màu trên các màn hình analog RGB Bộ nhớ
RAM màn hình 256KB
~ VGA (Video Graphics Array): Duge hãng IBM giới thiệu
vào năm 1987 với các máy PS2 model 50, 60, 80 VGA
tương thích với EGA và MCGA Cho phép làm việc ở chế
độ đồ thị với độ phân giải 640x480 16 màu trên các màn
hình analog RGB Bộ nhớ RAM màn hình 256KB
14
+6
Trang 20BAL AOC MO-BAN CONG TPHX fhos Tin foe
Ngày nay trên thị trường còn có các loại card VGA
mở rộng cho phép làm việc ở chế độ đổ thị với độ phân
giải cao hơn nhiều Ví dụ như card super VGA có độ phân giải 800x600 hay cao hơn là XGA với độ phân giải
Các tia điện tử được phát ra từ súng điện tử quét
màn hình theo từng dòng Bộ phối ghép màn hình có
chu kỳ làm tươi mới màn hình 50 đến 60 lần trong I1
giây để làm cho hình ảnh rõ và ổn định Khi kết thúc chu kỳ làm mới màn hình, tia điện tử đi chuyển từ góc
phải dưới của màn hình lên góc trái trên của màn hình
để bát đầu chu kỳ làm tươi mới Quá trình này gọi là
* Phân loai bàn phím: có loại 84 phím và loại 101 phím
* Chức năng cơ bản của ban phim:
Bàn phím PC thường sử dụng bộ điều khiển Intel
8042 có thể lập trình được Nhiệm vụ cơ bản của nó là
theo đối các phím và thông báo cho ROM BIOS khi có
phím được ấn hay nhả ra Nếu có phím nào được ấn lâu hơn nửa giây, bộ điều khiển sẽ lặp lại phím đó nhiều
Trang 21Cheong ï : 10 ciức PC Giéo Trinh Hợp Mgữ
lần theo những khoảng thời gian xác định Ngoài ra bộ điểu khiển còn thực hiện ¡ loạt nhiệm vụ khác như tự kiểm tra bàn phím (Khi bật máy)
Bộ điều khiển 8042 có 1 vùng đệm có khả năng lưu trữ 20 tác động của phím trong trường hợp mấy tinh bận, không có đủ thời gian tiếp nhận từ bàn phim (trường hợp này ít xảy ra) Khi gõ từ bàn phím ta thường gặp trường hợp máy BEEP vì đã ấn phím trong khi chương trình còn chưa có khả năng tiếp nhận, tín hiệu beep này không phải là do vùng đệm của bàn phím
bị tràn, mà chính là do vùng đệm riêng của các chương trình ROM BIOS phục vụ cho bàn phím trong RAM bị tràn Vùng đệm của ROM BIOS chỉ chứa được 15 phím, tuy nhiên ta có thể lập trình để mở rộng vùng đệm này đài hơn bằng hợp ngữ (Assembly language)
Mỗi khi ta ấn phím thì 1 tín hiệu xuất hiện, phím này
sẽ đi vào vùng đệm của bàn phím, sau đó vào vùng đệm
của ROM BIOS và cuối cùng được chương trình tiếp nhận
Tín hiệu ấn phím hay nhả phím trên bàn phím PC sẽ tạo ra l1 mã chiều đài 1 byte gọi là mã quét (scan code)
đặc trưng cho phím đó Khi ta ấn phím thì scan code sẽ
là một số từ 1 - 83, khi nhả phím thì scan code có giá trị là scan code của phím vừa ấn cộng với 128
Chú ý là bàn phím chỉ có nhiệm vụ thông báo chính
xác phím nào được ấn, nhả ra hay ấn liên tục Sau đó chương trình điểu khiểu bàn phím của ROM BIOS mới
định nghĩa lại các tín hiệu bàn phím, do đó người lập trình có thể sửa lại chương trình điều khiển bàn phím
của ROM BIOS để có thể thay đổi và mở rộng bàn phím
một cách mong muốn
16
Trang 22SAL AOC RO-BAN CONG TPREW Khoa Tin foe
CAU HOI ON TAP
1 Tại sao CPU 80286 được gọi là một bộ vi xử lý 16 bịt ?
2 CPU 80286 có thể địa chỉ hóa được bao nhiêu ô nhớ khi
hoạt động trong chế độ thực ?
3 Bộ nhớ ảo là gì ?
4, Nói rõ những điểm khác nhau giữa CPU 8086 và 8088 ?
5 Hệ điểu hành đa nhiệm là gì ? DOS có phải là một hệ
điều hành đa nhiệm không ? tại sao ? Cho một vài ví du
về các hệ điều hành đa nhiêm thông dụng hiện nay
6 Trình bày các khả năng của CPU 80286 ở chế độ bảo vệ
1 Bus là gì ? Œ6 bao nhiêu loại bus ? Giải thích từng bại bus
8 Trình bày tổ chức hoạt động của CPU 8088/8086
9 Trình bày tổ chức hoạt động của CPU 80286
10 Phần biệt giữa bộ nhớ ROM và RAM
1l Thường trên bản mạch hệ thống của PC có một chỗ
trống để gắn thêm bộ đồng xử lý toán học Vậy bộ đồng
xu lý toán học dùng để làm gì ?
12 Màn hình có thể làm việc ở 2 chế độ văn bản và đổ học
Hãy phân biệt rõ sự khác nhau giữa 2 chế độ này ?
13 Các card màn hình EGA, MCGA, VGA ding RAMfont thay
cho ROMfont trong chế độ văn bản Hãy giải thích rõ
RAMfont và ROMfont Pe py as
Trang 23Chuong I : Tổ chức PC Giáo Trink Hop Ket
14
15
Mã quét là gì ? Hãy trình bày vai trò của chương trình
xử lý bàn phím của ROM BIOS
Bàn phím PC thường sử dụng bộ điều khiển Intel 8042
có thể lập trình được Hãy giải thích rõ nghĩa các chữ
"có thể lập trình được” trong cầu trên và nêu lên một
ví dụ cụ thể
18
Trang 24OAT oC #Ở BÁI-(ÔN TP, WW hos Tin đục
TS cHUC HOAT DONG CUA
CPU 16 BIT 8086/8088/80236
Trong chương này, chúng ta sẽ khảo sát tổ chức hoạt động
và tập lệnh của CPU 8086/8088 và 80286 trong chế độ thực
I CÁC DẠNG DỮ LIỆU CỦA CPU
CPU chỉ có thể làm việc trực tiếp với dạng dữ liệu: byte và word
* Dang byte: có chiêu đài 3 bữ,: có thể dùng để biểu diễn:
- Một số nguyên không dấu: có giá trị từ 0 đến 255,
- Một số nguyên có dấu: có giá trị từ -128 đến 127
Số nguyên có dấu có thể là số dương hay sỐ âm, nó chỉ đùng 7 bit thấp cho giá trị, bit cao nhất dùng để biểu điễn dấu Nếu bit đấu (bit 7) có trị 1 thì số đó
là số dương, ngược lại số đó là số âm
Số âm được luu trữ dưới dạng bù 2
- Một ký tự đưới dạng ascii chuẩn
* Dang word: Có chiểu dài 16 bít, đây là dạng dữ liệu thông đụng nhất Có thể dùng để biểu diễn:
~- Một số nguyên không dấu: có giá trị từ 0 đến 65535
- Một số nguyên có dấu: có giá trị từ ~32768 đến
32767
Số nguyên có đấu có thể là số dương hay số âm, nó chỉ đùng 15 bit thấp cho giá trị bit cao nhất dùng
để biểu diễn dấu Nếu bit đấu (bit 15) có trị 1 thì số
đó là số dương, ngược lại số đó là số âm
Số âm được lưu trữ dưới dạng bù 2 ˆ
- Một địa chỉ 16 bit
Trang 25Chuang 11: 10 chde loạt động của CPU điáo Trinh Kop Agi
II GIAO TIẾP GIỮA CPU VÀ BỘ NHỚ
CPU 8088/8086/80286 là bộ vi xử lý 16 bịt, nên chỉ có thể
làm việc trực tiếp với các đữ liệu 16 bit (có giá trí lớn nhất
la 65535 hay 64K)
Muốn truy xuất một 6 nhớ trong bộ nhớ, CPU phái biết địa
chỉ của ö nhớ, nghĩa là CPU phải làm việc trực tiếp với dữ
Hiệu biểu điễn địa chỉ õ nhớ Do đó trên lý thuyết CPU chỉ có
thể truy xuất trực tiếp đến 64K ô nhớ Nhưng CPU 8086/8088 hay 80286 trong chế độ thực dùng 20 bit để xác định địa chỉ một ô nhớ nên có thể địa chỉ hóa 1MB (2?? bit) ô nhớ Vậy muốn CPU có thể truy xuất cả 1MB bộ nhớ, phải có 1 phương pháp địa chỉ hóa 1MB nhưng chỉ sử dụng dang dữ liệu 16 bit Day là phương pháp đánh địa chi thanh doan (segment addressing)
Bộ nhớ 1MB được chia thành nhiều đoạn Mỗi đoạn chứa tối
đa 64KB bất đầu ở một vị trí mà địa chỉ của nó chia hết cho
16, gợi là địa chỉ đoạn 4 bit thấp nhất của địa chỉ đoạn 20 bịt luôn bằng 0 nên ta có thể xem địa chỉ đoạn như là 1 dai
lượng 16 bít
Đối với những ö nhớ có địa chỉ mà 4 bit thấp nhất khác 0,
ta không thể đánh dấu bằng địa chỉ đoạn Muốn truy xuất đến
6 nhớ này trong đoạn 64K ta phải dùng thêm một địa chỉ gọi
là địa chỉ offset để chỉ vị trí của õ nhớ này trong đoạn 64K được xác định bởi địa chỉ đoạn Địa chỉ offset của ô nhớ được tính như là khoảng cách từ điểm bắt đầu của đoạn đến ê nhớ trong đoạn, đầy cũng là một đại lượng 16 bit
Vậy địa chỉ của một ö nhớ bất kỳ trong bộ nhớ IM được xác định bằng cách tổ hợp 16 bit địa chỉ đoạn và 16 bit địa chỉ offset
* Định nghĩa:
- Địa chỉ vật lý (physic address): là đại lượng chiếu dài
20 bit xác định vị trí của một ô nhớ trong 1MB bộ nhớ
trong
20
Trang 26DAT BOC wo BAN-CONG TP HC Khoa Tin foc
- Dia chi doan (segment address): !A dai lugng 16 bit ding
để xác định địa chỉ bất đẩu của một đoạn trong bộ nhớ IMB
- Địa chỉ offset: là đại lượng 16 bít dùng để xác định
khoảng cách từ 6 nhớ đang xét trong đoạn đến vị trí
bắt đầu của đoạn
- Địa chỉ logic: là đại lương gồm 2 thành phẩn chiều đài
16 bit, lần lược biểu điễn địa chỉ đoạn và địa chỉ offset
* Cách chuyển đổi từ địa chỉ lozic sang địa chỉ vật lý:
Khi BIU truy xuất bộ nhớ, nó nhận một địa chỉ logic gồm
địa chỉ đoạn và địa chi offset, nó được chuyển đổi sang địa
chỉ vật lý bằng cách dịch địa chỉ đoạn sang trái 4 bit rồi
cộng với địa chỉ offset
Ví du: Giả sử ta có ô nhớ có địa chỉ đoạn là 2323 (hệ
16) và địa chỉ offset 3434 (hệ 16) thì theo qui ước của
IBM địa chỉ logic được viết như sau: :
2323:3434
21
Trang 27Chuang If: TẾ chút loạt động của CPU Giáo Trink Hop Ned
và địa chỉ vật lý được tính bằng cách dịch địa chỉ đoạn
sang trái 4 bit ta được 23230 sau đó cộng với địa chỉ offset ta nhận được dia cri vật lý
23230 + 3434
Người lập trình chỉ có thể truy xuất các ô nhớ thông qua địa chỉ logic, còn địa chỉ vật lý chỉ dành riêng cho CPU dùng
* Su ân bố ment trong bô nhớ:
Bộ nhớ 1MB có thể chia thành nhiều đoạn, các đoạn này
có thể chổng lên nhau, có thể nối tiếp nhau và có thể tách
rời nhau
* chú ý:
Một 6 nhớ chỉ có duy nhất một địa chỉ vật lý, nhưng ta
có thể dùng nhiều địa chỉ logic khác nhau để định vị
Ví dụ: 2 địa chỉ logic
35b7:1000 36b7:0000 biểu thị cùng 1 địa chỉ vật lý 36b70
Trong cùng 1 thời điểm CPU chỉ có thể truy xuất tối
đa 4 đoạn khác nhau (256KB ô nhớ)
III CÁC THANH GHI CỦA CPU
Bên trong CPU có 14 thanh ghi, mỗi thanh ghi là một vùng nhớ chiểu đài 16 bit MỖi thanh ghi đều có công dụng riêng
Ta có thể chỉa các thanh ghi
thành 5 nhóm chính sau:
22
Trang 28BA HOC AT BAN-COMG TP ACH itoa Tin toe
1 Nhớn các thanh ghi da dung (general purpose register):
gém 4 thanh ghi có tên là AX ,BX ,CX, DX
Đặc điểm: có thể sử dụng như ! thanh ghi đữ liéu 16 bit
hay 2 thanh ghi dữ liệu, mỗi thanh ghí chiểu dài 8 bít
AX = AH + AL
BX = BH + BL
CX = CH + CL
DX = DH + DL
Các thanh ghi 8 bit AH, BH, CH, DH va AL, BL, CL, DL
tương ứng gọi là các phẩn cao 8 bit và phần thấp 8 bit của các thanh ghi AX, BX, CX, DX
Ví dụ: Nếu thanh ghỉ AX có nội dung 9FAB thì thanh
ghi AH có nội dung 9F và AL có nội dung AB
Các thanh ghi đa dụng được dùng để chứa các dữ liệu cẩn thiết khi thực hiện các phép toán hoặc các tác
vụ xuất nhập, ngoài ra mỗi thanh ghi còn có các công dụng riêng biệt sau đây:
- AX, thanh ghi tich liy (Accumulator register): day
là thanh ghi chính để thực hiện các phép toán SỐ học, các lệnh xuất nhập cổng Ngoài ra nó cũng được ding trong một vài lệnh xử lý chuỗi,
- BX, thanh ghi cơ sở (Base register): Dùng để chỉ đến vị trí của một ô nhớ trong một đoạn Thường thanh ghi BX được dùng trong phép định địa chỉ
cơ sở khi truy xuất các dữ liệu trong bộ nhớ
- CX, thanh ghị đếm (Count register): thường dùng
để định số lần lặp lại của một lệnh lặp
Trang 29
Chuong II: 16 ehte loạt động của CPU Gido Trink Hop thế
- DX, thạnh ghi dũ liêu (Data register): thudong dùng để lưu kết quả của các phép toán nhân và chủ, định địa chỉ cổng trong các lệnh xuất nhập cổng,
2 Nhóm các thanh ghi con tré va chi muc: (Pointer and Index register)
Gém 4 thanh ghi BP, SP, SI, DI Các thanh ghi nay là
các thanh ghi 16 bỉt, không thể chia thanh 2 thanh ghi 8 bit
- BP thanh ghi con tré6 co _sG (Base Pointer Register) dùng trong các phép định địa chỉ cơ sở khi truy xuất STACK
S§TACK (ngăn xếp) là một vùng trong bộ nhớ trong để
lưu trữ các dữ Hệu tạm thời
*+ Mục đích chính cha STACK:
Khi chương trình thực hiện một lệnh gọi
chương trình con hay một ngắt, CPU sẽ lưu địa chỉ của lệnh kế tiếp sau lệnh gọi vào STACK và
thực hiện các lệnh trong chương trình con hay
ngắt đó Khi thực hiện xong chương trình con hay ngắt, CPU sẽ lấy địa chỉ này ra khỏi STACK để có thể thực hiện lệnh kế tiếp sau lệnh gọi chương trình con hay ngất đó
STACK làm việc theo nguyên tắc vào cuối ra đâu (LIFO) túc là dữ Hệu được cất vào trong STACK sau cùng được lấy ra trước
Để quản lý một STACK ta cẩn một con trỏ để
chỉ đến đỉnh của STACK (lưu phần tử được cất vào STACK sau cùng)
9 Thanh ghi con tra STACK SP (stack pointer register) dugc ding làm con trỏ để chỉ đến phần
Trang 30+
BAT ape NỸ RẤ-ÔNG TP.ROY \ Mos Tit floc
SI, thanh ghi chi sé nguén (Source Index Register):
| dùng để xác định địa chỉ bắt đầu của chuỗi nguổn
ĐI, thạnh ghị chỉ số đích (Destination Index Register): ding dé xác định địa chỉ bắt đầu của chuối đích
3 Nhớm các thanh ghi sesment:
Gồm 4 thanh ghi CS, DS, ES, SS, ding để chứa địa chi đoạn Bộ nhớ trong !MB của CPU 80286 được chia thành các
đoạn, mỗi đoạn chứa tối đa 64KB, ở mỗi thời điểm CPU chỉ
có thể truy xuất tối đa 4 đoạn được xác định bởi 4 thanh ghi CS, DS, ES, SS
- Thanh zhi cS (Code Segment) dùng để chứa địa chỉ đoạn của đoạn chứa mã lệnh
- Thanh ghi DS (Data Segment) ding dé chia dia chi đoạn của đoạn chứa di liệu
- Thanh ghi E§ (Extra Segment) dùng để chứa địa chỉ
Vậy cùng một lúc ta có 2 đoạn chứa đữ liệu, một
đoạn có địa chỉ đoạn do D$S chỉ, đoạn kia do ES chỉ
Ta thường dùng ES để chỉ đoạn dữ liệu không nằm trong đoạn dữ liệu do D§ chỉ
- Thanh ghỉ 5S (Stack Segment) dùng để chứa địa chỉ
đoạn của đoạn chứa stack
4 Thanh ghỉ con trõ lệnh chương trình IP (nstruction Pointer}
Dùng để xác định địa chỉ offset của ô nhớ chứa mã lệnh của lệnh kế tiếp sẽ được CPU thi hành (õ nhớ này nằm trong đoạn được định bởi CS)
Khi CPU thực hiện một lệnh, thanh ghi IP sẽ tự động
thay đổi để chỉ đến địa chỉ offset của ô nhớ chứa lệnh sẽ được CPU thi hành kế tiếp
25
Trang 31(hương II: Tổ chúc loạt động cÍa (PU Gide Frink Hop Nei
5 Thanh ghỉ co hiéu (Flag):
Thanh ghỉ cờ hiệu là một thanh ghi 16 bít Dùng để lưu
các thông tin đặc biệt về trạng thái hiện thời của CPU và
về kết quả của lệnh vừa được CPU thực hiện CPU chỉ
dùng 11 bit làm cờ, mỗi cờ gổm 2 trạng thái: 1 (set) va 0
(clear), 7 bit còn lại không sử dùng Ta có thể chia các cờ
Gém 6 cO hiéu: CF, AF, PF, ZF, SF, OF Cac cờ này
có thể bị ảnh hưởng mỗi khi CPU thực hiện xong một
* CoO nhd CF (Carry Flag): được bật 1 nếu kết quả của phép toán vừa thực hiện có nhớ hay có mượn ‘ |
Thường cờ CF được dùng trong phép tính các dữ liệu dài hơn 2 byte
quả trong thanh ghi AL sẽ được kết quả AL = AAH không có nhớ, cờ CF tắt
26
Trang 322
DAL HOC MO’ BAN-CONG TP, SOW Shos Tin Hoc
CỜ phu AF (Auxiliary Carry Flag): duge bật 1 nếu kết quả phép toán vừa thực hiện có nhớ hay có mượn đối với 4 bit thấp
Thường cờ AF được dùng trong phép tính các số
BCD (Binary Coded Decimal Number)
Ví dụ: Giả sử
AL = 10100101
BL = 00111110 thì phép cộng 2 thanh ghi AL và BL cho kết quả trong thanh ghi AL sẽ được kết quả AL = 1110
0011 có nhớ ở bịt 3 và cờ AF =z I
Co_zero ZF (zero flag): Duge bat 1 néu két qua
của một phép toán vừa thực hiện bằng 0
Thường cờ ZF dùng trong các phép so sánh
Ví dụ: nếu nội dung của thanh ghi AL và DL là bằng nhau thì lệnh trừ 2 thanh ghi AL và DL sẽ cho kết quả O và cờ ZF = I1
Cờ dấu $SF (Sign Flag): Có giá trị tương ứng với bit cao nhất của kết quả phép toán vừa thực
hiện
Thường dùng để xác định kết quả của một phép toán là số âm hay dương Nếu cờ $F=l thì kết quả của phép toán là số âm, ngược lại kết quá cho số dương
CO _kiém tra chdn Jé PF (Parity Flag): Được bật 1 nếu kết quả của phép toán có tổng 8 bit thấp là một số chẩn
Thường cờ PF dùng để kiểm tra việc chuyển dữ
Hiệu từng byte một từ vùng này sang vùng khác
có chính xác không (băng cách kiểm tra tính chẵn
lẻ của tổng từng § bịt của 1 byte) -
Gờ tràn OF (Overfiow Flag): duge bat 1 nếu Kết quả của một phép toán các số có dấu bị sai
Ví du: giả sử
AL = 60H (96)
Trang 33Chương !I: Tổ chúc loạt động của CPO điáo Trink Hop Ned
BL = 70H (112)
Ta có AL, BL là 2 số dương vi có bít cao nhất = 0
Lệnh cộng 2 thanh ghỉ AL và BL cho kết quả trong thanh ghi AL sẽ được kết quả là D0H hay -48
là sế âm, nghĩa là kết quả số có dấu bị sai va.cd
là xử lý byte hoặc gidm 2 nếu !à xử lý word
- DF = 0: Chiều chuyển di liệu từ địa chỉ thấp xuống địa chỉ cao Sau 1 lệnh xử lý chuối, nội dung của các thanh ghi SI, DI sẽ tự động tăng 1 nếu là xử lý byte hoặc tăng 2 nếu là xử lý word
* TF (Trap Flag): Cho phép CPU chuyén sang ché
độ thực hiện tuẩn tự từng lệnh của chương trình (single step mode), nó được dùng trong việc hiệu chỉnh và gỡ rối chương trình
Nếu TF = 1 thì CPU sẽ phát sinh một ngắt (single
step interrupt) sau mỗi lần một lệnh của chương trình được thực hiện xong
Chương trình gõ rối DEBUG (sẽ học ở chương 3)
dùng chế độ TF=1 để có thể thực hiện chương trình tuẩn tự từng lệnh một
* IF (Interrupt Flag): cho phép một ngắt phần cứng phát sinh sẽ được tiếp nhận (enable) hay không được tiếp nhận (đisable)
28
Trang 34BỊI Hoc ao Bae-COME TP 50 Shoe Tin doe
IF = l: các ngắt phần cứng phát sinh sẽ được tiếp nhận
IF = 0: các ngắt phần cúng phát sinh sẽ không
được tiếp nhận
c Nhóm các cờ đặc biệt: (chỉ dùng đối với CPU 286)
Gồm 2 cờ NT và IOPL
~ NT (Nest task), nhiệm vụ lồng nhau
- IOPL (I/O Privilege Level), mitc đặc quyển vào ra
2 cờ NT và IOPL chỉ dùng trong chế độ bảo vệ
6 Thanh ghi trang thái máy MSW:
(chỉ dùng đối với CPU 286)`
Thanh ghỉ MSW có 16 bit, nhưng chỉ có 4 bit thấp được dùng, các bit còn lại dự trủ cho CPU 80386
TS EM MP PE
- Bit PE (Protected mode Enable), cho phép ché
độ bảo vệ Bit PE bật | néu CPU dang lam việc
- TS (Tast test) : Bit TS bật 1 mỗi khi chuyển
nhiệm vụ và thường được dùng trong trường
hợp có bộ đồng vi xú lý
Trang 35Chuong II: 16 chite boat déng cla cpg Sido Trish Hop Ned
Iv Cd CẤU TO CHUC VA HOAT £ONG CUA INTERRO?T
* Ngất (Interrup£): là tín :iệu được gởi đến bộ vi xu ly để tạm ngưng chương trình đang thực hiện và xử lý một nhiệm
vụ khác, sau khi xủ ¿7 xvo¡š niệm vụ, thì chương trình bị
ngắt sẽ được tiếp tục :hự¿ ¡ýa sau vị trí bị ngắt
trọng trước khi gởi đến _PU để thực tiên
CPU gém 8 ngắt phần củng (TRQ)
IRQO timer
IRQL keyboard
IRQ2 chi ding trong may AT
IRQ3 serial port 2
IRQ4 serial port i
iF sé bat 1 va c&éc ng&t way khi phát sink sé không được tiếp nhận, Ví dụ sếu ta chắn INT 9 (ngất ban enim) thi ban phim sé v6 t4c dung khi ta go ohim, be các ngất này hoạt động -:ré lai binh thường :z iung lệnh STI (set interrupt 4z) CỜ hiệu IF shỉ có inh hưởng đối với interrupt phần cứng
Trang 36ĐẠI HỌC Ở BÁN-(ÔNG TP.#ŒX Stos Tin Học
2 Interrupt NMI (Non maskable interrrupt): Ngdt khéng
chắn được, Day là tín hiệu ngất không che được bằng phần mềm, nó có độ ưu tiền cao nhất, NMI được phát sinh để báo một sự nguy hiểm như sự sụt thế hay sự
pu héng bộ nhớ
Zaterrupt internal: Được phát sinh bởi CPU khi thực tiện chương trình Gđm 3 ngắt:
~ Divide by zero interrupt: Duge tu déng phất sinh bởi
CPU mỗi khi phép chia có sai như khi chia cho Ù -_ Into (overflow interrupt): Được tự dọng phát sinn bởi 1PU khi một sự tràn dữ liệu xảy ra trong các 2hép toán
Trap interrupt: Được tự động phát sinh bởi C?U sáu khi thực hiện xong một lệnh trong trường nợp cỡ
hiệu TF bật 1
4, Ngất mềm (Softv e mterrupt):
¡o chương trình yêu cđu để thực hiện một chương
¿nh con nào đó có sẵn trong ROM hay RAM Mễ: - sắt shan mém là một ngắt được gọi bởi lệnh INT Ví du l¿nh {NT 5 sẽ thực hiện chương trình in toàn bộ nủc: jung cua mày hình ra máy in
* Bảng vector ¡interrupt: là một bảng có chiều đài 'KR
ôn trong bộ nhớ trong bắt đẩu ở địa chỉ 0000:0000 đến
in cohÏ 0000:3FE, Bảng này gồm 256 phần tu, mor onan
Sa 4 byte, phan tu thi i duoe ving dé cnita aia chỉ logic của chương trình xử lý ngắt thú ¡ Khi một ngắt được tiếp nhận, CPU không cẩn biết địa Cùí của CnƯƠn z
Trang 37(hương II; TẾ chút loạt động cds CAN Giáo Trình Hop tứ
Các ngắt từ 00 đến 1F: cdc ng&t ding trong ROM
BIOS (trong đó ngắt 2 là ngắt NMI và các ngắt từ 08-0F
là các ngắt phần cứng)
Các ngắt từ 20 đến 2F: các ngắt mềm dùng trong DOS
Các ngắt từ 30 đến FF: các ngắt mềm do người sử dụng
định nghĩa (user interrupt)
V CƠ CẤU ĐINH ĐỊA CHỈ CUA CPU 30286
Ngôn ngữ máy là ngôn ngữ duy nhất mà CPU hiểu và thực
hiện được, thường mỗi CPU có một ngôn ngữ máy riêng Dé
máy tính có thể thực hiện một chương trình, thì chương trình
phải được viết bằng chính ngôn ngữ máy của CPU trong máy tính
đó
Tất cả những lệnh mà CPU có thể nhận biết để thực hiện
gọi là tập lệnh mã máy của CPU (CPU Instruction Set) Các
lệnh mã máy là một dấy các số nhị phân 0 và 1
MỖi lệnh mã máy của CPU nói chung gổm 3 phần
- ma lénh (Opcode): tt 1 - 3 byte
- độ ddi (Displacement): ti 0 - 4 byte
- dit liéu (Data): tu 0 - 2 byte
Giải thích:
¬ Mã lênh: dùng để xác định tác vụ cẩn thực hiện
- Độ đời: dùng để xác định vị trí vùng nhớ Vùng nhớ
này là tác tố cho tác vụ do mã lệnh qui định
Đối với một số lệnh vùng nhớ này là nơi chứa 'dữ liệu
cần đọc hay nơi ghi kết quả Đặc biệt đối với các
lệnh chuyển điểu khiển, vùng nhớ này xác định mã
lệnh kế tiếp mã CPU sẽ thực hiện
- Dử liệu: là một giá trị hằng 8 bit hay 16 bit làm tác
Trang 38OAL HOC AO BAN-CONG TPH Khoa Tia Hoc
A Các lênh không có độ đời và dữ liêu:
* Lệnh có mã 1 byte:
1, Lệnh xóa cð nhớ CF có mã máy là 11111000 hay F8
2 Lệnh bật cờ nhớ CF có mã máy là 11111001 hay F9 '3 Lệnh xóa cờ interrupt IF œ mã máy là 11111010 hay FA
4 Lệnh xóa cờ mterrupt IF có mã máy là 11111011 hay FB
5 Lệnh push thanh ghi AX vào STACK có mã máy
2 Lệnh cộng nội dung thanh ghi AX với thanh
ghi BX kết quả lưu vào thanh ghi AX có mã
máy là 13 C23 hay 01 D8
3 Lệnh tăng nội dung thanh ghi CL thêm 1 có
mã máy là là FE C1
* Lệnh có mã 3 byte: chỉ dùng trong chế độ bảo vệ
B Các lênh không có đõ dời nhưng có dữ liêu:
1 Lệnh chuyển số 20 vào thanh ghỉ AH có mã
Trang 39Chuong II: Tế chức host ding cls CR Gide Tring Hoe Ket
4 Lệnh cộng nội dung thanh ghi BX và số 0¡ kết quả cất vào thanh ghi BX có mã máy là 3 byte 8i C3 01
Š Lệnh chuyển trị một byte 34 vào ô nhớ có địa chỉ chứa trong thanh ghi BX trong đoạn được chỉ bởi D§ có mã máy là 3 byte C6 07 34 2rong céc vi du nay, cdéc hing s6 20, 123, 34 đóng
ai trdé di liệu trong một lệnh mã máy
» Các lãnh có độ dời nhưng không có đữ liệu:
1, Lệnh chuyển nội dung thanh ghi AL vào ô nhớ
có địa chỉ 200 trong đoạn được chỉ bởi DS có
mã máy 3 byte A2 00 02 hay mã máy là 4 byte
88 06 00 02
2 Lệnh chuyển nội dung thanh ghi AL vào ô nhớ
có địa chỉ là tổng nội dung thanh ghỉ BX với
100 trong đoạn được chỉ bởi D$S có mã máy là
4 byte 88 87 00 01
3 Lệnh chuyển nội dung thanh ghi AL vàc ô nhớ
có địa chỉ là tổng nội dung thanh ghi BX va nội dung thanh ghi SI véi 100 trong đoạn được chỉ bởi DS có mã máy là 4 byte 88 80 00 01 Trong các ví dụ này, các hằng số 200, 100 đóng vai zzò độ dời trong một lệnh mã máy
Ð Các lênh có độ dời và đữ liêu:
1 Lệnh chuyển trị một byte 35 vào 6 nhớ có địa
chỉ 200 trong đoạn được chỉ bởi DS có mã máy
3 byte C6 06 00 02 35
2 Lệnh chuyển trị 2 byte 1234 vao 6 nhé cd địa
chỉ 200 trong đoạn được chỉ bởi D8 có mã máy
là 6 byte C7 06 00 02 34 12
3 Lệnh cộng trị 2 byte 0035 với nội dung ö nhớ
có địa chỉ 200 trong đoạn được chỉ bởi D$S kết
34
Trang 40BẠI ioc Ao’ BAN-CONG TP ACK thos Tin Hoc
quả cất vào ö nhớ đó, có mã máy là 5 byte 83
06 00 02 01
4 Lệnh cộng trị 2 byte 1234 với nội dung ö nhớ
có địa chỉ 200 trong đoạn được chỉ bởi DS kết
quả cất vào ô nhớ đó có mã máy là 6 byte 31
Dạng gọi nhớ (mnenonic) của một lệnh CPU được mô
tả bởi 2 thành phần: Tên gợi nhớ (mnenonic) và toán
~- toán hạng bộ nhớ: đữ liệu là nội dung ô nhớ
* Dang lệnh mã máy dưới dang gợi nhớ:
Mnemonic [ operand 1 [ ; operand 2 ] ]
Các lệnh của CPU có thể chia làm 3 nhóm:
- Nhóm không có toán hạng
- Nhóm có một toán hạng
- Nhóm có 2 toán hạng Trong trường hp này toán
hạng thứ nhất gọi là toán hang nguổn, toán hạng thứ hai gọi là toán han ch hay toán hang đết