1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình Hợp ngữ - Đại học mở TPHCM

270 810 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 270
Dung lượng 5,02 MB

Nội dung

Trang 2

_ữ east /

cee SRO

_ ĐẠI HỌC] MỞ: BÁN CƠNG TP HỒ CHÍ MINH

Trang 3

MUC LUC Chuong 1 TỔ CHỨC CỦA IBM PC 1 BỘ VI XỦ LŸ ¬ Il BONHG Q S S Q HQ SE es

IH CÁC THIẾT BỊ VÀO RA ee ee

CẦU HỒI ÔN TẬP co Q ee es

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

4 ^ ^ +

1 GIGI THIRU PHAN MEM DEBUG

Trang 4

Chuong 4 4 a 2 = GIOI THIEU TONG QUAN VE HOP NGU I GIỚI THIỆU HỢP NGỮ 75

II 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 , A 2 II NHOM LENH CHUYEN DIA CHE 137 + # a a ` a III NHOM CAC LENH CHUYEN CO HIfU 138 a 2 ~ A 2

1V NHOM LỆNH CHUYỂN DŨ LIỆU QUA CỔNG 138 BÀI TẬP THỰC TẬP Lee eae 141 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

Trang 5

a 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

Trang 6

BAI QC KOLA CONG TREC Khoa Tia Hoe

CHUONG 1

4 “,

TỔ CHỨC CA IBM PC

Tất cả các máy vi tính họ IBM déu gém bộ vi xủ lý (microprocessor), bộ nhớ (memory) và các thiết bị vào ra (Input/Output device) Chương ¡ sẽ gii thiệu 3 thành phần này 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

Trang 7

chvong 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ữ liệu 16 bit CPU 80286 (16 bit cải tiến dùng trong máy AT) Đặc điểm chính: ` Tốc độ 8-20 MH¿z Khả năng xử lý đũ liệu 8 bit hay !6 bit cùng một lúc ,

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ớ

Trang 8

DAL 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ớ vật lý và sử dụng bộ nhớ ảo CPU 80486 (386 cải tiến) Đặc điểm chính: Cơ chế hoạt động giống như 80386 nhưng tốc độ xủ lý nhanh hơn: 25-66MHz

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

Trang 9

Clwong [ : 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

Có 3 loại bus:

* Bus dia chị là tập hợp các đường dẫn thông tin về

dja chi

Máy XT dùng 20 đường tín hiệu để truyền địa chỉ của các 6 nhớ hay các cổng vào ra (I/O port), do đó

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)

Trang 10

OAL 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

nếu lệnh 1 nếu lệnh 2

, yêu cầu yêu cẩ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

l nếu lệnh 1 nếu lệnh 2

yêu cầu yêu cẩu

BIU lấy lệnh 2 đọc hay lấy lệnh 3 đọc hay

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ã

Trang 12

DAT HOC HO-BAN CONG TPRX EU IU BU II loa Tin lọc liên hệ với bộ nhớ trong và các cổng vào ra thông qua BDŨ

* Pon vi AU: AU điểu khiển công việc quản lý bộ nhớ, bảo vệ bộ nhớ và chuyển địa chỉ logic thành

địa chỉ vật lý cho đơn vị BU Thực hiện Thực hiện Thực hiện Thực hiện lệnh 1 lệnh 2 lệnh 3 lệnh 4

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

hàng đợi hàng đợi hàng đợi hàng đợi

đọc lệnh 3 đọc lệnh 4 đọc lệnh 5 đọc lệnh 6

vào vùng vào vùng vào vùng vào vùng

đệm đệm đệm đệm

Cách làm việc song song trong CPU 286 giữa các đơn vị BU, IU, EU BỘ NHỚ 1 BB nhớ trong: Bộ nhớ trong nằm trên bản mạch hệ thống, nó dùng để chứa chương trình và đữ liệu, đơn vi chuẩn của bộ nhớ là

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 : -

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 + ˆ af a 4

SO _DO PHAN CHIA {6 KHOI 8O NHO TRONG

Trang 14

BAL 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ớ ngồ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 ,

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 số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

bởi người sử dung: `

