Tải bản đầy đủ (.doc) (13 trang)

Câu hỏi thi cấu trúc máy tính phần 1 Học viện KTQS MTA

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 (153.99 KB, 13 trang )

Đề thi và đáp án phần 1 môn học cấu trúc máy tính:
Cấu trúc bộ VXL và các hệ thống hỗ trợ
Số lượng câu hỏi: 12
Số điểm cho mỗi câu: 2điểm
A. Câu hỏi.
Câu hỏi 1: Vẽ sơ đồ cấu trúc của hệ thống máy tính? Nêu chức năng của từng bộ
phận? Mã chương trình và dữ liệu trong máy tính được biểu diễn dưới dạng gì,
nằm trong bộ phận nào? Mô tả quá trình máy tính thực hiện một lệnh?
Câu hỏi 2: Giả sử máy tính thực hiện đoạn chương trình bắt đầu tại địa chỉ
136Fh:0100h như sau:
MOV AH, 2
MOV
INT

DL, 'a'
21h

Hãy cho biết:
a) Mã chương trình trên nằm trong bộ phận nào của máy tính? Tại vị trí có địa
chỉ vật lý nào?
b) Bộ phận nào thực hiện các lệnh? Thực hiện lần lượt hay đồng thời?
c) Nội dung của các thanh ghi CS và IP khi lệnh thứ 2 được thực hiện?
Câu hỏi 3: Kiến trúc của máy tính PC là kiến trúc gì? Theo kiến trúc này, máy tính
gồm những bộ phận gì? Vẽ sơ đồ khối của máy tính và nêu chức năng của từng bộ
phận? Nhược điểm chính của kiến trúc này là gì?
Câu hỏi 4: Bộ xử lý trung tâm (CPU) của máy tính liên kết với các bộ phận khác
của hệ thống máy tính (ngoại vi, bộ nhớ) bằng các nhóm tín hiệu nào? Nêu chức
năng, hướng truyền của các nhóm tín hiệu đó? Khi CPU đọc lệnh để thực hiện, thì
mã lệnh chuyển từ đâu tới đâu, theo đường nào?
Câu hỏi 5: Phân biệt địa chỉ logic và địa chỉ vật lý của một ngăn nhớ? Nêu
phương pháp CPU xác định địa chỉ vật lý dựa trên địa chỉ logic? Cho ví dụ minh


hoạ? Địa chỉ vật lý được CPU sử dụng làm gì, được đưa ra những chân nào?
Câu hỏi 6: Bộ vi xử lý 8086 có bus địa chỉ và dữ liệu bao nhiêu bit? Nó có thể
truy cập tối đa được bao nhiêu ngăn nhớ? Địa chỉ các ngăn nhớ được đánh số như
thế nào? Khi CPU thực hiện lệnh: MOV AL,[BX] , ngăn nhớ được truy cập có địa
chỉ là bao nhiêu? Cho biết giá trị các thanh ghi bên trong CPU trước lúc thực hiện
lệnh là:
AX = 0000; BX = 0000; CX = 0000; DX = 0000; SP = FFEE; BP = 0000;
SI = 0000; DI = 0000; DS = 1369; ES = 1369; SS = 1369; CS = 1369; IP = 0100


Câu hỏi 7: Đoạn bộ nhớ là gì? Địa chỉ đoạn bộ nhớ chứa trong các thanh ghi nào?
Độ dài của các thanh ghi đoạn là bao nhiêu bit và số đoạn bộ nhớ có thể địa chỉ
hoá tối đa là bao nhiêu đoạn? Hãy cho biết ngăn nhớ có địa chỉ vật lý là 12345h
nằm trong đoạn bộ nhớ nào, địa chỉ độ lệch bao nhiêu?
Câu hỏi 8: Khi CPU nhận mã lệnh từ bộ nhớ, nó sử dụng những thanh ghi gì để
xác định địa chỉ của lệnh cần đọc vào? Từ nội dung các thanh ghi đó, CPU xác
định địa chỉ vật lý của byte mã lệnh như thế nào? Giả sử đoạn chương trình sau
nằm trong bộ nhớ bắt đầu tại địa chỉ 1234h:0100h:
MOV AH,2
MOV DL,'a'
INT 21h
khi CPU nhận lệnh đầu tiên vào, thì nội dung các thanh ghi chứa địa chỉ của
lệnh là bao nhiêu, địa chỉ vật lý của byte mã lệnh đầu tiên là bao nhiêu?
Câu hỏi 9: Thế nào là xử lý đường ống trong BVXL 80x86 của Intel? Do có cấu
trúc bên trong nào mà bộ vi xử lý 8086 có khả năng thực hiện chương trình theo
kiểu đường ống? Giả sử CPU 8086 thực hiện 3 lệnh i1, i2 và i3. Các lệnh đều có
thời gian nhận lệnh là 1 chu kỳ, thực hiện mất 2 chu kỳ. Xác định thời gian thực
hiện 3 lệnh của CPU 8086 và CPU thế hệ trước 8085?
Câu hỏi 10: Ý nghĩa của thanh ghi cờ trong bộ vi xử lý? Sau khi khởi động, các cờ
CF, PF, AF, ZF, SF, OF có giá trị nào? Xác định giá trị các cờ đó sau khi bộ vi xử

lý 8086 thực hiện lệnh sau:
MOV

AL,0A7h

ADD

AL,5Ah

Biết rằng trước đó giá trị các bit cờ trên và thanh ghi AL bằng 0.
Câu hỏi 11: Tại sao trong BVXL 8086/88 của Intel tất cả các thanh ghi địa chỉ
(đoạn và độ lệch) có dài tối đa là 16 bits nhưng địa chỉ vật lý CPU tạo ra có độ dài
20 bits (từ A0 đến A19). CPU dùng biểu thức nào để xác định được địa chỉ vật lý?
Xác định tên các thanh ghi chứa địa chỉ logic của byte dữ liệu nằm trong đoạn bộ
nhớ có địa chỉ là 1034h và độ lệch là 0200h? Tính đại chỉ vật lý của byte dữ liệu
nói trên?
Câu hỏi 12: Trình bày cách ghép nối CPU Intel8088 với Bus hệ thống (Data bus,
Address bus, Control Bus) ở chế độ tối đa trong máy tính PC/XT? Trong các máy
tính hiện đại, CPU phối ghép với bộ nhớ và ngoại vi nhờ vi mạch gì, các bus nối
với bộ nhớ và ngoại vi có cùng tốc độ không?


B. ỏp ỏn
Cõu 1:
Cõu hi: V s cu trỳc ca h thng mỏy tớnh? Nờu chc nng ca tng
b phn? Mó chng trỡnh v d liu trong mỏy tớnh c biu din di
dng gỡ, nm trong b phn no? Mụ t quỏ trỡnh mỏy tớnh thc hin mt
lnh?

2


0,25

BUS d liu
BUS iu khin

B x lý
trung tõm
(CPU)

B nh
(Memory)
ROM-RAM

Thit b vo
Phối
ghép
vào/ra
(I/O)

Thit b ra

BUS a ch
Sơ đồ khối hệ máy tính cơ bản

B x lý trung tõm: úng vai trũ ch o nht trong h mỏy tớnh. õy tin
hnh ton b cỏc tớnh toỏn, cỏc phộp tớnh s hc v i s v bin i cỏc
mó tng ng. õy chớnh l u nóo ca cỏc mỏy tớnh. Khi bt u hot
ng, nú nhn mó lnh t b nh, sau ú gii mó cỏc lnh ny thnh cỏc
dóy xung iu khin iu khin cỏc khi tng ng thc hin theo ỳng

trỡnh t v ni dung cú trong mó lnh.
B nh (memory): B nh th hin vic lu tr thụng tin v trao i thụng
tin.
cỏc h mỏy vi tớnh, ngi ta s dng b nh bỏn dn bao gm
ROM, RAM. Trong ROM cú th cha cỏc chng trỡnh iu khin hot
ng ca ton h khi bt mỏy. Cũn mt phn chng trỡnh iu khin h
thng, chng trỡnh ng dng thng c lu RAM.
B nh mỏy tớnh thc cht l b nh trong phõn bit vi khỏi nim b
nh ngoi m nhiu ti liu hin vn hay s dng ch thit b t (Bng,
a t)
Khi phi ghộp vo/ra (I/O) to kh nng giao tip mỏy tớnh vi th gii
bờn ngoi. Cỏc thit b ngoi vi nh mn hỡnh, bn phớm, mỏy in, cỏc b

0,25

0,25

0,25


biến đổi D/A, A/D.... đều liên hệ với hệ máy tính qua bộ phận này mà cụ
thể cho từng thiết bị là các cổng.
BUS địa chỉ: Khi ghi/đọc bộ nhớ bộ xử lý trung tâm sẽ đưa ra trên bus này
địa chỉ của các ô nhớ có liên quan. Lưu ý là bus địa chỉ là bus một chiều
xuất phát từ CPU.
BUS dữ liệu thường có từ 8, 16, 20, 24, 32 đến 64 đường dây tuỳ thuộc vào
từng CPU cụ thể. BUS dữ liệu là loại 2 chiều. Các phần tử có đầu ra nối
thẳng với bus dữ liệu đều phải được trang bị đầu ra 3 trạng thái để baỏ đảm
cho bus hoạt động được bình thường.
BUS điều khiển thường gồm hàng chục dây tín hiệu khác nhau, và xét theo

cả nhóm thì đó là lọai bus 2 chiều.
Thiết bị vào: biến đổi tín hiệu tự nhiên hoặc cho bởi con người sang
dạng mã máy để bộ vi xử lý thực hiện. Thiết bị vào thông dụng nhất có bàn
phím, con chuột, máy quét scaner, thiết bị phân tích nhận dạng tiếng nói,
CD-ROM.....
Thiết bị ra: biến đổi các mã bên trong máy tính sau khi xử lý để con
người có thể hiểu được hoặc điều khiển các thiết bị khác. Thiết bị ra thông
dụng nhất có màn hình, máy in, faxmodem, máy vẽ, loa hay các thiết bị
điều khiển khác.
Mã chương trình và dữ liệu trong máy tính được biểu diễn dưới dạng các
bít nhị phân, được chứa trong bộ nhớ của máy tính.
Khi máy tính thực hiện một lệnh, trước tiên nó phải xác định vị trí của lệnh
đó trong bộ nhớ thông qua cặp thanh ghi CS và IP, sau đó nó sẽ nạp (nhận)
lênh đó vào, thực hiện giải mã lệnh, thực hiện lệnh và cuối cùng là ghi kết
quả trở lại bộ nhớ.

0,25

0,25

0,25
0,25

Câu 2:
Câu hỏi: Giả sử máy tính thực hiện đoạn chương trình bắt đầu tại địa chỉ
136Fh:0100h như sau:
MOV AH, 2
MOV
INT


DL, 'a'
21h

Hãy cho biết:
- Mã chương trình trên nằm trong bộ phận nào của máy tính? Tại vị trí
có địa chỉ vật lý nào?
- Bộ phận nào thực hiện các lệnh? Thực hiện lần lượt hay đồng thời?
- Khi thực hiện các lệnh thì những thanh ghi CS và IP thay đổi thé nào?




- Nội dung của các thanh ghi CS và IP khi lệnh thứ 2 được thực hiện?
Mã chương trình trên nằm trong bộ nhớ của của máy tính. Bắt đầu từ ô
nhớ có địa chỉ vật lý là 137F0h. (136F0+0100)
Các lệnh trên được thực hiện trong “Đơn vị thực hiện” EU của bộ vi xử lý.
Các lệnh được thực hiện lần lượt theo thứ tự từ trên xuống.
Khi thực hiện 1 lệnh nào đó thì giá trị của thanh ghi IP được tăng lên thêm
2 để trỏ vào vị trí lệnh tiếp theo của chương trình.
Khi chuẩn bị thực hiện lệnh lệnh đầu tiên thì các thanh ghi CS = 136Fh, IP
= 0100h,
còn khi thực hiện lệnh thứ nhất thì chúng có giá trị: CS = 136Fh, IP =
0102h.
Khi thực hiện lệnh thứ hai thì chúng có giá trị: CS = 136Fh, IP = 0104h

0,4
đ
0,3
đ
0,4

đ
0,3
đ
0,3
đ
0,3đ

Câu 3:

