Đề thi vi xử lý có hướng dẫn giải

12 2.6K 9
Đề thi vi xử lý có hướng dẫn giải

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đề thi vi xử lý có hướng dẫn giải

ĐHBK Tp HCM – Khoa ĐĐT–BMĐT GVPT: Hồ Trung Mỹ Vi xử – AY1213-S2 Đáp án của kiểm tra tại lớp đợt 1 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) R5  4R1 – 2(R2 AND R4) b) R3  R1/2 + (bù 1 của R2)/4 BG. nhiều cách giải loại bài này: Cách 1: Không biến đổi biểu thức a) Từ điểu khiển Các tác vụ Chú thích SELA SELB SELD OPR R5  R1 + R1 R5 = 2R1 001 001 101 00010 R5  R5 + R5 R5 = 4R1 101 101 101 00010 R3  R2 AND R4 R3 = R2 And R4 010 100 011 01000 R3  R3 + R3 R3 = 2(R2 And R4) 011 011 011 00010 R5  R5 - R3 R5 = 4R1 - 2(R2 And R4) 101 011 101 00101 b) Từ điểu khiển Các tác vụ Chú thích S ELA S ELB SELD O P R R3  SHR R1 R5=R1/2 (dịch phải=chia 2) 001 000 011 10000 R4  COM R2 R4 = bù 1 của R2 010 000 100 01110 R 4  SH R R4 R 4 = (bù 1 c ủ a R2)/2 1 0 0 000 100 1 0 000 R4  SHR R4 R4 = (bù 1 của R2)/4 100 000 100 10000 R3  R3 + R4 R3 = R1/2 + (bù 1 của R2)/4 011 100 011 00010 Cách 2: Biến đổi các biểu thức a) R5  4R1 – 2(R2 AND R4) = 2(2R1 – (R2 AND R4)) b) R3  R1/2 + (bù 1 của R2)/4 = (R1 + (bù 1 của R2)/2)/2 Ta các từ điều khiển sau: (chỉ cần 4 từ điều khiển cho a) hoặc b)) a) Từ điểu khiển Các tác vụ Chú thích SELA SELB SELD OPR R5  R1 + R1 R5 = 2R1 001 001 101 00010 R3  R2 AND R4 R3 = R2 And R4 010 100 011 01000 R5  R5 - R3 R5 = 2 R 1 - ( R2 And R4) 1 01 011 101 0 0101 R5  R5 + R5 R5 = 4R1 - 2(R2 And R4) 101 101 101 00010 b) Từ điểu khiển Các tác vụ Chú thích SELA SELB SELD OPR R4  COM R2 R4 = bù 1 của R2 010 000 100 01110 R4  SHR R4 R4 = (bù 1 của R2)/2 100 000 100 10000 R3  R1 + R4 R3 = R1 + (bù 1 của R2)/2 001 100 011 00010 R3  SHR R3 R3 = R1/2 + (bù 1 của R2)/4 011 000 011 10000 . . . 2. Hãy cho biết dung lượng bộ nhớ lớn nhất (tính theo byte và word) mà CPU thể quản được nếu nó có: a) Số đường địa chỉ là 16 và số đường dữ liệu là 8. b) Số đường địa chỉ là 20 và số đường dữ liệu là 16. BG. Số đ ư ờng địa chỉ Số đ ư ờng dữ liệu Dung lượng bộ nhớ lớn nhất mà CPU thể quản 16 8 2 16 x 8 bits = 2 16 bytes =2 6 x2 10 bytes = 64 KB = 32K words 20 16 2 20 x 16 bits = 2 20 words = 1 M words = 2 MB 3. Hãy cho biết giá trị của các cờ trong thanh ghi trạng thái sau khi CPU 8 bit thực thi lệnh sau (giả sử ban đầu tất cả các cờ trị là 0 trước khi thực thi lệnh) a) Cộng 2 số 8 bit: +126 với +15 b) Cộng 2 số 8 bit: E7H với 09H c) Trừ 2 số 8 bit: +104 với –12 Chú ý: Trình bày các phép tính theo dạng số nhị phân BG. a) Cộng 2 số 8 bit: +126 với +15 0 1 1 1 1 1 1 0 0 Nhớ Cờ Z S C HC OV +126 0 1 1 1 1 1 1 0 Trước 0 0 0 0 0 +15 0 0 0 0 1 1 1 1 Tổng -115 1 0 0 0 1 1 0 1 Sau 0 1 0 1 1 b) Cộng 2 số 8 bit: E7H với 09H 0 0 0 0 1 1 1 1 0 Nhớ Cờ Z S C HC OV E7H 1 1 1 0 0 1 1 1 Trước 0 0 0 0 0 09H 0 0 0 0 1 0 0 1 Tổng F0H 1 1 1 1 0 0 0 0 Sau 0 1 0 1 0 c) Trừ 2 số 8 bit: +104 với –12 1 1 1 1 0 1 0 0 0 Mượn Cờ Z S C HC OV +104 0 1 1 0 1 0 0 0 Trước 0 0 0 0 0 –12 1 1 1 1 0 1 0 0 Hiệu +116 0 1 1 1 0 1 0 0 Sau 0 0 1 0 0 4. Viết mã để tính biểu thức F = A * ( B + C) + D trên các CPU lệnh 2, 1, và 0 địa chỉ. Không sắp xếp lại biểu thức và khi tính toán không làm thay đổi các biến A, B, C, và D. BG. CPU lệnh 2 địa chỉ CPU l ệ n h 1 đ ị a ch ỉ C PU lệnh 0 địa ch ỉ MOV R2, B ADD R2, C MOV R1, A MUL R1, R2 ADD R1, D MOV F, R1 L OAD B ADD C STORE T LOAD A MUL T ADD D STORE F P USH A PUSH B PUSH C ADD MUL PUSH D ADD POP F + + – ĐHBK Tp HCM – Khoa ĐĐT–BMĐT GVPT: Hồ Trung Mỹ Vi xử – AY1213-S2 Đáp án của Kiểm tra tại lớp đợt 2 Thời gian làm bài: 30 phút (Cho mở TL) 1. (2 đ) Vẽ dạng sóng của truyền dữ liệu nối tiếp bất đồng bộ khi truyền 1 byte 4BH với LSB được truyền đi trước cho các trường hợp sau: (nếu biết tốc độ truyền là 2400 bps) a) Dữ liệu 7 bit, không parity và 1 bit stop. b) Dữ liệu 8 bit, parity lẻ và 1 bit stop. BG. 4BH = 0100 1011 2 Tốc độ baud = 2400 bps => Thời gian cho 1 bit T = 1/2400 = 0.417 ms a) Dữ liệu 7 bit, không parity và 1 bit stop: b) Dữ liệu 8 bit, parity lẻ và 1 bit stop: 2. (3 đ) Thiết kế ROM 3K x 8 từ các chip ROM 1K x 4 BG. 3. (5 đ) Hãy tìm dải địa chỉ của tất cả các tín hiệu /CS trong mạch sau: BG. A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Chọn CS Dải địa chỉ 1 1 1 X X X X X X X X X X X X X \CS1 E000-FFFF 1 0 0 0 0 0 X X X X X X X X X X \CS2 8000-83FF 1 0 0 0 0 1 X X X X X X X X X X \CS3 8400-87FF 1 0 0 0 1 0 X X X X X X X X X X \CS4 8800-8BFF 1 0 0 0 1 1 X X X X X X X X X X \CS5 8C00-8FFF 1 0 0 1 0 0 X XXXXXXXXX \CS6 9000-97FF 1 0 0 1 0 1 X XXXXXXXXX 1 0 0 1 1 0 0 0 X X X X X X X X \CS7 9800-98FF 1 0 0 1 1 0 0 1 X X X X X X X X \CS8 9900-99FF \CS9 luôn luôn là 1 (vì ngõ ra của giải mã 139 tối đa 1 ngõ ra là 0) => không dải địa chỉ cho \CS9 ĐHBK Tp HCM – Khoa ĐĐT–BMĐT GVPT: Hồ Trung Mỹ Vi xử – AY1213-S2 – Đáp án của Kiểm tra tại lớp đợt 3 Thời gian làm bài: 30 phút (Cho mở TL) 1. (2 đ) Hãy cho biết cách định địa chỉ của mỗi toán hạng với mỗi lệnh sau: LD B, 3 LD A, 0A5H LD HL, 0C028H LOOP: ADC A, (HL) INC HL DJNZ LOOP BG. Lệnh Cách định địa chỉ Toán hạng 1 Toán hạng 2 LD B, 3 Thanh ghi Tức thời LD A, 0A5H Thanh ghi Tức thời LD HL, 0C028H Thanh ghi Tức thời mở rộng LOOP: ADC A, (HL) Thanh ghi Gián tiếp INC HL Thanh ghi DJNZ LOOP Tương đối 2. (6 đ) Hãy viết vài lệnh Z80 để thực hiện các công việc sau: ( PORT1 EQU 07H) a) B  39H và D  92H; L  B và (PORT1)  D b) B  47H và C  F2H chỉ dùng 1 lệnh; (2080H)  C và (PORT1)  B. Hãy ghi mã máy cho đoạn chương trình này và giả sử chúng bắt đầu từ địa chỉ 2000H. c) D  A và HL  2080H ; (2080H)  D. d) D  A7H và BC  2055H ; (BC)  D. e) Biết (2040H) = 98H và (2070H) = F7H. Viết các lệnh để hoán đổi nội dung của 2 ô nhớ này và viết mã máy cho đoạn đó. BG. a) B  39H và D  92H; L  B và (PORT1)  D LD B,39H LD D,92H LD L,B LD A,D OUT (PORT1),A b) B  47H và C  F2H chỉ dùng 1 lệnh; (2080H)  C và (PORT1)  B. Chương trình Mã máy (hex) Org 2000H LD BC,57F2H LD A,C LD (2080H),A LD A,B OUT (PORT1),A 01 F2 57 79 32 80 20 78 D 3 07 c) D  A và HL  2080H ; (2080H)  D. LD D,A LD HL,2080H LD (HL),D d) D  A7H và BC  2055H ; (BC)  D. LD D,0A7H LD BC,2055H LD A,D LD (BC),A e) Biết (2040H) = 98H và (2070H) = F7H. Viết các lệnh để hoán đổi nội dung của 2 ô nhớ này. Chương trình Mã máy ( hex) LD A,(2040H) LD B,A LD A,(2070H) LD (2040H),A LD A,B LD (2070H),A 3 A 1 0 20 47 3A 70 20 32 40 20 78 32 70 20 3. (2 đ) Cho trước đoạn chương trình sau: LD SP, 1200H LD HL,3456H PUSH HL Hãy vẽ stack với địa chỉ bộ nhớ và nội dung của stack Sau khi Z80 thực thi đoạn chương trình trên,. BG. SP = 11FEH  BộnhớĐịachì  56H 11FEH 34H 11FFH  1200H ĐHBK Tp HCM – Khoa ĐĐT–BMĐT GVPT: Hồ Trung Mỹ Vi xử – AY1213-S2 Đáp án của Kiểm tra tại lớp đợt 4 Thời gian làm bài: 30 phút (Cho mở TL) 1. (4 đ) Hãy viết vài lệnh 8051 để thực hiện các công việc sau: a) Nạp giá trị 1234H vào DPTR bằng 2 cách (nạp thanh ghi 16 bit và nạp thanh ghi 8 bit) b) Nạp trị số 45H vào thanh ghi R0 bằng 2 cách c) Chép nội dung của thanh ghi R2 vào R6 (giả sử ở bank 1) bằng các cách với lệnh PUSH, MOV (4 cách) BG. Cách 1 Cách 2 Cách 3 Cách 4 Cách 5 a) MOV DPTR,#1234H (*) MOV DPH,#12H MOV DPL,#34H b) MOV R0,#45H (*) MOV 0,#45H c) PUSH 10 POP 14 MOV A,R2 MOV R6,A MOV 14,R2 MOV R6,10 MOV 14,10 (*) Chú ý:  Cách “*” là cách hiệu quả nhất! 2. (2 đ) a) Sau đoạn chương trình này, cho biết các địa chỉ bit nào (trong byte được cập nhật) trong vùng nhớ nội 20H đến 2FH nội dung là 1: MOV 27h, #48h MOV R0, #29h MOV @R0, 27h b) Cho biết mã máy sau thực hiện tác vụ gì? 75H, 8AH, E7H BG. a) (27H)= 48H = 0100 1000H  Các địa chỉ bit (hex) nội dung là 1: 3E và 3B (29H)= 48H = 0100 1000H  Các địa chỉ bit (hex) nội dung là 1: 4E và 4B b) Mã lệnh 75H tương ứng với lệnh 3 byte: MOV direct, #data Như vậy 75H 8AH E7H tương ứng với lệnh: MOV 8AH, #0E7H 3. (2 đ) Cho biết các cách định địa chỉ của các toán hạng trong các lệnh sau: ANL C, ACC.1 ADD A, #55 MOV @R1, A MOV P1, 50H BG. Lệnh C ách định địa chỉ của t oán hạng 1 t oán hạng 2 ANL C, ACC.1 Hiểu ngầm Trực tiếp (bit) ADD A, #55 Hiểu ngầm Tức thời MOV @R1,A Gián tiếp Hiểu ngầm MOV P1,50H Trực tiếp Trực tiếp 4. (2 đ) Offset tương đối của lệnh sau là bao nhiêu? a) SJMP AHEAD nếu lệnh này đang ở ô nhớ 0480H và nhãn AHEAD biểu diễn lệnh ở địa chỉ 043AH. b) SJMP BACK nếu lệnh này đang ở ô nhớ A078H và nhãn BACK biểu diễn lệnh ở địa chỉ 9EA8H. BG. Địa chỉ lệnh kế = Địa chỉ lệnh hiện tại + chiều dài lệnh a) b) Địa chỉ nhảy đến: 043AH 9EA8H Địa chỉ lệnh kế: – 0482H – A07AH Hiệu số: FFB8H (-72) FE2EH (-466 < -128) Offset: B8H Vô nghiệm ĐHBK Tp HCM – Khoa ĐĐT–BMĐT GVPT: Hồ Trung Mỹ Vi xử – AY1213-S2 Đáp án của Kiểm tra tại lớp đợt 5 Thời gian làm bài: 30 phút (Cho mở TL) 1) (1 đ) Trước khi thực thi mỗi lệnh sau thì PSW=5FH và A=19H, sau khi thực thi thì PSW và A=? a) RLC A b) RRC A BG. Cho trước PSW = 5FH = 0101 1111B và A = 19H = 0001 1001B trước khi thực thi lệnh a) RLC A A = 0011 0010B = 32H PSW = 0101 1111B = 5FH b) RRC A A = 0000 1100B = 0CH PSW = 1101 1110B = DEH 2) (3 đ) Viết đoạn chương trình 8051 thực hiện công việc sau:  Nếu A < B thì R2  R1 + R0  Nếu A = B thì R2  R1 – R0  Nếu A > B thì R2  A + B BG. CJNE A, B, ANEB AEQB: ; Case: A = B CLR C ; C  0 MOV A, R1 SUBB A, R0 ; A  R1 – R0 – C = R1 – R0 SJMP Continue ANEB: ; Case: A  B JNC AGTB ALTB: ; Case: A < B MOV A, R1 ADD A, R0 ; A  R1 + R0 SJMP Continue AGTB: ; Case: A > B ADD A, B ; A  A + B Continue: MOV R2, A . . . 3) (2 đ) Viết chương trình cài đặt mạch tổ hợp sau: (không biến đổi biểu thức Boole) BG. X EQU P1.7 Y EQU P1.6 Z EQU P1.5 F EQU P1.4 MOV P1,#11100000B LOOP: MOV C, X ORL C, Y ; C = X or Y CPL C ; C = X nor y ANL C,/Z ; C = (X nor Y) and not(Z) CPL C ; C = (X nor Y) nand not(Z) MOV F,C SJMP LOOP 4) (4 đ) Viết chương trình con AND8b thực hiện AND 8 bit của thanh ghi A và kết quả đặt trong cờ C bằng các cách sau: a) dùng các lệnh ANL C, bit và b) dùng lệnh CJNE BG. a) dùng các lệnh ANL C , bit b) dùng lệnh CJNE Cách 1 C ách 2 AND8b: MOV C, ACC.0 ANL C, ACC.1 ANL C, ACC.2 ANL C, ACC.3 ANL C, ACC.4 ANL C, ACC.5 ANL C, ACC.6 ANL C, ACC.7 RET AND8b: MOV R0,#8 SETB C L1: ANL C, ACC.0 RR A DJNZ R0, L1 RET AND8b: CJNE A,#0FFH,KQZ SETB C RET KQZ: CLR C RET [...]...ĐHBK Tp HCM – Khoa ĐĐT–BMĐT GVPT: Hồ Trung Mỹ Vi xử – AY1213-S2 Đáp án của Kiểm tra tại lớp đợt 6 Thời gian làm bài: 30 phút (Cho mở TL) 1 (4 đ) Vi t chương trình tạo sóng vuông 12 KHz với chu kỳ nhiệm vụ 50% ở chân P1.0 Giả sử 8051 dùng XTAL = 12 MHz a Tạo trễ bằng phần mềm b Tạo trễ bằng Timer0... Timer0 Loop: MOV TMOD,#2 MOV TH0,#–41 SETB TR0 JNB TF0, $ CLR TF0 CPL P1.0 SJMP Loop 2 (2 đ) Một thi t kế dùng Timer0 của 8051 để đếm số khách hàng vào tham quan hội chợ, nếu số khách hàng vào đạt đến 10000 thì ngõ ra P1.0 sẽ là 1 Ngõ vào T0 nhận được 1 xung vuông từ mạch cảm biến khi 1 khách hàng đi vào Vi t mã cho đoạn CT này BG SETB CLR MOV MOV MOV SETB JNB CLR CLR SETB SJMP P3.4 ; P3.4 (= T0) is . luôn luôn là 1 (vì ngõ ra của giải mã 139 có tối đa 1 ngõ ra là 0) => không có dải địa chỉ cho CS9 ĐHBK Tp HCM – Khoa ĐĐT–BMĐT GVPT: Hồ Trung Mỹ Vi xử lý – AY1213-S2 – Đáp án của Kiểm. Trung Mỹ Vi xử lý – AY1213-S2 Đáp án của Kiểm tra tại lớp đợt 5 Thời gian làm bài: 30 phút (Cho mở TL) 1) (1 đ) Trước khi thực thi mỗi lệnh sau thì PSW=5FH và A=19H, sau khi thực thi thì. Sau khi Z80 thực thi đoạn chương trình trên,. BG. SP = 11FEH  BộnhớĐịachì  56H 11FEH 34H 11FFH  1200H ĐHBK Tp HCM – Khoa ĐĐT–BMĐT GVPT: Hồ Trung Mỹ Vi xử lý – AY1213-S2

Ngày đăng: 03/04/2014, 22:49

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan