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

Bài tập Vi xử lý có đáp án số 2

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 (306.19 KB, 5 trang )

KHOA ĐIỆN TỬ VIỄN THÔNG
BỘ MÔN ĐIỆN TỬ TIN HỌC

MÔN HỌC: KỸ THUẬT VI XỬ LÝ
Học kỳ: 2 Năm học: 2009-2010

BÀI TẬP VỀ NHÀ SỐ 2

Hạn nộp: Buổi học VXL cuối của tuần 30 (nộp quá hạn sẽ nhận điểm 0)
Hạn trả bài: Buổi học cuối cùng của tuần 32
Chú ý: yêu cầu trả lời rõ ràng, ngắn gọn và chính xác.

Nội dung đề cập đến: Cấu trúc bên trong của 8086, các thanh ghi, chế độ địa chỉ, mã
hóa lệnh, quản lý bộ nhớ, so sánh cấu trúc bên trong của PIC với 8086

1. (2 điểm) Các thành phần chính bên trong của bộ vi xử lý là gì ?
- Khối EU,
- Các Thanh ghi (Các thanh ghi chung, các thanh ghi quản lý bộ nhớ, các
thanh ghi có chức năng chuyên dụng khác…)
- Khối giao tiếp với BUS ngoại vi,
- Bộ số học và logic,

2. (5 điểm) Bộ vi xử lý 8086 có bao nhiêu thanh ghi ở bên trong ? chúng được phân
loại ra sao ? các vi xử lý sau này của Intel có các thanh ghi nào, có gì khác so
với của 8086?
- 8086 có 14 thanh ghi.
- Phân loại các thanh ghi của 8086:
o các thanh ghi chung (AX, BX, CX, DX),
o các thanh ghi chỉ số và con trỏ dùng để quản lý địa chỉ (IP,
SI,DI,SP,BP),
o các thanh ghi đoạn dùng để quản lý địa chỉ đoạn nhớ (SS, DS, CS,


ES)
o Thanh ghi cờ dùng để thể hiện trạng thái làm việc của VXL.
- Các vi xử lý sau 8086 mở rộng các thanh ghi lên 32 bít (EAX, EBX…) và
thêm một số thanh ghi khác như GS, FS và các thanh ghi ẩn khác (người
dùng không truy nhập vào được)

3. (2 điểm) Cách quản lý địa chỉ của 8086 ?
- 8086 quản lý theo địa chỉ logic. Địa chỉ logic được khối giao tiếp BUS chuyển
thành địa chỉ vật lý bên ngoài theo cách: SEGMENT*16 + OFFSET,
- Mỗi đoạn nhớ của 8086 có số byte bằng nhau và băng 64 KB

4. (5 điểm) Liệt kê các thanh ghi/cặp các thanh ghi hoặc các bit cụ thể trong thanh
ghi mà vi xử lý 8086 có thể dùng để:
a. Chỉ ra địa của lệnh cần thực hiện ?
CS:IP
b. Chỉ ra một biến nhớ ?
DS:SI hoặc ES:DI
c. Chỉ ra đỉnh ngăn xếp ?
SS:SP
d. Chỉ thị các đặc trưng cơ bản cho kết quả thực hiện phép toán cũng như
trạng thái làm việc của vi xử lý?
Thanh ghi cờ,
e. Chỉ ra cổng ngoại vi cần được đọc/ghi dữ liệu ?
DX
f. Chỉ ra trạng thái cho phép ngắt hay không cho phép ngắt ?
Bít cờ I và T

5. (5 điểm) Hãy tìm địa chỉ vật lý của các ô nhớ sau:
a. 1001:0110  11000h
b. 1023:3201 13431h

c. 50AF:492C 5541Ch

6. (5 điểm) Hãy chỉ ra số byte không bị chồng lấn (overlap) giữa hai đoạn nhớ liên
tiếp ?
16 byte

7. (5 điểm) Hãy tím địa chỉ ô nhớ cuối cùng của các đoạn nhớ sau trong chế độ real
mode:
a. ADFF ADFF:FFFF (BDFEFh)
b. 9A9B 9A9B:FFFF (AA9AFh)
c. CCDB CCDB:FFFF (DCDAFh)

