ĐHBK Tp HCM – Khoa ĐĐT–BMĐT Môn học: Vi Xử Lý GVPT: Hồ Trung Mỹ Các tập ôn kiểm tra học kỳ – NH:2011-2012 Cho mạch giải mã địa hình vẽ A14 A15 A16 A(LSB) B C A19 A18 A17 G1 G2A G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 a) Xác định vùng địa ngõ /Yi IC giải mã b) Từ mạch giải mã trên, sử dụng thêm cổng logic cần thiết để tạo 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 c) Chỉ sử dụng cổng logic, thiết kế mạch giải mã địa 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 2780H ÷ 27FFH (vi xử lý có 16 bit địa A0, , A15 ) Khảo sát VXL Z80: a) Lệnh nhảy JP LOOP có mã máy (Opcode) chứa nhớ chương trình C3H, 5DH, 3CH Như nhãn LOOP có địa bao nhiêu? Tại sao? b) Các nhớ nhớ có nội dung hình vẽ Với SP = C02AH , sau thực lệnh POP DE, nội dung ghi D, E bao nhiêu? Giải thích Địa Nội dung Chú ý: Hiệu ứng lệnh POP HL sau C028H C029H C02AH C02BH C02CH L (SP) SP SP + H (SP) SP SP + 94H D5H 50H 6AH 3FH c) Cho đoạn chương trình, cờ CY = nội dung ô nhớ câu b Khi thực xong đoạn chương trình nội dung ghi A B bao nhiêu? (Giải thích ngắn gọn) LD B, LD A, 0A5H LD HL, 0C028H LOOP: ADC A, (HL) INC HL DJNZ LOOP HALT Viết chương trình hợp ngữ Z80: VXL–BT ơn kiểm tra học kỳ – Trang CuuDuongThanCong.com https://fb.com/tailieudientucntt a) Viết chương trình TINH có nhiệm vụ kiểm tra nội dung ghi B có lớn nội dung ghi C hay không? Nếu lấy nội dung ghi B trừ nội dung ghi C; ngược lại lấy nội dung ghi C trừ ghi B Kết cất vào ghi D b) Cho trước chương trình có tên CHIA có nhiệm vụ lấy nội dung ghi D chia cho nội dung ghi E Kết phần nguyên sau chia (thương số) cất vào ghi D phần dư cất vào ghi E Sử dụng chương trình CHIA viết chương trình để thực việc kiểm tra chuỗi liệu chứa RAM có địa đầu A000H, chiều dài khối liệu nội dung ô nhớ có địa 9FFFH (giả sử khác 0) Chương trình có nhiệm vụ kiểm tra xem có nhớ mà nội dung chia hết cho 15 Kết đếm lưu vào nhớ có địa 9FFEH Cho mạch giải mã địa hình vẽ A14 A15 A16 A19 A17 A18 A(LSB) B C G1 G2A G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 a) Xác định vùng địa ngõ /Yi b) Từ mạch giải mã trên, sử dụng thêm cổng logic cần thiết để tạo tín hiệu chọn chip /CS0 (8K), /CS1(16K), /CS2 (4K) có địa liên tiếp có địa đầu địa đầu ngõ /Y3 (vẽ hình trực tiếp mạch giải mã) c) Hệ vi xử lý có bus địa dành cho ngoại vi 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 cho tín hiệu chọn ngoại vi /CS có địa B8H ÷ BFH Khảo sát VXL Z80: a) Cho đoạn chương trình Z80, cho biết lệnh vòng lặp LOOP có phương pháp định địa nào? Đoạn chương trình Phương pháp định địa LD B, LD IX, TABLE …………………………………………………………… LOOP: LD A, (IX + 0) ………………………………………………………… BIT 7, A …………………………………………………………… JR NZ, EXIT INC IX INC B JR LOOP EXIT: HALT TABLE: DEFB 20H DEFB 45H DEFB 90H DEFB 0FH DEFB 0B0H b) Khi thực xong đoạn chương trình nội dung ghi A B bao nhiêu? (Giải thích ngắn gọn) VXL–BT ôn kiểm tra học kỳ – Trang CuuDuongThanCong.com https://fb.com/tailieudientucntt a) Sau thực lệnh CALL CTCON, chương trình Z80 chuyển tới CTCON thực lệnh chương trình thực lệnh RET (trước lệnh ghi SP có nội dung 8000H; nhớ đỉnh vùng stack (8000H) = 60H (8001H) = 2AH) Hãy cho biết sau thực lệnh RET, nội dung ghi PC SP bao nhiêu? (giải thích ngắn gọn) Như lệnh gọi chương trình CALL CTCON chứa nhớ có địa đầu bao nhiêu? (Tại sao?) ……… CALL CTCON ……… CTCON: ……… ……… ……… RET b) Viết chương trình NHAN có nhiêm vụ nhân nội dung ghi B với giá trị 13; kết (giả sử không vượt bit) xuất ngoại vi có địa nội dung ghi C Chú ý: chương trình khơng sử dụng vịng lặp mà sử dụng tính chất số nhị phân B x 13 = B x (8 + + 1) = B x + B x + B a) Leänh CALL CTCON chứa từ ô nhớ có địa 40F2H, nhãn CTCON có địa A50EH Thanh ghi SP có nội dung 2000H Khi thực chương trình nội dung ghi PC, SP ô nhớ định vùng stack có địa (SP) (SP+1) có giá trị b) Cho chương trình có tên SO_BIT1 có nhiệm vụ tính tổng số bit có ghi D kết cất vào ghi E Viết đoạn chương trình sử dụng chương trình để thực việc kiểm tra nội dung chuỗi liệu có địa đầu 6000H, chiều dài khối liệu nội dung ô nhớ 5FFFH (giả sử khác 0); xem có nhớ có số bit bit nhau, đồng thời xóa ô nhớ Sau cất số ô nhớ xóa vào nhớ có địa 5FFEH Cho mạch phân vùng nhớ sử dụng IC74138 hình veõ A14 A13 A12 A18 A17 A16 A15 A19 C B A(LSB) G1 G2A G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 a) Xác định vùng địa ngõ /Yi IC giải mã b) Từ mạch thực việc giải mã cho tín hiệu chọn chip có; tín hiệu chọn chip có địa liên tục có địa đầu địa đầu vùng /Y0 (Vẽ hình trực tiếp mạch xác định vùng địa tín hiệu chọn chip): /CS0 (4K), /CS1(2K), /CS2(8K) c) Hãy thiết kế mạch giải mã địa ngoại vi /IOSEL dùng cổng logic có vùng địa 9AH ÷ 9DH (giải thích ngắn gọn) a) Thiết kế nhớ RAM 8KB (có đầy đủ tín hiệu địa chỉ, data, /CS, /OE /WE) nhớ RAM hình vẽ (Vẽ sơ đồ kết nối) VXL–BT ôn kiểm tra học kỳ – Trang CuuDuongThanCong.com https://fb.com/tailieudientucntt b) Cho đoạn chương trình Z80 sau, tìm mã lệnh đoạn chương trình Đoạn chương trình Mã lệnh (số HEX) LD LD SUB XOR ADC A, 14 B, 6FH B A A, B ……………………………………………………… ……………………………………………………… ……………………………………………………… 10 a) Cho biết nội dung ghi cờ sau thực thi lệnh sau (chỉ ghi trị thay đổi): b) Cho biết nội dung ghi trạng thái cờ sau thực thi lệnh sau (chỉ ghi trị thay đổi) Cổng PORT1 nhận giá trị gì? VXL–BT ơn kiểm tra học kỳ – Trang CuuDuongThanCong.com https://fb.com/tailieudientucntt 11 a) Viết chương trình cộng dồn byte mảng, có nhớ dừng việc cộng trừ bớt byte vừa cộng vào Xuất kết cổng xuất đị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 để hiển thị thêm số byte cộng vào (khơng kể byte bị loại trừ có nhớ), xuất cổng xuất định nghĩa với nhãn OUTPUT2 12 Tìm lỗi đoạn chương trình sau hiệu chỉnh cho yêu cầu: a) Cộng số byte (06H 52H) xuất tổng PORT7 LD LD ADD ADD OUT HALT B, 06H C, 52H A, B A, C (07H), A b) Cộng byte nhớ 2050H, biết tổng < 255 SUB LD LOOP: LD ADD INC DEC JR HALT A HL, 2050H B, 05H A, (HL) HL B NZ, LOOP c) Sao chép 100H byte liệu từ vùng nhớ có địa đầu 2100H đến vùng nhớ có địa đầu 2800H LD LD LD NEXT: LD LD INC INC DEC JP HALT HL, 2100H BC, 2800H DE, 0100H A, (HL) (BC), A HL BC DE NZ, NEXT 13 a) Cho biết nội dung ghi BC SP sau thực thi lệnh sau: LD LD PUSH POP SP, 20F5H HL, 2055H HL BC b) Cho biết nội dung ghi SP ô nhớ 2090H 2099H sau thực thi lệnh sau: LD XOR LD LD LD LOOP: PUSH DEC JP SP, 209AH A H, A L, A B, 05H HL B NZ, LOOP c) Đọc đoạn chương trình sau trả lời câu hỏi: LD LD LD LD LD OR PUSH PUSH PUSH SP, 84F9H HL, 8138H BC, 0001H DE, 235AH A, D A HL AF BC VXL–BT ôn kiểm tra học kỳ – Trang CuuDuongThanCong.com https://fb.com/tailieudientucntt i) Cho biết nội dung ô nhớ 84F8H 84F7H sau thực thi lệnh PUSH HL ii) Nội dung ghi A F sau thực thi lệnh OR A iii) Nội dung SP sau thực thi lệnh PUSH BC 14 a) Viết chương trình MAX3 có nhiêm vụ tìm số ngun khơng dấu lớn số nguyên để ghi A, B, C; kết số lớn cất vào ghi D E=1, 2, hay tương ứng với số lớn A, B, hay C b) Viết lại chương trình tìm số lớn số có dấu 15 a) Viết chương trình tính tổng số dương tổng số âm bảng số liệu, kết cất vào nhớ tương ứng POS_SUM NEG_SUM (đã định nghĩa sẵn, giả sử kết không vượt biểu diễn số bit có dấu) Địa bắt đầu bảng chứa địa BASE Phần tử đầu bảng số byte có bảng Thí dụ: bảng có phần tử BASE: DB 7, 12, 11, –5, 8, –23, –9, (trong nhớ địa BASE chứa 07H 0CH 0BH FBH 08H E9H F7H 05H) Như sau chạy xong chương trình POSITIVE phải chứa 36 NEGATIVE chứa -37 b) Viết lại chương trình để tính tổng trị tuyệt đối số bảng cất vào ô nhớ SUM (đã định nghĩa sẵn, giả sử kết không vượt biểu diễn số bit có dấu) 16 a) Viết chương trình SUMSQ tính tổng bình phương ký số BCD ghi A kết đặt lại vào A TD: A = 25H A = 22 + 52 = + 25 = 29 b) Áp dụng chương trình SUMSQ để tính tổng bình phương ký số BCD cặp ghi BC kết cất vào cặp ghi DE TD: BC=1234H DE = 12 + 22 + 32 + 42 = 1+ 4+ 9+16= 30 17 Viết chương trình nhân số bit nhớ (kết cất số 16 bit nhớ) bằng: a) Cộng dồn b) Dịch cộng 18 Viết chương trình nhân số 16 bit nhớ (kết cất số 32 bit nhớ) bằng: a) Cộng dồn b) Dịch cộng 19 Mô cổng logic AND, OR, XOR với ngõ cờ Carry (C) ngõ vào có trị ghi A Viết chương trình cho cổng logic 20 Viết chương trình điều khiển đèn giao thông với dạng sáng/tắt giả lập sau: Giả sử có sẵn chương trình làm trễ giây thời gian đèn xanh sáng giây, vàng sáng giây đỏ sáng giây Hãy vẽ thêm mạch giao tiếp LED cổng xuất có địa 8000H (1: đèn sáng) VXL–BT ôn kiểm tra học kỳ – Trang CuuDuongThanCong.com https://fb.com/tailieudientucntt ... 0CH 0BH FBH 08H E9H F7H 05H) Như sau chạy xong chương trình POSITIVE phải chứa 36 NEGATIVE chứa -3 7 b) Viết lại chương trình để tính tổng trị tuyệt đối số bảng cất vào ô nhớ SUM (đã định nghĩa