Câu hỏi: Kiến trúc của máy tính PC là kiến trúc gì? Theo kiến trúc này,
máy tính gồm những bộ phận gì? Vẽ sơ đồ khối của máy tính và nêu chức
năng của từng bộ phận? Nhược điểm chính của kiến trúc này là gì?
Kiến trúc của máy tính PC là kiến trúc Von Neumann.
Với kiến trúc Von Neumann, máy tính có một bộ nhớ và một bus để
chuyển dữ liệu vào và ra đơn vị xử lý trung tâm (CPU) .CPU có thể đọc
một lệnh, hoặc đọc/ghi dữ liệu từ bộ nhớ.



0,2
0,3


0,3
đ

Bộ nhớ máy tính là hệ thống con dùng lưu trữ tạm thời các chỉ thị của
chương trình và dữ liệu sẽ được thực hiện bởi máy tính. Nó thuờng được
gọi là RAM. Bộ nhớ được chia thành các ô, mỗi ô có địa chỉ riêng để dữ
liệu có thể nạp.

Hệ thống vào/ra (I/O), đây là hệ thống con cho phép máy tính tương tác với
các thiết bị khác và liên lạc với thế giới bên ngoài. Nó cũng chịu trách
nhiệm lưu trữ chương trình bằng cách điều khiển đĩa cứng.
Đơn vị tính toán/logic (ALU): Đây là hệ thống con thực hiện tất cả các
phép toán số và phép so sánh.
Đơn vị điều khiển thực hiện:
(1) tìm trong bộ nhớ chỉ thị chương trình kế tiếp sẽ chạy,
(2) giải mã chỉ thị đó thành cái máy tính có thể hiểu,
(3) đưa mệnh lệnh thích hợp tới ALU, bộ nhớ, và hệ thống vào/ra.
Hạn chế: Cả hai quá trình tương tác với lệnh hoặc với số liệu, không thể
thực hiện cùng lúc.

0,3
đ

0,3
đ
0,3
đ

0,3đ

Câu 4.
Câu hỏi: Bộ xử lý trung tâm (CPU) của máy tính liên kết với các bộ phận
khác của hệ thống máy tính (ngoại vi, bộ nhớ) bằng các nhóm tín hiệu
nào? Nêu chức năng, hướng truyền của các nhóm tín hiệu đó? Khi CPU





đọc lệnh để thực hiện, thì mã lệnh chuyển từ đâu tới đâu, theo đường
nào?
Bộ xử lý trung tâm (CPU) của máy tính liên kết với các bộ phận khác của
hệ thống máy tính (ngoại vi, bộ nhớ) thông qua các nhóm tín hiệu được
gọi là hệ thống bus.
Trong máy tính có hai nhóm bus là bus hệ thống, nối giữa CPU với bộ
nhớ chính (trong các máy hiện đại ngày nay bus hệ thống được nối giữa
CPU và vi mạch tổng hợp) và bus vào ra nối ghép giữa các thiết bị ngoại
vi tới CPU.
Hệ thống bus bao gồm 3 loại bus là bus địa chỉ, bus dữ liệu và bus điều
khiển.
BUS địa chỉ: Phục vụ việc chọn ô nhớ hoặc thiết bị vào/ra. Khi ghi/đọc bộ
nhớ hoặc thiết bị vào/ra, bộ xử lý trung tâm sẽ đưa lên bus này địa chỉ của
các thiết bị liên quan. Đây là bus một chiều và xuất phát từ CPU.
BUS dữ liệu: được dùng để chuyển dữ liệu và thường có từ 8, 16, 20, 24,
32 đến 64 đường dây tuỳ thuộc vào từng CPU cụ thể. BUS dữ liệu là loại
2 chiều. Các phần tử có đầu ra nối thẳng với bus dữ liệu đều phải được
trang bị đầu ra 3 trạng thái để bảo đảm cho bus hoạt động được bình
thường.
BUS điều khiển: Hỗ trợ cho việc trao đổi các thông tin điều khiển và
trạng thái như phân biệt thiết bị được CPU truy nhập là bộ nhớ hay thiết
bị vào/ra, thao tác truy nhập là đọc hay viết v.v......Bus điều khiển thường
gồm hàng chục dây tín hiệu khác nhau, và xét theo cả nhóm thì đó là loại
bus 2 chiều.
Khi CPU đọc lệnh để thực hiện, thì mã lệnh chuyển từ bộ nhớ vào CPU
thông qua bus dữ liệu.

0,3
đ
0,3

đ

0,3
0,3
0,3

0,3

0,2

Câu 5.
Câu hỏi: Phân biệt địa chỉ logic và địa chỉ vật lý của một ngăn nhớ? Nêu
phương pháp CPU xác định địa chỉ vật lý dựa trên địa chỉ logic? Cho ví
dụ minh hoạ? Địa chỉ vật lý được CPU sử dụng làm gì, được đưa ra
những chân nào?
Địa chỉ logic của một ngăn nhớ là địa chỉ gồm: đ/c segment + đ/c offset,
được viết theo cách như sau: Thanh ghi đoạn:Thanh ghi lệch,
Còn địa chỉ vật lý của một ngăn nhớ chính là số thứ tự của ngăn nhớ đó,
được bắt đầu tính từ 0 (ngăn nhớ thứ nhất có địa chỉ vật lý là 0)
CPU xác định địa chỉ vật lý dựa trên địa chỉ logic theo cách: Địa chỉ
đoạn sẽ được dịch trái 1 khoảng 4 bit kết hợp với địa chỉ offset giữ



0,3 đ
0,3 đ
0,4 đ


nguyên sẽ tạo thành cách xác định địa chỉ 20 bit.

Như vậy, địa chỉ vật lý được xác định theo công thức như sau:
Địa chỉ vật lý = Thanh ghi đoạn x 16 + Thanh ghi lệch
Ví dụ
Địa chỉ đoạn
EF00 ---- Dịch trái 4 bit
EF000
Địa chỉ offset:
0224 ----- Giữ nguyên
0224 .
Địa chỉ tạo thành 20 bit
EF224
Địa chỉ vật lý được CPU sử dụng để xác định vị trí các o nhớ trong bộ
nhớ máy tính. Nó được đưa ra thông qua các chân địa chỉ - dữ liệu AD0AD15 và địa chỉ - trạng thái A16/S3, A17/S4, A18/S5, A19/S6 với
8086.Còn với 8088 được đưa ra thông qua các chân địa chỉ - dữ liệu
AD0-AD7, địa chỉ - trạng thái A16/S3, A17/S4, A18/S5, A19/S6 và các
chân địa chỉ A8-A15.

0,4 đ
0,3 đ

0,3 đ

Câu 6.
Câu hỏi: Bộ vi xử lý 8086/88 có bus địa chỉ và dữ liệu bao nhiêu bit? Nó
có thể truy cập tối đa được bao nhiêu ô nhớ? Địa chỉ các ô nhớ được đánh
số như thế nào? Khi CPU thực hiện lệnh: MOV AL,[BX] , ô nhớ được
truy cập có địa chỉ là bao nhiêu? Cho biết giá trị các thanh ghi bên trong
CPU trước lúc thực hiện lệnh là:




AX = 0000; BX = 0000; CX = 0000; DX = 0000; SP = FFEE;
BP = 0000;
SI = 0000; DI = 0000; DS = 1369; ES = 1369; SS = 1369; CS =
1369; IP = 0100
Bộ vi xử lý 8086 có bus địa chỉ là 20 bit, bus dữ liệu 16 bit. Còn bộ vi
xử lý 8088 có bus địa chỉ là 20 bit, nhưng bus dữ liệu chỉ 8 bit.
Bộ vi xử lý 8086 sử dụng 20 đường địa chỉ nên có thể lập địa chỉ cho 220
= 1048576 ô nhớ. Tương ứng với không gian nhớ 1MB.
Địa chỉ các ô nhớ được đánh số như sau:
Ô nhớ thứ nhất có địa chỉ vật lý là 0
Ô nhờ thứ hai có địa chỉ vật lý là 1
......
Khi CPU thực hiện lệnh: MOV AL,[BX], ô nhớ được truy cập có địa chỉ
đoạn ghi trên thanh ghi đoạn DS, địa chỉ offset ghi trên BX.
Vậy địa chỉ logic là DS:BX = 1369:0000, và địa chỉ vật lý của ô nhớ
được truy cập là 13690h.

0,4 đ
0,4 đ
0,4 đ

0,4 đ
0,4 đ


Câu 7.
Câu hỏi: Đoạn bộ nhớ là gì? Địa chỉ đoạn bộ nhớ chứa trong các thanh
ghi nào? Độ dài của các thanh ghi đoạn là bao nhiêu bit và số đoạn bộ
nhớ có thể địa chỉ hoá tối đa là bao nhiêu đoạn? Hãy cho biết ngăn nhớ

