Các bài tập ôn kiểm tra giữa học kỳ 2 môn Vi xử lý - Năm học 2013-2014 - Hồ Trung Mỹ

ĐHBK Tp HCM – Khoa ĐĐT–BMĐT  
Môn học: Vi Xử Lý – GVPT: Hồ Trung Mỹ  
Các bài tập ôn kiểm tra giữa học kỳ 2 – NH:2013-2014  
1. Viết các “từ điều khiển” (control word) (hình 1.14 trong sách VXL) để thực hiện các phép toán sau:  
a) R3 2R1 – 3R2  
b) R3 3R1 – 2R2  
c) R5 4R1 – 2(R2 R4)  
d) R1 Input/4 + (bù 1 của R3)/2  
e) Output (bù 2 của R1) + (bù 2 của R2)  
f) R5 16R1 + 8R2 – 4R3–2R4  
2. Hãy cho biết dung lượng bộ nhớ lớn nhất (tính theo byte và word) mà CPU có thể quản lý được nếu nó có:  
a) Số đường địa chỉ là 18 và số đường dữ liệu là 8.  
b) Số đường địa chỉ là 20 và số đường dữ liệu là 16.  
3. Hãy cho biết giá trị của các cờ trong thanh ghi trạng thái F sau khi Z80 thực thi mỗi lệnh sau (giả sử ban  
đầu tất cả các cờ có trị là 0 trước khi thực thi lệnh)  
a) Cộng 2 số 8 bit: +123 với –31  
b) Cộng 2 số 8 bit: –123 với –5  
c) Cộng 2 số 8 bit: F5H với 0BH  
4. Thiết kế bộ nhớ từ các IC bộ nhớ có sẵn:  
d) Trừ 2 số 8 bit: 105 với 11  
e) Trừ 2 số 8 bit: –108 với –13  
f) Trừ 2 số 8 bit: –128 với +57  
a) Thiết kế bộ nhớ SRAM 16KB (có đầy đủ các tín hiệu địa chỉ, data, /CS, /OE và /WE) bằng các bộ nhớ:  
i) 2 SRAM 8 KB (213x8). Vẽ sơ đồ kết nối.  
ii) 4 SRAM 4 KB (212x8). Vẽ sơ đồ kết nối.  
iii) 1 SRAM 8 KB (213x8) và 2 SRAM 4 KB (212x8).. Vẽ sơ đồ kết nối.  
iv) 8 SRAM 2 KB (212x8). Vẽ sơ đồ kết nối.  
b) Thiết kế module ROM 64K x 8 từ ROM 16K x 32  
5. Cho trước vùng bộ nhớ có nội dung sau:  
Địa chì  
Nội dung  
1000H  
1001H  
1002H  
1003H  
B6H  
14H  
32H  
D4H  
a) Hãy tìm giá trị (số nguyên có dấu) của các biến 2-byte X (bắt đầu từ địa chì 1000H) và Y (bắt đầu từ  
địa chì 1000H) nếu sắp xếp thứ tự byte trong bộ nhớ theo: i) little endian và ii) big endian.  
b) Hãy tìm giá trị (số nguyên có dấu) của các biến 4-byte Z (bắt đầu từ địa chì 1000H) nếu sắp xếp thứ tự  
byte trong bộ nhớ theo: i) little endian và ii) big endian.  
6. Cho trước các mạch giải mã địa chỉ bộ nhớ sau:  
Hình A  
Hình B  
a) Hãy cho biết bộ nhớ trong các hình trên là RAM hay ROM?  
b) Tìm dải địa chỉ của bộ nhớ trong các mạch trên.  
c) Thiết kế mạch giải mã địa chỉ của hình A để cho bộ nhớ này có địa chỉ đầu là D000H.  
7. Xét 1 hệ VXL dùng CPU có 8 đường dữ liệu và 16 đường địa chỉ. Hệ này dùng 1 ROM 8K x 8 và 2  
SRAM 8K x8 với bảng bộ nhớ sau:  
ROM: 0000H–1FFFH  
SRAM 1: 2000H–3FFFH  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 1/6  
SRAM 2: 4000H–5FFFH  
Hãy thiết kế mạch giải mã địa chi theo: a) giải mã toàn phần; b) giải mã một phần  
8. Cho mạch giải mã địa chỉ (của hệ thống dùng vi xử lý có 20 đường địa chỉ A0..A19) như hình vẽ.  
a) Xác định vùng địa chỉ của các ngõ ra /Yi của IC giải mã  
b) Từ mạch giải mã trên, sử dụng thêm các cổng logic cần thiết để tạo ra các tín hiệu chọn chip /CS0  
(32K), /CS1(4K), /CS2 (2K) (giải mã đầy đủ). Vẽ hình trực tiếp lên mạch giải mã phía trên  
c) Hệ vi xử lý có bus địa chỉ dành cho ngoại vi là A0 ÷ A7, ngoại vi có tín hiệu chọn cổng /CS tích cực  
thấp; sử dụng cổng logic thiết kế mạch giải mã địa chỉ cho tín hiệu chọn ngoại vi /CS có địa chỉ C8H ÷  
CFH.  
9. Xét hệ thống dùng VXL Z80 với mạch giải mã địa chỉ thiết bị I/O ở hình sau:  
a) Hãy cho biết các PORT 1 và PORT 2 đóng vai trò gì? (cổng xuất hay nhập)  
b) Tìm địa chỉ của các PORT 1 và PORT 2. Viết các lệnh Z80 để có thể đọc vào hay xuất ra qua các chân  
IO của mạch.  
10. Định địa chỉ trong VXL Z80  
a) Lệnh nhảy JP NEXT có mã máy chứa trong bộ nhớ chương trình lần lượt là C3H, D4H, 25H. Như  
vậy nhãn NEXT có địa chỉ là bao nhiêu? Tại sao?  
b) Lệnh nhảy JR NEXT có mã máy chứa trong bộ nhớ chương trình lần lượt là 18H, 28H. Nếu lệnh này  
bắt đầu ở địa chỉ 0120H, như vậy nhãn NEXT có địa chỉ là bao nhiêu? Tại sao?  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 2/6  
c) Lệnh nhảy JR NEXT có mã máy chứa trong bộ nhớ chương trình lần lượt là 18H, F5H. Nếu lệnh này  
bắt đầu ở địa chỉ 0125H, như vậy nhãn NEXT có địa chỉ là bao nhiêu? Tại sao?  
d) Lệnh CALL CTCON được bắt đầu từ địa chỉ 2010H, nhãn CTCON có địa chỉ là 50E7H. Hãy điền các  
byte mã máy của lệnh này vào bộ nhớ. Giải thích.  
11. Hãy đánh dấu vào ô nào có mã điều kiện (CC) làm cho đoạn chương trình sau nhảy đến nhãn CONT.  
Chuỗi lệnh  
A, –21  
12  
C
NC  
Z
NZ  
P
M
PE  
PO  
LD  
CP  
JP  
CC, CONT  
Giải thích.  
12. Hãy điền giá trị của thanh ghi A và B và các cờ sau khi CPU thực thi mỗi lệnh trong bảng sau. Các lệnh  
được thực thi tuần tự.  
Chương trình  
Giá trị đầu   
A
78H  
$20  
B
C9H  
D
DAH  
H
0
1
C
1
1
P/V  
0
Z
0
S
0
ADC  
ADC  
SUB  
A, B  
A, D  
18H  
$FA  
1
$42  
Giải thuật 1  
Giải thuật 2  
Giải thuật 3  
13. Hãy viết chương trình Z80 cho giải thuật 1. Cho A lần lượt giá trị 0, 1, 2, 3 và kiểm tra giá trị E sau khi  
thực thi chương trình này. Từ đó suy ra chức năng của giải thuật này là gì?  
14. Hãy viết chương trình Z80 cho giải thuật 2. Cho A = 6 và B =9, kiểm tra giá trị A và B sau khi thực thi  
chương trình này. Từ đó suy ra chức năng của giải thuật này là gì?  
15. Hãy viết chương trình con Z80 cho giải thuật 3. Cho A = 7 và B = 2, kiểm tra giá trị A và B sau khi thực  
thi chương trình này. Từ đó suy ra chức năng của giải thuật này là gì?  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 3/6  
16. Khảo sát VXL Z80:  
a) Cho đoạn chương trình Z80, cho biết 3 lệnh đầu tiên trong vòng lặp LOOP có các phương pháp định  
địa chỉ nào?  
Đoạn chương trình  
Phương pháp định địa chỉ  
LD  
LD  
LD  
BIT 7, A  
JR  
B, 0  
IX, TABLE  
A, (IX + 0)  
LOOP:  
……………………………………………………………  
…………………………………………………………....  
……………………………………………………………  
NZ, EXIT  
INC IX  
INC  
JR  
B
LOOP  
EXIT:  
HALT  
TABLE:  
DEFB 20H  
DEFB 45H  
DEFB 90H  
DEFB 0FH  
DEFB 0B0H  
b) Khi thực hiện xong đoạn chương trình trên thì nội dung của thanh ghi A và B là bao nhiêu? (Giải thích  
ngắn gọn)  
c) Hãy viết mã máy cho các lệnh JR NZ, EXIT và JR LOOP nếu chương trình bắt đầu từ địa chỉ 0000H.  
17. Trước khi thực thi đoạn chương trình Z80 sau, giả sử các nội dung thanh ghi:  
HL = 0200H, IX = 0203H, BC = 1234H, DE = 5678H, SP = 0207H  
Bộ nhớ  
SRAM  
B3H  
65H  
90H  
4AH  
FEH  
21H  
04H  
Chương trình  
LD A,(HL)  
LD B, A  
PUSH BC  
LD A, (IX + 3)  
LD E, A  
PUSH DE  
LD A, (IX–3)  
POP BC  
Địa chỉ  
$0200  
$0201  
$0202  
$0203  
$0204  
$0205  
$0206  
Trị mới  
$80  
$90  
LD (0200H), DE  
Hãy ghi các giá trị của thanh ghi hoặc ô nhớ nếu có thay đổi sau khi Z80 thực thi mỗi lệnh. Các lệnh được thực  
thi tuần tự.  
18.  
a) Sau khi thực hiện lệnh CALL CTCON, chương trình Z80 chuyển tới  
CTCON thực hiện các lệnh trong chương trình con cho tới khi thực  
hiện lệnh RET (trước lệnh này thanh ghi SP có nội dung là 8000H; 2 ô  
nhớ đỉnh vùng stack (8000H) = 60H và (8001H) = 2AH). Hãy cho biết  
sau khi thực hiện lệnh RET, nội dung thanh ghi PC và SP là bao nhiêu? CTCON:  
(giải thích ngắn gọn). Như vậy lệnh gọi chương trình con CALL  
………..  
CALL CTCON  
………..  
………..  
………..  
CTCON được chứa trong ô nhớ có địa chỉ đầu là bao nhiêu? Tại sao?  
………..  
RET  
b) Viết chương trình con NHAN có nhiêm vụ nhân nội dung thanh ghi B với giá trị 13; kết quả (giả sử không  
vượt quá 8 bit) xuất ra ngoại vi có địa chỉ là nội dung của thanh ghi C.  
Chú ý: chương trình không được sử dụng vòng lặp mà sử dụng tính chất của số nhị phân  
B x 13 = B x (8 + 4 + 1) = B x 8 + B x 4 + B  
19. a) Leänh CALL CTCON ñöôïc chöùa töø oâ nhôù coù ñòa chæ laø 40F2H, nhaõn CTCON coù ñòa chæ laø A50EH.  
Thanh ghi SP coù noäi dung laø 2000H. Khi thöïc hieän chöông trình naøy thì noäi dung cuûa thanh ghi PC, SP vaø 2  
oâ nhôù ñònh vuøng stack coù ñòa chæ (SP) vaø (SP+1) coù giaù trò laø bao nhieâu.  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 4/6  
b) Cho chương trình con có tên là SO_BIT1 có nhiệm vụ tính tổng số bit 1 có trong thanh ghi D và kết quả cất  
vào thanh ghi E. Viết đoạn chương trình sử dụng chương trình con trên để thực hiện việc kiểm tra nội dung  
chuỗi dữ liệu có địa chỉ đầu là 6000H, chiều dài của khối dữ liệu là nội dung ô nhớ 5FFFH (giả sử khác 0);  
xem có bao nhiêu ô nhớ có số bit 0 và bit 1 bằng nhau, đồng thời xóa các ô nhớ đó. Sau đó cất số ô nhớ đã xóa  
vào ô nhớ có địa chỉ 5FFEH.  
20. a) Viết chương trình con COMP8B với bảng hoạt động sau:  
Nếu  
Thực hiện  
D = 4 x A + B/4  
D = A / 8  
A < B  
A = B  
A > B  
D = A – B + 12  
b) Viết đoạn chương trình đọc 1 byte từ địa chỉ 0200H và cất vào A, đọc 1 byte từ địa chỉ 0201H và cất vào B.  
Gọi chương trình con COM8B, sau đó cất D vào ô nhớ có địa chỉ 0202H.  
21. a) Viết chương trình cộng dồn các byte của một mảng, khi có nhớ thì dừng việc cộng và trừ bớt byte vừa  
mới cộng vào. Xuất kết quả ra cổng xuất được định nghĩa với nhãn OUTPUT1.  
TD: Table: DB 89H, 32H, 2BH, 7AH, 0B5H, 68H, 2FH,…  
b) Sửa lại chương trình trên để hiển thị thêm số byte được cộng vào (không kể byte bị loại trừ ra khi có nhớ),  
xuất ra cổng xuất được định nghĩa với nhãn OUTPUT2.  
22. Tìm các lỗi trong các đoạn chương trình sau và hiệu chỉnh cho đúng như yêu cầu:  
a) Cộng 2 số 1 byte (06H và 52H) và xuất tổng ra PORT7  
LD  
LD  
B, 06H  
C, 52H  
ADD A, B  
ADD A, C  
OUT (07H), A  
HALT  
b) Cộng 5 byte trong bộ nhớ bắt đầu từ 2050H, biết tổng < 255.  
SUB  
LD  
A
HL, 2050H  
B, 05H  
LOOP: LD  
ADD A, (HL)  
INC  
HL  
B
NZ, LOOP  
DEC  
JR  
HALT  
c) Sao chép 100H byte dữ liệu từ vùng nhớ có địa chỉ đầu là 2100H đến vùng nhớ có địa chỉ đầu là 2800H  
LD  
LD  
HL, 2100H  
BC, 2800H  
DE, 0100H  
A, (HL)  
(BC), A  
HL  
LD  
NEXT: LD  
LD  
INC  
INC  
BC  
DEC DE  
JP  
NZ, NEXT  
HALT  
23. a) Cho biết nội dung của các thanh ghi BC và SP sau khi thực thi các lệnh sau:  
LD  
LD  
SP, 20F5H  
HL, 2055H  
PUSH HL  
POP BC  
b) Cho biết nội dung của các thanh ghi SP và các ô nhớ 2090H2099H sau khi thực thi các lệnh sau:  
LD  
SP, 209AH  
A
XOR  
LD  
H, A  
LD  
LD  
L, A  
B, 05H  
LOOP: PUSH HL  
DEC  
JP  
B
NZ, LOOP  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 5/6  
c) Đọc đoạn chương trình sau và trả lời các câu hỏi:  
LD  
LD  
LD  
LD  
LD  
OR  
SP, 84F9H  
HL, 8138H  
BC, 0001H  
DE, 235AH  
A, D  
A
PUSH HL  
PUSH AF  
PUSH BC  
. . .  
i) Cho biết nội dung của các ô nhớ 84F8H và 84F7H sau khi thực thi lệnh PUSH HL.  
ii) Nội dung của thanh ghi A và F sau khi thực thi lệnh OR A.  
iii) Nội dung của SP sau khi thực thi lệnh PUSH BC.  
24. a) Viết chương trình con MAX3 có nhiêm vụ tìm số nguyên không dấu lớn nhất trong 3 số nguyên để trong  
các thanh ghi A, B, và C; kết quả số lớn nhất được cất vào thanh ghi D và E=1, 2, hay 3 tương ứng với số lớn  
nhất ở A, B, hay C.  
b) Viết lại chương trình trên tìm số lớn nhất trong 3 số có dấu.  
25. a) Viết chương trình tính tổng các số dương và tổng các số âm của 1 bảng số liệu, kết quả được cất vào bộ  
nhớ tương ứng POS_SUM và NEG_SUM (đã được định nghĩa sẵn, giả sử kết quả không vượt quá biểu diễn  
của số 8 bit có dấu).  
Địa chỉ bắt đầu của bảng được chứa ở địa chỉ BASE. Phần tử đầu của bảng là số byte có trong bảng.  
Thí dụ: 1 bảng có 7 phần tử  
BASE:  
DB 7, 12, 11, –5, 8, –23, –9, 5  
(trong bộ nhớ tại địa chỉ BASE chứa 07H 0CH 0BH FBH 08H E9H F7H 05H)  
Như vậy sau khi chạy xong chương trình này thì tại POSITIVE phải chứa 36 và tại NEGATIVE chứa -37.  
b) Viết lại chương trình trên để tính tổng trị tuyệt đối các số trong bảng và cất vào ô nhớ SUM (đã được  
định nghĩa sẵn, giả sử kết quả không vượt quá biểu diễn của số 8 bit có dấu).  
26. a) Viết chương trình con SUMSQ tính tổng bình phương của 2 ký số BCD trong thanh ghi A và kết quả đặt  
lại vào A. TD: A = 25H A = 22 + 52 = 4 + 25 = 29  
b) Áp dụng chương trình con SUMSQ để tính tổng bình phương của 4 ký số BCD trong cặp thanh ghi BC và  
kết quả cất vào cặp thanh ghi DE. TD: BC=1234H DE = 12 + 22 + 32 + 42 = 1+ 4+ 9+16= 30  
27. Viết chương trình nhân 2 số 8 bit trong bộ nhớ (kết quả cất trong số 16 bit trong bộ nhớ) bằng:  
a) Cộng dồn  
b) Dịch và cộng  
28. Viết chương trình nhân 2 số 16 bit trong bộ nhớ (kết quả cất trong số 32 bit trong bộ nhớ) bằng:  
a) Cộng dồn  
b) Dịch và cộng  
29. Mô phỏng các cổng logic AND, OR, và XOR với ngõ ra là cờ Carry (C) và 8 ngõ vào có trị ở thanh ghi A.  
Viết chương trình con cho mỗi cổng logic.  
30. Viết chương trình điều khiển đèn giao thông với các dạng sáng/tắt giả lập như sau:  
Giả sử có sẵn chương trình con làm trễ 1 giây và thời gian đèn xanh sáng là 6 giây, vàng sáng là 2 giây và đỏ  
sáng là 8 giây. Hãy vẽ thêm mạch giao tiếp LED và cổng xuất này có địa chỉ là 8000H (1: đèn sáng).  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 6/6  
pdf 6 trang myanh 26400 Free
Bạn đang xem tài liệu "Các bài tập ôn kiểm tra giữa học kỳ 2 môn Vi xử lý - Năm học 2013-2014 - Hồ Trung Mỹ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfcac_bai_tap_on_kiem_tra_giua_hoc_ky_2_mon_vi_xu_ly_nam_hoc_2.pdf