8. (5 điểm) 8086 có bao nhiêu chế độ đánh địa chỉ bộ nhớ (memory addressing
modes)? Liệt kê chúng và giải thích tại sao họ dùng cụm từ tiếng Anh tương ứng
để đặt tên cho các chế độ tương ứng đó ?
- Có 7 chế độ địa chỉ dành cho bộ nhớ dữ liệu
- Chế độ địa chỉ thanh ghi: bởi thanh ghi chứa dữ liệu được dùng,
- Chế độ địa chỉ tức thì: Bởi giá trị cụ thể được đưa trực tiếp vào lệnh
- Chế độ địa chỉ trực tiếo: bởi địa chỉ của ô nhớ có dữ liệu cần truy nhập
được chỉ ra trên lệnh,
- Chế độ địa chỉ gián tiếp qua thanh ghi: bởi địa chỉ của ô nhớ được chứa
trong thanh ghi,
- Chế độ địa chỉ tương đối cơ sở: Bởi dùng thanh ghi cơ sở để chỉ ra địa
chỉ của ô nhớ cần truy nhập hoặc của ô nhớ có địa chỉ được dịch đi kể
từ địa chỉ trong thanh ghi cơ sở đó,
- Chế độ địa chỉ tương đối chỉ số: tương tự trường hợp tương đối cơ sở,
chỉ khác là dùng thanh ghi chỉ số,
- Chế độ địa chỉ tương đối chỉ số cơ sở: tương tự hai trường hợp trên, tuy
nhiên địa chỉ của ô nhớ cần truy nhập là tổng của hai thanh ghi chỉ số và
cơ sở và dịch chuyển tương đối nếu có


9. (5 điểm) Đối với 8086, độ dài tối đa của một đoạn nhớ là bao nhiêu ?
- 64KB

10. (5 điểm) Chế độ địa chỉ bảo vệ (protected mode) có trong các vxl nào của Intel ?
- 80286 trở lên

11. (5 điểm) Cách quản lý đoạn nhớ trong chế độ protected mode như thế nào ?
- Dùng các bảng descriptor để chỉ ra địa chỉ và phạm vi của đoạn nhớ,
- Thanh ghi đoạn được dùng để chỉ ra descriptor có đoạn nhớ cần được
truy nhập. Nó được gọi là selector bởi nó chọn 1 trong các descriptor

12. (5 điểm) Có bao nhiêu loại bảng descriptor ? và tối đa có bao nhiêu descriptor ?
- Có 2 loại, global và local.
- Tối đa 16K descriptors

13. (5 điểm) Selector là gì? và Các thanh ghi nào đựơc dùng để chỉ ra một descriptor
trong vi xử lý 80486?
- Selector dùng để chỉ ra descriptor được chọn có ô nhớ cần được truy
nhập. Selector được chưa trong thanh ghi SEGMENT.
- Với 80486, các thanh ghi CS, DS, SS, ES, FS và GS

14. (5 điểm) Độ dài của một đoạn nhớ mà 80286 có thể quản lý là bao nhiêu ? của
80486 là bao nhiêu ?
- Của 80286 là 64KB, của 80486 là 4GB

15. (5 điểm) Bit G (Granularity) dùng để làm gì ? Khi G=1, đoạn nhớ có bước tăng là
bao nhiêu ?
- G dùng để chỉ ra hệ số nhân bằng 4K vào độ lớn của đoạn dữ liệu
- Mỗi bước tăng là 4KB


16. (5 điểm) Khi G=1, mỗi đoạn bộ nhớ của 80386 là bao nhiêu ?
- Khi đó, mỗi đoạn bộ nhớ là bao nhiêu tùy thuộc vào giá trị của phần
LIMIT trong descriptor nhân với 4 K.

17. (5 điểm) Hãy chỉ ra không gian địa chỉ của các đoạn nhớ với địa chỉ base và limit
tương ứng như sau (với G=0):
a. Với 80286: base là 100000H và Limit là 40AF ?
- Dải địa chỉ của đoạn nhớ này là từ 100000H đến 1040AFh
b. Với 80486: base là 10000000H và Limit là 020F0 ?
- Dải địa chỉ của đoạn nhớ này là từ 100000000H đến 1000020F0H h