có địa chỉ vật lý là 12345h nằm trong đoạn bộ nhớ nào, địa chỉ độ lệch
bao nhiêu?
Đoạn bộ nhớ là vùng rong bộ nhớ chứa 216 byte = 64 KB ô nhớ liên tiếp
nhau được xác định bằng một địa chỉ đoạn tương ứng bắt đầu từ địa chỉ
0 và địa chỉ đoạn lớn nhất là FFFFFh.
- Bên trong mỗi đoạn, các ô nhớ được gán địa chỉ gọi là địa chỉ Offset,
địa chỉ được tính từ đầu đoạn là các số 16 bit và lớn nhất là FFFFh.
Địa chỉ đoạn bộ nhớ chứa trong các thanh ghi đoạn là CS, DS, SS và
ES.
Các thanh ghi đoạn có độ dài là 16bit, vậy số đoạn nhiều nhất có thể là
216 đoạn.
Với ngăn nhớ có địa chỉ vật lý là 12345h có thể có nhiều địa chỉ logic
khác nhau. Ví dụ như một vài địa chỉ như sau:
- 1234:0005 tương ứng đoạn bộ nhớ có địa chỉ 1234h và địa chỉ độ
lệch 0005h
- 1230:0045 tương ứng đoạn bộ nhớ có địa chỉ 1230h và địa chỉ độ
lệch 0045h
- ......



0,4 đ

0,4 đ
0,4 đ
0,4 đ
0,4đ

Câu 8.
Câu hỏi: Khi CPU nhận mã lệnh từ bộ nhớ, nó sử dụng những thanh ghi

gì để xác định địa chỉ của lệnh cần đọc vào? Từ nội dung các thanh ghi
đó, CPU xác định địa chỉ vật lý của byte mã lệnh như thế nào? Giả sử
đoạn chương trình sau nằm trong bộ nhớ bắt đầu tại địa chỉ 1234h:0100h:
MOV AH,2
MOV DL,'a'
INT 21h
khi CPU nhận lệnh đầu tiên vào, thì nội dung các thanh ghi chứa địa
chỉ của lệnh là bao nhiêu, địa chỉ vật lý của byte mã lệnh đầu tiên là
bao nhiêu?




Khi CPU nhận mã lệnh từ bộ nhớ, nó sử dụng các thanh ghi CS và IP để
xác định địa chỉ của lệnh cần đọc vào từ bộ nhớ.
Trong đó thanh ghi CS dùng để chỉ tới đoạn bộ nhớ mã, IP chứa địa chỉ
offset trong đoạn bộ nhớ đó.
Từ nội dung các thanh ghi đó, CPU xác định địa chỉ vật lý của byte mã
lệnh theo công thức: Địa chỉ vật lý = Thanh ghi đoạn x 16 + Thanh ghi
lệch
Với đoạn chương trình trên nằm trong bộ nhớ bắt đầu tại địa chỉ
1234h:0100h, thì khi nhận lệnh đầu tiên, giá rị các thanh ghi chứa địa
chỉ của lệnh sẽ là: CS=1234h, IP=0100h.
Địa chỉ vật lý của byte mã lệnh đầu tiên là:
1234h*16+0100 = 1244h

0,4 đ
0,4 đ
0,4 đ


0,4 đ

0,4 đ

