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 2011-2012 - 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:2011-2012  
1. Cho mạch giải mã địa chỉ như hình vẽ.  
A14  
A15  
A16  
Y0  
Y1  
Y2  
Y3  
Y4  
Y5  
Y6  
Y7  
A(LSB)  
B
C
A19  
A18  
A17  
G1  
G2A  
G2B  
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  
(64K), /CS1(8K), /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) Chỉ sử dụng cổng logic, thiết kế mạch giải mã địa chỉ ngoại vi có tính chất sau  
- Ngoại vi có tín hiệu chọn cổng SEL tích cực cao  
- Có địa chỉ 2780H ÷ 27FFH (vi xử lý có 16 bit địa chỉ A0, .., A15 )  
2. Khảo sát VXL Z80:  
a) Lệnh nhảy JP LOOP có mã máy (Opcode) chứa trong bộ nhớ chương trình lần lượt là C3H, 5DH,  
3CH. Như vậy nhãn LOOP có địa chỉ là bao nhiêu? Tại sao?  
b) Các ô nhớ của bộ nhớ có nội dung như hình vẽ. Với SP = C02AH , nếu sau đó thực hiện lệnh POP DE,  
thì nội dung của các thanh ghi D, E là bao nhiêu? Giải thích.  
Địa chỉ Nội dung  
Chú ý: Hiệu ứng của lệnh POP HL như sau  
L (SP)  
SP SP + 1  
H (SP)  
C028H  
C029H  
C02AH  
C02BH  
C02CH  
94H  
D5H  
50H  
6AH  
3FH  
SP SP + 1  
c) Cho đoạn chương trình, cờ CY = 0 và nội dung các ô nhớ như câu b. Khi thực hiện xong đoạn chương  
trình thì nội dung của thanh ghi A và B là bao nhiêu? (Giải thích ngắn gọn)  
LD  
LD  
LD  
B, 3  
A, 0A5H  
HL, 0C028H  
LOOP:  
ADC A, (HL)  
INC HL  
DJNZ LOOP  
HALT  
3. Viết chương trình bằng hợp ngữ Z80:  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 1  
a) Viết chương trình con TINH có nhiệm vụ kiểm tra nội dung thanh ghi B có lớn hơn hoặc bằng nội  
dung thanh ghi C hay không? Nếu đúng thì lấy nội dung thanh ghi B trừ nội dung thanh ghi C; ngược  
lại thì lấy nội dung thanh ghi C trừ thanh ghi B. Kết quả cất vào thanh ghi D.  
b) Cho trước 1 chương trình con có tên là CHIA có nhiệm vụ lấy nội dung thanh ghi D chia cho nội dung  
thanh ghi E. Kết quả phần nguyên sau khi chia (thương số) cất vào thanh ghi D và phần dư cất vào  
thanh ghi E. Sử dụng chương trình con CHIA viết chương trình để thực hiện việc kiểm tra chuỗi dữ  
liệu chứa trong RAM có địa chỉ đầu là A000H, chiều dài của khối dữ liệu là nội dung ô nhớ có địa chỉ  
9FFFH (giả sử khác 0). Chương trình có nhiệm vụ kiểm tra xem có bao nhiêu ô nhớ mà nội dung của  
nó chia hết cho 15. Kết quả đếm được lưu vào ô nhớ có địa chỉ 9FFEH.  
4. Cho mạch giải mã địa chỉ như hình vẽ.  
A(LSB)  
B
C
A14  
A15  
A16  
Y0  
Y1  
Y2  
Y3  
Y4  
Y5  
Y6  
Y7  
A19  
A17  
G1  
G2A  
G2B  
A18  
a) Xác định các vùng địa chỉ của các ngõ ra /Yi  
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  
(8K), /CS1(16K), /CS2 (4K) có địa chỉ liên tiếp nhau và có địa chỉ đầu là địa chỉ đầu của ngõ ra  
/Y3 (vẽ hình trực tiếp trên mạch giải mã).  
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ỉ B8H ÷ BFH.  
5. 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)  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 2  
6.  
………..  
CALL CTCON  
………..  
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? (giải thích ngắn gọn). Như  
vậy lệnh gọi chương trình con CALL CTCON được chứa  
trong ô nhớ có địa chỉ đầu là bao nhiêu? (Tại sao?)  
………..  
………..  
CTCON:  
………..  
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  
7. 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.  
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.  
8. Cho maïch phaân vuøng boä nhôù söû duïng IC74138 nhö hình veõ.  
A14  
A13  
A12  
Y0  
Y1  
Y2  
Y3  
Y4  
Y5  
Y6  
Y7  
C
B
A(LSB)  
A18  
A17  
G1  
G2A  
G2B  
A19  
A16  
A15  
a) Xaùc ñònh caùc vuøng ñòa chæ caùc ngoõ ra /Yi cuûa IC giaûi maõ  
b) Töø maïch treân thöïc hieän vieäc giaûi maõ cho caùc tín hieäu choïn chip coù; caùc tín hieäu choïn chip naøy coù  
ñòa chæ lieân tuïc nhau vaø coù ñòa chæ ñaàu laø ñòa chæ ñaàu cuûa vuøng /Y0 (Veõ hình tröïc tieáp treân maïch vaø  
xaùc ñònh vuøng ñòa chæ cuûa moãi tín hieäu choïn chip): /CS0 (4K), /CS1(2K), /CS2(8K)  
c) Haõy thieát keá maïch giaûi maõ ñòa chæ ngoaïi vi /IOSEL duøng coång logic coù vuøng ñòa chæ 9AH ÷ 9DH  
(giaûi thích ngaén goïn).  
9.  
a) Thiết kế bộ nhớ RAM 8KB (có đầy đủ các tín hiệu địa chỉ, data, /CS, /OE và /WE) bằng các bộ nhớ  
RAM như hình vẽ. (Vẽ sơ đồ kết nối)  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 3  
b) Cho ñoaïn chöông trình Z80 nhö sau, haõy tìm maõ leänh cuûa ñoaïn chöông trình naøy  
Ñoaïn chöông trình  
Maõ leänh (soá HEX)  
LD  
A, 14  
B, 6FH  
B
..............................................  
……………………………………………………….  
……………………………………………………….  
……………………………………………………….  
LD  
SUB  
XOR  
ADC  
A
A, B  
10. a) Cho biết nội dung các thanh ghi và các cờ sau khi thực thi các lệnh sau (chỉ ghi các trị thay đổi):  
b) Cho biết nội dung các thanh ghi và các trạng thái cờ sau khi thực thi các lệnh sau (chỉ ghi các trị  
thay đổi). Cổng PORT1 nhận giá trị gì?  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 4  
11. 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.  
12. 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  
13. 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  
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  
. . .  
VXL–BT ôn kiểm tra giữa học kỳ – Trang 5  
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.  
14. 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.  
15. 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).  
16. 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  
17. 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  
18. 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  
19. 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.  
20. 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  
pdf 6 trang myanh 21220 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 2011-2012 - 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