18. (5 điểm) Chức năng chính của các chương trình dịch là gì ?
Câu trả lời là: Chương trình dịch có chức năng chính là chuyển từ MÃ NGỮ
dang MÃ MÁY.

19. (5 điểm) Hãy giải thích các cột số viết trước các lệnh trong đoạn chương trình
được liệt kê ra ở Trang 122 trong quyển sách tham khảo có ý nghĩa gì?
- Có 02 cột số cơ bản, cột thứ nhất (từ trái sang phải) chỉ ra địa chỉ Offset
bắt đàu cho lệnh tương ứng trên dòng đó
- Cột các số viết dưới dạng hexa tiếp theo thể hiện lệnh tương ứng được
dịch sang mã máy.
20. (5 điểm) Viết rõ giải thích cho từng bít về mã hóa các lệnh dùng trong đoạn code
của chương trình ở Trang 247?
Các lệnh tương ứng được giải thích như sau:
- 51h, 53h biểu diễn lệnh PUSH tương ứng với các thanh ghi CX và BX.
Với lệnh PUSH REG có mã là 01010rrr; với rrr là mã của thanh ghi (theo
bảng kèm theo)
- B9 và BB tiếp theo biểu diễn cho trường hợp mov giá trị trực tiếp vào
thanh ghi tương ứng . Với lệnh mov giá trị trực tiếp vào thanh ghi có

dạng: 1011wrrr data. Với w chỉ ra độ rộng của thanh ghi (w=08 bit tức
1 byte hay w=1 tức 2 byte), rrr thể hiện mã của thanh ghi và data là giá
trị được chuyển vào thanh ghi.
- Các lệnh mov dữ liệu từ thanh ghi đến thanh ghi được giải thích đơn giản
bởi đó không là những trường hợp đặc biệt,
- Lệnh INT được mã thanh CD 21. Các số hiệu ngắt khác nhau được đặt
sau CD,
- Lệnh CALL gần có mã lệnh là E8, CALL xa có mã là 9A. tiếp sau đó chỉ
ra khoảng cách từ lệnh tiếp theo đến chương trình con. (là
displacement)
- Lệnh SHL BX,CL là dịch trái nội dung BX với số lần dịch bằng giá trị trong
CL. Nó có mã lệnh là 110100cw mm100rrr; vớii bit c=1 (dịch với số lần
được chỉ ra trong CL, nếu bit c=0 thì sẽ dịch 1 lần). w chỉ ra độ rộng của
thanh ghi, mm chỉ ra dịch nội dung thanh ghi (=11), và rrr là mã hóa cho
các thanh ghi có nội dung được dịch. Trường hợp này là D3 E3.
- Với lệnh ADD reg,reg có dạng 00000dw 00rrrmmm với rrr và mmm là mã
của các thanh ghi trong lệnh ADD như đã biết,
- SUB tươngtự như ADD ở trên
- Lệnh DEC reg có mã 01001rrr với rrr là mã của thanh ghi tương ứng, ví
dụ ở đây SI có rrr=110 và mã lệnh này sẽ là 4E.
- Tương tự là lệnh JNZ nhan, mã có dạng là 0111cccc disp. Trong đó cccc
thể hiện điều kiện” JNZ có cccc=0101. Disp ở đây là khoảng cách tính
bằng số byte tới nơi cần đến, F2 trong trường hợp này là số byte biểu
diễn số byte cần nhảy dưới dạng mã bù.
- Tương tự ta có JB
- Lệnh POP tương tự như giải thích cho PUSH.
- RET có mã cố định là C3,
- Lệnh CMP reg,imm có mã chung là 0011110w imm; với mã opcode cho
AL là 3C, giá trị là 39 chỉ ra mã ASCII của ‘9’, tương tự với các trường
hợp khác.

-
21. (6 điểm) Hãy so sánh PIC16F87 với 8086 trên các khía cạnh sau:
a. Kiến trúc vi xử lý?
b. Thanh ghi ?
- Dung lượng nhớ và cách quản lý bộ nhớ ?
c. ….

Phần này dài, các thày xem xét cho điểm phù hợp với mức độ rõ rang của so
sánh,


Tổng điểm bằng 100

Chúc các bạn làm bài tốt và nhớ nộp bài đúng hạn

×