Câu 9.
Câu hỏi: Thế nào là xử lý đường ống trong BVXL 80x86 của Intel? Do
có cấu trúc bên trong nào mà bộ vi xử lý 8086 có khả năng thực hiện
chương trình theo kiểu đường ống? Giả sử CPU 8086 thực hiện 3 lệnh
i1, i2 và i3. Các lệnh đều có thời gian nhận lệnh là 1 chu kỳ, thực hiện
mất 2 chu kỳ. Xác định thời gian thực hiện 3 lệnh của CPU 8086 và CPU
thế hệ trước 8085?
Vì có khả năng vừa thực hiện lệnh hiện tại, vừa có thể nhận các lệnh tiếp
theo cho nên có thể coi BVXL 80x86 của Intel có khả năng xử lý đường
ống.
Khả năng xử lý đường ống có được là do cấu trúc bên trong của bộ vi xử
lý 8086 có 2 đơn vị hoạt động tương đối độc lập là đơn vị thực hiện EU
và đơn vị giao tiếp BIU. Như sau:
Trong thời gian EU thực hiện lệnh thì BIU vẫn có thể đảm nhận nhiệm
vụ nhận trước các lệnh, cất tạm vào hàng đợi lệnh và các thanh ghi dữ
liệu.
Nhờ vậy mà khi bus bị bận trong chu kỳ đọc thì EU thực hiện các lệnh
trước đó và khi bus bận trong chu kỳ ghi thì EU lại thực hiện lệnh khác.
Giả sử CPU 8086 thực hiện 3 lệnh i1, i2 và i3. Các lệnh đều có thời gian
nhận lệnh là 1 chu kỳ, thực hiện mất 2 chu kỳ. Lúc này để thực hiện 1
lệnh đơn cần 3 chu kỳ, vậy với các CPU trước 8086 cần tổng cộng 9 chu
kỳ để thực hiện hết 3 lệnh. Còn với 8086/88 chỉ cần 7 chu kỳ, bởi vì hai
chu kỳ dùng để nhận các lênh i2 và i3 lúc này là đồng thời với các chu
kỳ thực hiện lệnh i1.




0,4 đ

0,4 đ

0,4 đ

0,4 đ
0,4 đ


Câu 10.
Câu hỏi: Ý nghĩa của thanh ghi cờ trong bộ vi xử lý? Sau khi khởi động,
các cờ CF, PF, AF, ZF, SF, OF có giá trị nào? Xác định giá trị các cờ đó
sau khi bộ vi xử lý 8086 thực hiện lệnh sau:



MOV AL,9CH
MOV AL,64H
Biết rằng trước đó giá trị các bit cờ trên và thanh ghi AL bằng 0.
Là thanh ghi 16 bit dùng để lưu giữ thông tin về các trạng thái công tác
của EU hoặc kết quả phép toán do ALU thực hiện. Căn cứ vào trạng thái
các cờ mà người lập trình có thể sử dụng các lệnh thích hợp tiếp theo
cho bộ vi xử lý.
8086/8088 chỉ sử dụng 9 bit cờ trong số 16 bit để ghi thông tin (Hình vẽ)

0,3 đ

0,4 đ


Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Cờ
OF DF IF TF SF ZF
AF
PF
CF
Ý nghĩa các cờ
TT Cờ
Các cờ
1 AF Auxiliary
2 CF Flag
3 OF Carry Flag
4 SF Overflow
5 PF Flag
6 ZF Sign Flag
Parity Flag
Zero Flag
7
8
9

0,6 đ

ý nghiã
Nhóm
Cờ phụ = 1 nếu số nhớ vượt 4 LSB
6 bit
Cờ nhớ = 1 nếu số nhớ vượt quá bit
cờ

MSB
trạng
Cờ tràn =1 nếu kết quả vượt thang
thái
Cờ dấu =1 nếu kết quả âm (bằng giá
trị bit cuối)
Cờ chẵn =1 nếu số các số 1 kết quả
chẵn (byte đầu)
Cờ zero = 1 nếu kết quả bằng 0
DF Direction
Cờ hướng-nếu DF=1 thực hiện theo 3 bit
IF Flag
chiều giảm
cờ
TF InterruptCờ ngắt- báo MP biết yêu cầu ngắt
điều
Enable Flag Cờ bẫy- đặt MP vào chế độ chạy khiển
Trap Flag
từng lệnh.

Trong đó các cờ từ 1÷ 6 phản ánh trạng thái của kết quả sau một thao
tác nào đó. Các cờ còn lại từ 7÷ 9 là cờ điều khiển và được lập hoặc xoá
bằng các lệnh riêng.
Sau khi khởi động, các cờ có giá trị như sau: CF=0, PF= , AF=
,
0,4 đ
ZF=
, SF=
, OF =



Thực hiện phép tinh trên như sau:
9Ch = 1001 1100 và
64h = 0110 0100. Phép tính sẽ là:
1001
1100
+ 0110
0100
0000 0000
Vậy: CF=1, PF=1, AF=1, ZF=1, SF=0.

0,3 đ