Trang 16

BAI 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ý)

Trang 17

Cheong 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

* Bộ thời gian 8253:

Bộ thờ gian 8253 là bộ đếm nhiều công dụng, 8253 thường dùng để tạo âm thanh ra ba hoặc điều khiển giờ hệ thống

* Bô đổng xủ lí to: :

(Math coprocessors 8087/80287/80387)

Các CPU 8088, 80286, 80386 không có khả năng thực hiện trực tiếp các phép toán đối với số thực Có 1 chỗ trống trên bản mạch hệ thống của PC để gắn thêm bộ vi xử lí toán học PC/XT dùng 8087, AT 80286 dùng 80287, AT 80386 dùng 80387

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

Trang 18

BAL HOC WO-BAN CONG TPC Khoa Tin foe 2 Các thiết bị vào ra chuẩn:

a Màn hình:

IBM-PC có rất nhiều loại màn hình khác nhau Ta có thể chia thành 2 loại chính: màn hình đơn sắc - (Monochrome) và màn hình màu (color)

Để hiển thị kết quả ra màn hình ta cần gắn một bệ phối ghép hiển thị (Card màn hình) cắm vào 1 trong các siot của máy tính trên bản mạch cơ sở Bộ phối ghép nối máy tính với màn hình qua bộ điểu khiển CRT Bộ phối ghép còn có bộ tạo ký tự ROM và bộ nhớ RAM để lưu giữ các thông tin hiển thị

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

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

Trang 20

BAL 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

1024x800 Bộ nhớ RAM màn hình 512KB, 1MB

Để tạo hình ảnh trên màn hình, bộ điều khiển CRT là cầu nối giữa bộ nhớ màn hình và màn hình Nó chuyển

đổi các bit từ bộ nhớ màn hình thành các điểm tương ứng trên màn hình Các điểm sáng này gọi là pixel, chúng được tạo ra từ các tia điện tử đập vào màn hỉnh huỳnh quang

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à

hổi dọc

Bộ điều khiển CRT là thành phẩn quan trọng nhất của carđ màn hình Nó điều khiển các hoạt động của

card man hình và các tín hiệu mà màn hình cẩn để tạo

hình ảnh trên màn hình

b Bàn phím:

* 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ó

Trang 21

Cheong ï : 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

Trang 22

SAL 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 23

Chuong 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ể

Trang 24

OAT oC #Ở BÁI-(ÔN TP, WW hos Tin đục

Chuone 2

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 ˆ

Trang 25

Chuang 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

Trang 26

DAT 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ủa một ô nhớ Bộ nhớ trong 00000 địa chỉ đoạn 16 bit xxxx 1 doan = 64KB địa chỉ vật lý 20 bit zzzzz dia chi offset 16 bit yyyy PEFPPP

* 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

Trang 27

Chuang 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ị cùng một 6 nhớ : 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:

Trang 28

BA 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

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 tử ở đỉnh của stack

- SI và DI được dùng trong các lệnh xử lý chuỗi và trong các phép định địa chỉ chỉ mục khi truy xuất bộ nhớ

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ỉ

| đoạn của đoạn chứa các dữ liệu bổ sung :

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 ARES Fr 18, ưœ@MA<

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

lai

ete

tie

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ờ làm 2 nhóm: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 NT 10PL oF DF | IF | TF SF ZF AF PF cr Sơ đổ các cờ của thanh ghi cò hiệu a Nhóm các cờ trạng thát

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

lệnh :

* 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

Ví dụ: giả sử by

1/ AL = 10100111 = A7H

BL = 10010101 = 95H d t

Thì lệnh cộng 2 thanh ghi AL và BL cho kết | ị quả trong thanh ghi AL sẽ được kết quả

AL = 00111100 = 3CH có nhớ 1, cồ CF bật một pery |

2/ AL = 10100111 = A7H G

BL = 00000011 = 03H

Thi lénh céng 2 thanh ghi AL và BL cho kết

quả trong thanh ghi AL sẽ được kết quả AL = AAH không có nhớ, cờ CF tắt

Trang 32

2

is

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ử

Trang 33

Chươ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 OF bat 1 b Nhóm các cờ hiệu điều khiển: Gém 3 cd DF, TF, IF CO DF ảnh hưởng đến các lệnh xử lý chuỗi, còn cờ TF va IF anh hướng đến cách hoạt động của CPU

* DF (Direction Flag): dang để qui định chiều chuyển đữ liệu trong các lệnh xử lý chuổi -~ DF = 1: Chiểu chuyển đữ liệu tù địa chỉ cao lên địa chỉ thấp Sau 1 lệnh xử lý chuỗi, nội dung của các thanh ghi SI, DI sẽ tụ động giảm 1 nếu 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)

Trang 34

BỊ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

15 4 3 2 1 0 ‹

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 ở chế độ bảo vệ

- Bit MP (Monitor Processor Extension) : bit MP cho biết đang có một bộ đổng vi xử lý cùng

làm việc

- EM (Emulate Processor Extension) : bit EM cho

phép mô phỏng một bộ đồng vỉ xủ lý

- 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

Trang 35

Chuong II: 16 chite boat déng cla cpg Sido Trish Hop Ned

a Z % os

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

* Phân loại ngắt:

1 Ngắt phần cing (Hardware interrupt): ducc phat sinh bởi các mạch của máy tính xhi đấp lại 1 sự ciên nào đó, Nó được dùng dể diểu kiuẩn các thiết : „lan trọng trên hệ máy nhu ban phim, 6 dia, máy in Các ngắt này được linh kiện 8259A quản ¡iý, tùy theo từng loại thiết bị nó sẽ sắp xếp độ ưu tiên theo mức độ quan

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 IRQS harddisk

IRQ6 floppy disk

IRQ?7 parallel £c:z

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

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

Trang 38

OAL 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 là 01010000 hay 50 6 Lệnh pop một từ ở đỉnh STACK vào thanh ghi AX có mã máy là 01011000 hay 58 7 Lệnh tăng nội dung thanh ghi CX thêm I có mã máy là 01000001 hay 41 * Lệnh có mã 2 byte:

1 Lệnh chuyển nội dung của thanh ghi AH vào thanh ghi AL có mã máy là 8A C4 hay 88 E0

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ã

máy là 2 byte B4 20

2 Lệnh cộng nội dung thanh ghi AX và số 123 kết quả cất vào thanh ghi AX có mã máy là 3

byte 05 23 01

Trang 39

Chuong 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

Trang 40

BẠ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

06 00 02 34 12

Các lệnh của CPU là một dãy các số nhị phần O và 1 nên rất khó đọc hiểu Vì vậy thay vì dùng các số nhị

phần để biểu thị lệnh, người lập trình có thể đùng các

từ gợi nhớ dễ đọc và dễ hiểu hơn Các từ gợi nhớ này gọi là dạng gợi nhớ của tập lệnh CPU

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

hạng (operand)

- Tên gời nhớ: là dạng gợi nhớ của lệnh, xác định một

hành động cẩn thực hiện :

- Todn hang: dùng để qui định các dữ liệu (trực hằng, thanh ghi, bộ nhớ) cẩn thiết để thực hiện hành động

Có 3 loại toán hạng :

- toán hạng trực hằng: đữ liệu là trực hằng

- toán hạng thanh gh: dữ Hệu là nội dung của

thanh ghi -

~- 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

Ngày đăng: 11/04/2015, 10:33

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w