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

Ngân hàng câu hỏi thi vi xử lý

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 (650.54 KB, 10 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA: Kỹ thuật điện tử 1

Mẫu 2

NGÂN HÀNG CÂU HỎI THI TỰ LUẬN
Tên học phần: Kỹ thuật vi xử lý

Mã học phần: ELE 1317

Ngành đào tạo : Điện – Điện tử

Trình độ đào tạo: Đại học

1. Ngân hàng câu hỏi thi
● Câu hỏi loại 1 điểm
Câu hỏi 1.1:
Kể tên 3 loại bus thường thấy trong một hệ vi xử lý? Nêu tóm tắt chức năng của từng loại
bus này ?
Câu hỏi 1.2:
a) Họ vi xử lý ARM7 thuộc kiến trúc nào?
b) Phần lớn các vi xử lý ARM7 thực hiện các tập lệnh nào?
Câu hỏi 1.3:
a) Các bộ vi xử lý ARM thuộc kiến trúc CISC hay RISC?
b) Bộ vi xử lý ARM có tổng cộng bao nhiêu thanh ghi, mỗi thanh ghi có chiều dài bao
nhiêu bit?
Câu hỏi 1.4:
Trong các chế độ hoạt động cơ bản của bộ vi xử lý ARM, các chế độ nào là chế độ ưu
tiên (Privileged mode), chế độ nào là chế độ không ưu tiên (Unprivileged mode), các chế
độ nào là chế độ ngoại lệ (Exception mode), các chế độ nào không phải là chế độ ngoại
lệ?


Câu hỏi 1.5:
a) Trong bộ vi xử lý ARM, chế độ người dùng (User mode) có bao nhiêu thanh ghi? Kể
tên các thanh ghi dùng trong chế độ này?
b) Mỗi chế độ hoạt động cơ bản của bộ vi xử lý ARM đều có một tập con các thanh ghi
riêng có thể truy cập (đúng hay sai)?
Câu hỏi 1.6:
a) Chế độ hệ thống (System mode) và chế độ người dùng (User mode) của bộ vi xử lý ARM
sử dụng cùng tập thanh ghi (đúng hay sai)?
b) Trong thanh ghi trạng thái chương trình của bộ vi xử lý ARM, bit I=1 có ý nghĩa gì, bit
F=1 có ý nghĩa gì?
Câu hỏi 1.7:
Trong thanh ghi trạng thái chương trình của bộ vi xử lý ARM, các bit từ 31-28 có chức
năng gì? Các bít từ 7-0 có chức năng gì?
1


Câu hỏi 1.8:
Việc xử lý ngoại lệ (Exception) trong vi xử lý ARM được điều khiển thông qua việc sử
dụng một vùng bộ nhớ gọi là bảng Vector. Hãy vẽ bảng vector này cùng với các địa chỉ?
Câu hỏi 1.9:
a) Trong vi xử lý ARM, tại sao các truy cập bộ nhớ bắt buộc phải căn chỉnh (align) kích
thước truy cập một cách phù hợp?
b) Ngoại lệ (Exception) nào được sử dụng để phát hiện các truy cập dữ liệu khơng được căn
chỉnh bất hợp lệ?
Câu hỏi 1.10:
Endian có ý nghĩa gì? Bộ vi xử lý ARM7 hỗ trợ các loại hệ thống nhớ Endian nào? Mô
tả sự khác nhau của các loại này? Chế độ mặc định của vi xử lý ARM7 là loại Endian nào?
Câu hỏi 1.11:
a) Trong bộ vi xử lý ARM, các thanh ghi nào nằm trong nhóm “thấp” (Low group), các
thanh ghi nào nằm trong nhóm “cao” (High group) trong tập lệnh Thumb?