Câu 11.
Câu hỏi: Tại sao trong BVXL 8086/88 của Intel tất cả các thanh ghi địa
chỉ (đoạn và độ lệch) có dài tối đa là 16 bits nhưng địa chỉ vật lý CPU
tạo ra có độ dài 20 bits (từ A0 đến A19). CPU dùng biểu thức nào để
xác định được địa chỉ vật lý? Xác định tên các thanh ghi chứa địa chỉ
logic của byte dữ liệu nằm trong đoạn bộ nhớ có địa chỉ là 1034h và độ
lệch là 0200h? Tính địa chỉ vật lý của byte dữ liệu nói trên?
Trong BVXL 8086/88 của Intel tất cả các thanh ghi địa chỉ (đoạn và độ
lệch) có dài tối đa là 16 bits nhưng địa chỉ vật lý CPU tạo ra có độ dài
20 bits (từ A0 đến A19). Bởi vì CPU sử dụng các thanh ghi đoạn 16 bit
CS, DS, SS và ES để xác định địa chỉ đoạn, sử dụng các thanh ghi
offset: IP, SP, BP, SI, DI để xác định địa chỉ dịch chuyển tính từ địa chỉ
đoạn.
Cụ thể là địa chỉ đoạn sẽ được dịch trái 1 khoảng 4 bit kết hợp với địa
chỉ offset giữ nguyên sẽ tạo thành địa chỉ 20 bit của địa chỉ vật lý.
CPU dùng biểu thức sau đây để xác định địa chỉ vật lý:
Địa chỉ vật lý = Thanh ghi đoạn x 16 + Thanh ghi lệch

Byte dữ liệu nằm trong đoạn bộ nhớ có địa chỉ là 1034h và độ lệch là
0200h sử dụng các thanh ghi DS=1034h và BX=0200h.
Địa chỉ vật lý của byte dữ liệu trên là: 10340 + 0200 = 10540h,



0,5 đ

0,3 đ
0,4 đ
0,4 đ
0,4 đ

Câu 12:
Câu hỏi: Trình bày cách ghép nối CPU Intel8088 với Bus hệ thống (Data
bus, Address bus, Control Bus) ở chế độ tối đa trong máy tính PC/XT?
Trong các máy tính hiện đại, CPU phối ghép với bộ nhớ và ngoại vi nhờ
vi mạch gì, các bus nối với bộ nhớ và ngoại vi có cùng tốc độ không?
Ở chế độ tối đa trong máy tính PC/XT, CPU truyền tín hiệu điều khiển
tới khối điều khiển kênh thông tin (chip 8288). Khối này nhận và xử lý



0,4 đ


tín hiệu điều khiển đó rồi mới phát các tín hiệu điều khiển thứ cấp tới
kênh thông tin. Lúc này ghép nối CPU Intel8088 với Bus hệ thống (Data
bus, Address bus, Control Bus) có dạng như hình vẽ:
HTMP

HT BUS

Clock
8284

8086/
8088

Bus ®Þa
chØ

74LS373

Bus d÷
liÖu

74LS245

Bus ®iÒu
khiÓn

8288

Bus ®Þa
chØ

HT I/O


nhí


Bus d÷
liÖu

Bus ®iÒu
khiÓn

0,4 đ
HÖ thèng bus ë mode cùc ®¹i

Trong đó:
Chip 8288 được sử dụng để điều khiển bus. Khi bộ vi xử lý hoạt
động ở mode cực đại thì mạch điều khiển bus 8288 được dùng để cung
cấp các tín hiệu điều khiển cho chế độ làm việc này.
Vi mạch 74LS373 được dùng để chốt và đệm các đường dây địa
chỉ với các với các bus được dồn kênh. Vì thông tin địa chỉ có trên bus
chỉ trong khoảng thời gian ngắn nên mạch chốt được điều khiển bởi tín
hiệu ALE sẽ được sử dụng để giữ lại thông tin địa chỉ đó.
74LS245 là vi mạch thu phát bus hai chiều 8 bit có 3 trạng thái dùng
để đệm và điều khiển chiều chuyển động của dữ liệu.
Trong các máy tính hiện đại, CPU phối ghép với bộ nhớ và ngoại vi thông
qua vi mạch tổng hợp hay còn gọi là chipset, lúc này các bus nối CPU với
bộ nhớ và ngoại vi không cung một tốc độ.

0,3 đ

0,3 đ

0,3 đ
0,3 đ




×