b) Trong bộ vi xử lý ARM, tất cả các lệnh Thumb buộc phải căn chỉnh (align) theo biên giới
(boundary) nào?
Câu hỏi 1.12:
a) Khi có reset lõi ARM ở chế độ (mode) và trạng thái (state) nào?
b) Trong thanh ghi trạng thái chương trình, nếu bit T=1 thì lõi ARM hoạt động ở chế độ
nào?
Câu hỏi 1.13:
Nêu các đặc điểm của tập lệnh Thumb?
Câu hỏi 1.14:
Thumb là tập lệnh bao nhiêu bit? Nêu 2 ưu điểm chính của tập lệnh Thumb so với tập
lệnh ARM?
Câu hỏi 1.15:
Nêu các đặc điểm của tập lệnh ARM?
Câu hỏi 1.16:
Để chuyển giữa trạng thái ARM và Thumb ta cần phải sử dụng lệnh nào? Viết cú pháp
của lệnh khi muốn chuyển trạng thái của vi xử lý từ ARM sang Thumb và ngược lại?
Câu hỏi 1.17:
a) Nêu ưu điểm chính của tập lệnh ARM so với tập lệnh Thumb?
b) Lệnh MOVNES R1,R4,ASL #3 thực hiện cái gì?
Câu hỏi 1.18:
Nêu các giai đoạn (stage) trong đường ống (pipeline) của họ ARM7? Giải thích chức
năng của mỗi giai đoạn?
Câu hỏi 1.19:
Mô tả sơ lược cấu trúc của vi điều khiển 8051? Vẽ sơ lược sơ đồ chân của 8051.
Câu hỏi 1.20:
Mô tả tổ chức bộ nhớ của vi điều khiển 8051?
2


Câu hỏi 1.21:

Vi điều khiển 8051 hỗ trợ các chế độ đánh địa chỉ nào? Cho ví dụ ứng với mỗi kiểu đó.
Câu hỏi 1.22:
Viết chương trình cho vi điều khiển 8051 để sao chép giá trị 20H vào ngăn nhớ RAM tại
địa chỉ 30H đến 34H bằng cách sử dụng chế độ đánh địa chỉ trực tiếp.
Câu hỏi 1.23:
Viết chương trình cho vi điều khiển 8051 để sao chép giá trị 20H vào ngăn nhớ RAM tại
địa chỉ 30H đến 32H bằng cách sử dụng chế độ đánh địa chỉ gián tiếp thanh ghi.
Câu hỏi 1.24:
Viết chương trình cho vi điều khiển 8051 để sao chép giá trị 20H vào ngăn nhớ RAM tại
địa chỉ 30H đến 36H bằng cách sử dụng vòng lặp và chế độ đánh địa chỉ gián tiếp thanh ghi.
Câu hỏi 1.25:
Viết đoạn chương trình cho vi điều khiển 8051 để tạo chuỗi xung vuông với độ đầy xung
50% trên bit 2 của cổng 1. Giả sử đã có hàm tạo trễ là DELAY.
Câu hỏi 1.26:
Viết đoạn chương trình cho vi điều khiển 8051 để tạo chuỗi xung vuông với độ đầy xung
75% trên bit 0 của cổng 1. Giả sử đã có hàm tạo trễ là DELAY.
Câu hỏi 1.27:
Mô tả thanh ghi TMOD của vi điều khiển 8051 và chức năng các bit của thanh ghi?
Câu hỏi 1.28:
Mô tả thanh ghi TCON của vi điều khiển 8051 và chức năng các bit của thanh ghi?
Câu hỏi 1.29:
Trình bày các bước lập trình ở chế độ Mode 1 cho bộ đếm trong vi điều khiển 8051?
Câu hỏi 1.30:
Trình bày các bước lập trình ở chế độ Mode 2 cho bộ đếm trong vi điều khiển 8051?
Câu hỏi 1.31:
Với tần số XTAL của vi điều khiển 8051 là 11.0592MHz, hãy tìm giá trị TH1 cần thiết
để có tốc độ baud sau :
a. 9600
Câu hỏi 1.32:


b. 4800

c. 2400

Trình bày các bước lập trình vi điều khiển 8051 để truyền dữ liệu nối tiếp ?
Câu hỏi 1.33:
Trình bày các bước lập trình vi điều khiển 8051 để nhận dữ liệu nối tiếp ?
Câu hỏi 1.34:
Trình bày các loại ngắt của vi điều khiển 8051 và các cờ ngắt tương tứng?
Câu hỏi 1.35:
Mô tả thanh ghi cho phép ngắt IE trong vi điều khiển 8051 và chức năng các bit của thanh
ghi?

3


Câu hỏi 1.36:
Tìm giá trị của thanh ghi IE của vi điều khiển 8051 trong các trường hợp sau đây :
a.
b.
c.
d.

Cho phép ngắt cổng nối tiếp, ngắt Timer1 và ngắt phần cứng ngoài 0.
Cho phép ngắt cổng nối tiếp, ngắt Timer2 và ngắt phần cứng ngoài 1.
Cho phép ngắt Time0 và ngắt phần cứng ngoài 0.
Cấm tất cả các loại ngắt.

● Câu hỏi loại 2 điểm
Câu hỏi 2.1:

Vẽ sơ đồ khối tổng quát của một hệ vi xử lý? Nêu tóm tắt chức năng của các khối chính
trong sơ đồ?
Câu hỏi 2.2:
a. Nêu sự khác nhau giữa bộ vi xử lý CISC và RISC? Cho ví dụ minh họa?
b. Trong vi xử lý ARM, các thanh ghi nào dùng để lưu bộ đếm chương trình (PC) và thanh
ghi kết nối (Link Register)? Thanh ghi r13 thường được dùng để lưu cái gì?
Câu hỏi 2.3:
Bộ vi xử lý ARM có bao nhiêu chế độ hoạt động cơ bản? Kể tên và mơ tả tóm tắt mỗi
chế độ? Chế độ nào truy cập vào ít thanh ghi nhất (nêu số liệu để so sánh)?
Câu hỏi 2.4:
a. Khi có một ngoại lệ (Exception) xảy ra, lõi ARM thực thi các cơng việc gì?
b. Để trở về sau khi thực thi xong một ngoại lệ (Exception), bộ xử lý ngoại lệ cần thực thi
các cơng việc gì?
Câu hỏi 2.5:
Mơ tả hoạt động của các lệnh sau trong vi xử lý ARM:
B <Nhãn>
BL <Chương trình con>
BX <thanh ghi>
Câu hỏi 2.6:
a. Các thành phần của lõi vi xử lý ARM7? Vẽ hình minh họa.
b. Nêu các đặc điểm của họ ARM7TDMI? Ý nghĩa của các từ viết tắt T, D, M, I trong ký
hiệu?
Câu hỏi 2.7:
a. Kể tên các nhóm tín hiệu chính trong lõi ARM7TDMI?
b. Tại sao kỹ thuật đường ống (pipeline) lại được sử dụng trong các họ vi xử lý? Họ
ARM7 sử dụng pipeline mấy giai đoạn (stage)? Bộ đếm chương trình (PC) trỏ tới lệnh
đang được tìm kiếm hay lệnh đang được thực thi?
Câu hỏi 2.8:
a. Một lệnh số học đơn giản (VD: lệnh ADD) có thể được thực hiện trong mấy chu kỳ
(cycle)?

b. Các loại dữ liệu nào có thể được đánh địa chỉ trong bộ nhớ?
c. Nêu các ưu điểm của việc thực thi lệnh có điều kiện? Mơ tả việc thực thi lệnh ADDNES
r1, r0, r2?

4


Câu hỏi 2.9:
Cho R1 = 0x8234 5678, hãy mô tả hoạt động của các lệnh sau và xác định kết quả sau
khi mỗi lệnh được thực thi:
MOV R0, R1, LSL #2
MOV R2, R1, ASR #1
MOV R3, R1, LSR #3
MOV R4, R1, ROR #2
Câu hỏi 2.10:
Mô tả hoạt động của từng lệnh trong đoạn chương trình sau đây, nêu chức năng của
chương trình?

LOOP

MOV R5, #10
MOV R4, #0
LDR R0, [R6], #4
LDR R1, [R7], #4
MLA R4, R0, R1, R4
SUBS R5, R5, #1
BNE LOOP

Câu hỏi 2.11:
Cho một chương trình như sau:

TTL

Vidu1

AREA

Program, CODE, READONLY

ENTRY
Main
LDR

R1, Value

MVN R1,R1
STR

R1, Result

SWI

&11

Value

DCD &B231

Result

DCD 0


END
a. Mô tả hoạt động của từng lệnh trong chương trình (giữa Main và END)
b. Nêu chức năng của chương trình và xác định kết quả sau khi thực hiện chương trình?

5


Câu hỏi 2.12:
a. Sử dụng các lệnh hợp ngữ ARM để viết lại đoạn mã nguồn C dưới đây:

Mã nguồn C

if (r0 == 0)
{
r1 = r1 - 1;
}
else
{
r2 = r2 + 1;
}

b. Các lệnh xử lý dữ liệu thường được chia thành các nhóm nào? Mỗi nhóm cho 2 ví dụ
minh họa?
Câu hỏi 2.13:
Trong 8051, giả sử cổng P0 được nối tới một cảm biến nhiệt độ. Hãy viết chương trình
hợp ngữ đọc và so sánh với mức nhiệt độ chuẩn là 100oC. Kết quả so sánh được xử lý như
sau:
Nếu T = 100 thì A = 100
Nếu T < 100 thì R1 = T

Nếu T > 100 thì R2 = T
Câu hỏi 2.14:
Viết chương trình hợp ngữ lấy 10 byte trong RAM nội của 8051 có địa chỉ bắt đầu là
30H và ghi ra RAM ngoài ở địa chỉ bắt đầu là 2000H.
Câu hỏi 2.15:
Viết chương trình hợp ngữ cho vi điều khiển 8051 điều kiển 1 LED đơn tại chân P2.0
nhấp nháy với tần số 1000Hz, thời gian nghỉ bằng thời gian sáng, sử dụng bộ định thời
Timer0 ở chế độ 1 (không dùng ngắt). Biết tần số của thạch anh được sử dụng là 12MHz
Câu hỏi 2.16:
Viết chương trình hợp ngữ cho vi điều khiển 8051 tạo xung vuông trên chân P2.1 bằng
bộ định thời Timer1 ở chế độ 1 (khơng dùng ngắt). Xung có tần số 4000Hz và độ rộng
xung bằng 50% chu kỳ của xung. Biết tần số của thạch anh được sử dụng là 12MHz.
Câu hỏi 2.17:
8051
P2

Display

P3.4

Giả sử xung đồng hồ ngoài được cấp tới chân P3.4 của vi điều khiển 8051. Màn hình
hiển thị được nối với 8051 tại cổng P2 để đếm số xung. Hãy viết chương trình hợp ngữ cho
bộ đếm Timer0 ở chế độ 2 để đếm các xung và hiển thị trạng thái của số đếm TL0 trên
cổng P2.
Câu hỏi 2.18:

6


Hãy viết chương trình hợp ngữ cho vi điều khiển 8051 để truyền nối tiếp liên tục chữ

“PTIT” với tốc độ 9600 baud. Thanh ghi điều khiển SCON làm việc ở chế độ 1.
Câu hỏi 2.19:
Viết chương trình hợp ngữ cho vi điều khiển 8051 để phát một chuỗi mã ASCII kết
thúc bằng ký tự null (mã ASCII là 00H) ra cổng nối tiếp P2 (không gửi ký tự null). Giả sử
chuỗi mã ASCII nằm trong RAM ngoài bắt đầu tại địa chỉ 3000H. Chế độ truyền UART 8
bit, tốc độ 2400 baud, tần số dao động của thạch là là 12MHz.
Câu hỏi 2.20:
Hãy viết chương trình hợp ngữ cho vi điều khiển 8051 để nhận các byte dữ liệu nối tiếp
liên tục với tốc độ 9600 baud. Dữ liệu sau đó được gửi ra cổng P2. Thanh ghi điều khiển
SCON làm việc ở chế độ 1.
Câu hỏi 2.21:
Viết chương trình hợp ngữ cho vi điều khiển 8051 để nhận một chuỗi mã ASCII kết
thúc bằng ký tự CR (mã ASCII là 13H) từ cổng nối tiếp P1 (không nhận ký tự CR). Chuỗi
mã nhận được cất vào RAM nội bắt đầu từ địa chỉ 40H. Chế độ truyền UART 8 bit, tốc độ
2400 baud, tần số dao động của thạch là là 12MHz.
Câu hỏi 2.22:
Viết chương trình hợp ngữ cho vi điều khiển 8051 điều kiển 1 LED đơn tại chân P2.0
nhấp nháy với tần số 2000Hz, thời gian nghỉ bằng thời gian sáng, sử dụng ngắt Timer0 ở
chế độ 1. Biết tần số của thạch anh được sử dụng là 12MHz
Câu hỏi 2.23:
Viết chương trình hợp ngữ cho vi điều khiển 8051 tạo xung vuông trên chân P2.1 bằng
ngắt Timer1 ở chế độ 1. Xung có tần số 1000Hz và độ rộng xung bằng 50% chu kỳ của
xung. Biết tần số của thạch anh được sử dụng là 12MHz.
Câu hỏi 2.24:
8051
Vcc
P1.1

tới LED


INT0

Giả sử chân INT0 của vi điều khiển 8051 được nối đến cơng tắc bình thường ở mức
cao. Viết chương trình hợp ngữ sử dụng ngắt phần cứng ngồi INT0 để khi cơng tắc chuyển
xuống mức thấp thì đèn LED nối với chân P1.1 được bật sáng. Khi cơng tắc chuyển lên
mức cao thì đèn LED tắt.
● Câu hỏi loại 3 điểm
Câu hỏi 3.1:
Viết chương trình hợp ngữ ARM thực hiện việc trừ hai số 32 bit: số thứ nhất trừ đi số
thứ hai, kết quả lưu vào ô nhớ chứa số thứ nhất.
Đầu vào:

Số thứ nhất = 28C3E123,

Đầu ra:

Số thứ 2
= 1254AB02.
Số thứ nhất = kết quả của phép trừ

Xác định kết quả của phép trừ?
7


Câu hỏi 3.2:
Viết chương trình hợp ngữ ARM thực hiện việc xác định số nào nhỏ hơn trong 2 số sau:
Số thứ nhất = 23456781
Số thứ hai = 2B123A49
Kết quả lưu vào biến Result.
Câu hỏi 3.3:

Viết chương trình hợp ngữ ARM thực hiện việc cộng hai số 64 bit.
Số thứ nhất = 18A3E156,
Số thứ hai = 215CAB48.
Kết quả lưu vào biến Result. Xác định kết quả của phép cộng?
Câu hỏi 3.4:
Viết chương trình hợp ngữ ARM thực hiện việc tìm số lớn nhất trong 3 số không dấu sau.
Hãy lưu số lớn nhất trong 3 số vào biến Result.
Đầu vào:

Số thứ nhất = 3219AB11

Đầu ra:

Số thứ hai = 2598CB46
Số thứ ba = 7248EA06
Result
= số lớn nhất

Câu hỏi 3.5:
Cho một chương trình như sau:
TTL

Vidu2

AREA

Program, CODE, READONLY

ENTRY
Main

LDR

R0, = Data1

EOR

R1, R1, R1

LDR

R2, Length

LDR

R3, [R0]

Loop
ADD R1, R1, R3
ADD R0, R0, #4
SUBS R2, R2, #0x1
BNE

Loop

STR

R1, Result

SWI


&11

AREA Data1, DATA
8


Table

DCW &0B1A
ALIGN
DCW &23C4
ALIGN
DCW &15E7
ALIGN

TablEnd

DCD 0
AREA Data2, DATA

Length

DCW (TablEnd - Table) / 4
ALIGN

Result

DCW 0

END

a) Mô tả hoạt động của từng lệnh trong chương trình (giữa Main và END)
b) Nêu chức năng của chương trình và xác định kết quả sau khi thực hiện chương trình?
Câu hỏi 3.6:
Viết chương trình hợp ngữ ARM thực hiện: Nhân hai số 32 bit cho kết quả là một số 64
bit, lưu kết quả vào hai thanh ghi R6, R7, trong đó thanh ghi R7 chứa 4 byte thấp của kết quả.
Câu hỏi 3.7:
Viết chương trình hợp ngữ cho vi điều khiển 8051 tính tổng của hai số 16 bit. Biết các số
này được đặt trong bộ nhớ RAM trong. Cụ thể, số thứ nhất được đặt tại hai ơ nhớ có địa chỉ
40H, 41H (40H chứa byte thấp, 41H chứa byte cao). Số thứ hai được đặt tại hai ơ nhớ có địa
chỉ 42H, 43H. Kết quả tìm được (tổng) để trong bộ nhớ RAM trong tại 3 byte : 44H, 45H,
46H.
Câu hỏi 3.8:
Viết chương trình hợp ngữ cho vi điều khiển 8051 tính tổng của hai số 16 bit. Biết các số
này được đặt trong bộ nhớ RAM trong. Cụ thể, số thứ nhất được đặt tại hai ơ nhớ có địa chỉ
30H, 31H (30H chứa byte thấp, 31H chứa byte cao). Số thứ hai được đặt tại hai ơ nhớ có địa
chỉ 32H, 33H. Kết quả tìm được (tổng) để trong bộ nhớ RAM trong tại 3 byte : 34H, 35H,
36H.
Câu hỏi 3.9:
Viết chương trình hợp ngữ cho vi điều khiển 8051 để lấy giá trị x tại cổng P1 và gửi giá
trị x2 tới cổng P2 một cách liên tục.
Câu hỏi 3.10:
Viết chương trình hợp ngữ cho vi điều khiển 8051 để kiểm tra một khối dữ liệu trong
RAM ngồi có chiều dài 100 byte bắt đầu từ địa chỉ 2000H xem có bao nhiêu giá trị chẵn và
lẻ. Số giá trị chẵn và lẻ được lưu tương ứng trong 2 ô nhớ 30H và 31H.
Câu hỏi 3.11:

9


Viết chương trình hợp ngữ cho vi điều khiển 8051 để kiểm tra một khối dữ liệu trong

RAM ngồi có chiều dài 200 byte bắt đầu từ địa chỉ 1000H xem có bao nhiêu byte giá trị là
0, dương và âm. Kết quả được lưu vào các ô nhớ trong RAM nội như sau:
- Ô nhớ 40H : chứa số byte bằng 0
- Ô nhớ 41H : chứa số byte dương
- Ô nhớ 42H : chứa số byte âm
Câu hỏi 3.12:
Viết chương trình hợp ngữ cho vi điều khiển 8051 để kiểm tra một khối dữ liệu trong
RAM ngồi có chiều dài 200 byte bắt đầu từ địa chỉ 1000H xem có bao nhiêu giá trị 0. Kết
quả (số byte có giá trị 0) được lưu vào ơ nhớ có địa chỉ 2000H trong RAM ngoài.
Ghi chú: Ký hiệu (mã) câu hỏi được quy định X.Y
Trong đó : + X tương đương số điểm câu hỏi (X chạy từ 1 đến 5).
+ Y là câu hỏi thứ Y (Y chạy từ 1 trở đi)
2. Đề xuất các phương án tổ hợp câu hỏi thi thành các đề thi (Nếu thấy cần thiết) :.
Đề thi được tổ hợp như sau :
 03 Câu 1 điểm.
 02 Câu 2 điểm
 01 Câu 3 điểm
Tổng điểm : 10 điểm.
Tổng thời gian : 90 phút.
3. Hướng dẫn cần thiết khác:
 Khi chọn 3 câu 1 điểm : Chọn 2 câu trong khoảng từ 1 đến 18 và 1 câu trong khoảng từ 19
đến 36 hoặc ngược lại.
 Khi chọn 2 câu 2 điểm : Chọn 1 câu trong khoảng từ 1 đến 12 và 1 câu trong khoảng từ 12
đến 24.
Ngân hàng câu hỏi thi này đã được thông qua bộ môn và nhóm cán bộ giảng dạy học phần.
Hà Nội, ngày . . . tháng … năm 2013
Trưởng khoa

Trưởng bộ môn


Giảng viên chủ trì biên soạn

TS. Đặng Hồi Bắc

TS. Đặng Hồi Bắc

TS. Vũ Hữu Tiến
Ths. Trần Thị Thục Linh

10



×