wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Câu hỏi về Vi xử lý - Vi điều khiển

Total questions: 140

Worksheet time: 1hrs 18mins

Name
Class
Date
1.

Đoạn lệnh sau có vấn đề gì? MOV AX, 4C00H INT 20H

a)

AX bị ghi đè

b)

Dịch vụ không được gọi đúng cách

c)

INT 20H không hỗ trợ DOS

d)

Lệnh INT không đúng chức năng

2.

Đoạn mã sau gây ra lỗi gì? MOV AX, BX DIV BX

a)

BX không được khởi tạo

b)

AX không được khởi tạo

c)

Không có lỗi

d)

DIV không hỗ trợ BX

3.

Lệnh NEG AX trong đoạn mã sau có thể dẫn đến kết quả gì? MOV AX, 98000H NEG AX

a)

Giá trị âm hợp lệ

b)

Lỗi tràn số học

c)

AX trở về 0

d)

Không có lỗi

4.

Đoạn mã sau gây ra lỗi gì? MOV CX, 0 LOOP START

a)

CX không hợp lệ

b)

START không hợp lệ

c)

Lỗi tràn ngăn xếp

d)

Vòng lặp không bao giờ thực thi

5.

Tại sao đoạn mã sau không hiển thị đúng ký tự? MOV AH, 2 MOV DL, 'A' INT 21H

a)

DL không được khởi tạo đúng cách

b)

INT 21H không hỗ trợ hiển thị ký tự

c)

AH không đúng giá trị

d)

Lệnh MOV không hợp lệ

6.

Đoạn mã sau có vấn đề gì trong việc khởi tạo dữ liệu? MOV AX, DATA MOV DS, AX

a)

AX không khởi tạo đúng cách

b)

DS không tương thích với DATA

c)

DATA không tương thích với AX

d)

Không có vấn đề

7.

Bộ vi điều khiển 8051 thuộc kiến trúc nào?

a)

Von Neumann

b)

ARM

c)

Harvard

d)

MIPS

8.

Bộ vi điều khiển 8051 có bao nhiêu chân I/O?

a)

32 chân

b)

40 chân

c)

16 chân

d)

8 chân

9.

Dung lượng bộ nhớ RAM nội của 8051 là bao nhiêu?

a)

512 byte

b)

2 KB

c)

1 KB

d)

1

10.

051 có bao nhiêu chân I/O?

a)

32 chân

b)

40 chân

c)

16 chân

d)

8 chân

11.

Dung lượng bộ nhớ RAM nội của 8051 là bao nhiêu?

a)

512 byte

b)

2 KB

c)

1 KB

d)

128 byte

12.

Bộ nhớ ROM trên chip của 8051 có dung lượng bao nhiêu?

a)

512 byte

b)

4 KB

c)

2 KB

d)

128 byte

13.

Bộ vi điều khiển 8051 có bao nhiêu thanh ghi chức năng đặc biệt (SFRs)?

a)

16

b)

24

c)

21

d)

32

14.

Bộ đếm/định thời (Timer) của 8051 có bao nhiêu bộ?

a)

2 bộ

b)

4 bộ

c)

1 bộ

d)

3 bộ

15.

Chức năng của chân EA (External Access) trên 8051 là gì?

a)

Kích hoạt ngắt ngoài

b)

Lựa chọn sử dụng bộ nhớ ROM nội hay ngoài

c)

Truy cập bộ nhớ dữ liệu

d)

Điều khiển chế độ hoạt động

16.

Thanh ghi nào được sử dụng để lưu địa chỉ ngăn xếp trong 8051?

a)

DPTR

b)

PC

c)

ACC

d)

SP

17.

Tại sao kiến trúc Harvard được áp dụng trong 8051?

a)

Để tăng tốc độ xử lý bằng cách phân chia dữ liệu và chương trình

b)

Để giảm chi phí phần cứng

c)

Để hỗ trợ thêm các ngắt ngoài

d)

Để mở rộng dung lượng bộ nhớ

18.

Bộ nhớ dữ liệu và bộ nhớ chương trình trong 8051 được tổ chức như thế nào?

a)

Kết hợp trong một không gian địa chỉ chung

b)

Chỉ dùng bộ nhớ ngoài

c)

Tách biệt hoàn toàn trong kiến trúc Harvard

d)

Lưu trữ trong các thanh ghi chức năng

19.

Lợi ích của việc sử dụng thanh ghi DPTR trong 8051 là gì?

a)

Quản lý các ngắt hệ thống

b)

Điều khiển cổng I/O

c)

Lưu giá trị bộ đếm

d)

Truy cập bộ nhớ ngoài

20.

Vai trò của bộ đệm tích hợp (Accumulator) trong 8051 là gì?

a)

Lưu trữ địa chỉ chương trình

b)

Lưu trữ tạm thời các kết

21.

Vai trò của bộ đệm tích hợp (Accumulator) trong 8051 là gì?

a)

Lưu trữ địa chỉ chương trình

b)

Lưu trữ tạm thời các kết quả tính toán

c)

Điều khiển chế độ hoạt động

d)

Đếm các tín hiệu xung

22.

Tại sao bộ vi điều khiển 8051 cần có bộ đếm/định thời?

a)

Để điều khiển các cổng xuất/nhập

b)

Để thực hiện các phép toán logic

c)

Để tạo độ trễ hoặc đếm xung nhịp trong ứng dụng thời gian thực

d)

Để điều khiển ngắt ngoài

23.

Chân RST (Reset) trên 8051 hoạt động như thế nào?

a)

Đặt lại giá trị của thanh ghi ACC

b)

Đặt lại các cổng I/O về giá trị mặc định

c)

Đặt lại giá trị của bộ đếm

d)

Đặt lại toàn bộ hệ thống về trạng thái ban đầu

24.

Tại sao các cổng I/O của 8051 có khả năng đa chức năng?

a)

Để tiết kiệm số lượng chân và tăng tính linh hoạt

b)

Để mở rộng bộ nhớ ngoài

c)

Để hỗ trợ nhiều chế độ định thời hơn

d)

Để xử lý tín hiệu ngắt hiệu quả hơn

25.

Vai trò của thanh ghi PC (Program Counter) trong 8051 là gì?

a)

Lưu địa chỉ dữ liệu trong RAM

b)

Lưu địa chỉ lệnh kế tiếp cần thực thi

c)

Điều khiển trạng thái của bộ đếm

d)

Tạo xung định thời

26.

Bộ nhớ RAM nội của 8051 có dung lượng bao nhiêu?

a)

1 KB

b)

64 byte

c)

128 byte

d)

256 byte

27.

Dung lượng bộ nhớ ROM nội trong 8051 là bao nhiêu?

a)

2 KB

b)

4 KB

c)

8 KB

d)

512 byte

28.

Tổ chức bộ nhớ của 8051 tuân theo kiến trúc nào?

a)

Harvard

b)

Von Neumann

c)

ARM

d)

MIPS

29.

Bộ nhớ RAM nội trong 8051 được chia thành mấy vùng chính?

a)

2 vùng

b)

3 vùng

c)

4 vùng

d)

5 vùng

30.

Bộ nhớ RAM nội trong 8051 được chia thành mấy vùng chính?

a)

2 vùng

b)

3 vùng

c)

4 vùng

d)

5 vùng

31.

Vùng thanh ghi làm việc (Working Registers) trong RAM nội của 8051 chiếm bao nhiêu byte?

a)

8 byte

b)

16 byte

c)

32 byte

d)

64 byte

32.

Vùng RAM địa chỉ bit (Bit-Addressable) của 8051 chiếm bao nhiêu byte?

a)

16 byte

b)

32 byte

c)

8 byte

d)

64 byte

33.

Bộ nhớ chương trình của 8051 được lưu trữ trong đâu?

a)

RAM nội

b)

RAM ngoài

c)

Bộ đếm/định thời

d)

ROM nội hoặc ROM ngoài

34.

Thanh ghi DPTR trong 8051 dùng để truy cập bộ nhớ nào?

a)

Bộ nhớ RAM nội

b)

ROM nội hoặc ROM ngoài

c)

Bộ nhớ địa chỉ bit

d)

Bộ nhớ ngăn xếp

35.

Tại sao bộ nhớ RAM nội trong 8051 được chia thành nhiều vùng?

a)

Để tăng hiệu quả truy cập và quản lý dữ liệu

b)

Để hỗ trợ bộ nhớ ngoài

c)

Để tiết kiệm dung lượng bộ nhớ

d)

Để lưu trữ các cờ trạng thái

36.

Vùng địa chỉ bit (Bit-Addressable) trong 8051 thường được dùng để làm gì?

a)

Lưu trữ dữ liệu tạm thời

b)

Lưu chương trình

c)

Điều khiển ngắt hệ thống

d)

Điều khiển các bit trạng thái hoặc thiết bị ngoại vi

37.

Lợi ích của việc tách biệt bộ nhớ dữ liệu và bộ nhớ chương trình trong 8051 là gì?

a)

Tăng dung lượng bộ nhớ

b)

Cho phép truy cập đồng thời vào dữ liệu và chương trình

c)

Giảm chi phí phần cứng

d)

Hỗ trợ nhiều chế độ ngắt hơn

38.

Thanh ghi SP (Stack Pointer) trong 8051 có vai trò gì trong tổ chức bộ nhớ?

a)

Quản lý bộ nhớ chương trình

b)

Điều khiển các cổng I/O

c)

Trỏ đến vị trí trên ngăn xếp

d)

Quản lý thanh ghi làm việc

39.

có vai trò gì trong tổ chức bộ nhớ?

a)

Quản lý bộ nhớ chương trình

b)

Điều khiển các cổng I/O

c)

Trỏ đến vị trí trên ngăn xếp

d)

Quản lý thanh ghi làm việc

40.

Khi nào bộ nhớ ngoài được sử dụng thay vì bộ nhớ nội trong 8051?

a)

Khi truy cập dữ liệu trong RAM địa chỉ bit

b)

Khi xử lý các ngắt ngoài

c)

Khi thực hiện các phép toán logic

d)

Khi dung lượng bộ nhớ chương trình hoặc dữ liệu vượt quá giới hạn bộ nhớ nội

41.

Vùng RAM địa chỉ bit trong 8051 hỗ trợ truy cập từng bit có lợi ích gì?

a)

Để dễ dàng điều khiển các thiết bị ngoại vi hoặc cờ trạng thái

b)

Để lưu trữ các giá trị lớn

c)

Để xử lý các ngắt ngoài nhanh hơn

d)

Để hỗ trợ nhiều thanh ghi hơn

42.

Tại sao cần thanh ghi DPTR trong việc truy cập bộ nhớ ngoài?

a)

Để điều khiển các cổng I/O

b)

Để xác định địa chỉ bộ nhớ ngoài một cách hiệu quả

c)

Để quản lý bộ đếm/định thời

d)

Để lưu các giá trị cờ trạng thái

43.

Điều gì xảy ra nếu không khởi tạo đúng giá trị cho thanh ghi SP trong 8051?

a)

Các cổng I/O không hoạt động

b)

Bộ nhớ ngoài không thể truy cập

c)

Bộ đếm/định thời hoạt động không chính xác

d)

Ngăn xếp có thể ghi đè lên dữ liệu quan trọng

44.

8051 hỗ trợ bao nhiêu chế độ địa chỉ?

a)

5 chế độ

b)

4 chế độ

c)

6 chế độ

d)

3 chế độ

45.

Trong chế độ địa chỉ tức thời (Immediate), toán hạng được lưu ở đâu?

a)

Trong bộ nhớ ngoài

b)

Trong chính lệnh đó

c)

Trong thanh ghi ACC

d)

Trong ngăn xếp

46.

Chế độ địa chỉ trực tiếp (Direct) sử dụng địa chỉ nào để truy cập dữ liệu?

a)

Địa chỉ trong thanh ghi SP

b)

Địa chỉ trong ngăn xếp

c)

Địa chỉ chỉ số

d)

Địa chỉ cụ thể trong RAM nội

47.

Sử dụng địa chỉ nào để truy cập dữ liệu?

a)

Địa chỉ trong thanh ghi SP

b)

Địa chỉ trong ngăn xếp

c)

Địa chỉ chỉ số

d)

Địa chỉ cụ thể trong RAM nội

48.

Chế độ địa chỉ gián tiếp (Indirect) sử dụng thanh ghi nào để trỏ đến địa chỉ dữ liệu?

a)

ACC

b)

DPTR

c)

R0 và R1

d)

PC

49.

Chế độ địa chỉ thanh ghi (Register) sử dụng thanh ghi nào để lưu trữ toán hạng?

a)

R0 đến R7

b)

DPTR

c)

PSW

d)

PC

50.

Chế độ địa chỉ chỉ số (Indexed) thường được sử dụng để làm gì?

a)

Truy cập bộ nhớ RAM nội

b)

Truy cập bộ nhớ chương trình

c)

Lưu trữ kết quả phép toán

d)

Gọi chương trình con

51.

Chế độ địa chỉ nào sử dụng thanh ghi DPTR để truy cập dữ liệu?

a)

Tức thời

b)

Thanh ghi

c)

Chỉ số

d)

Trực tiếp

52.

Trong chế độ địa chỉ gián tiếp, toán hạng được lưu trữ ở đâu?

a)

Trong chính lệnh đó

b)

Trong ACC

c)

Trong RAM nội hoặc bộ nhớ ngoài

d)

Tại địa chỉ được trỏ bởi R0 hoặc R1

53.

Tại sao chế độ địa chỉ tức thời (Immediate) thường được sử dụng trong việc khởi tạo giá trị?

a)

Để tiết kiệm dung lượng bộ nhớ

b)

Để gán giá trị trực tiếp cho thanh ghi hoặc bộ nhớ

c)

Để tối ưu hóa tốc độ xử lý lệnh

d)

Để giảm số lượng thanh ghi cần sử dụng

54.

Điểm khác biệt chính giữa chế độ địa chỉ trực tiếp và gián tiếp là gì?

a)

Địa chỉ trực tiếp truy cập ngay dữ liệu, còn gián tiếp sử dụng thanh ghi để trỏ đến dữ liệu

b)

Trực tiếp chỉ sử dụng cho bộ nhớ ngoài, gián tiếp cho bộ nhớ nội

c)

Gián tiếp có tốc độ nhanh hơn trực tiếp

d)

Gián tiếp không sử dụng các thanh ghi

55.

Trong chế độ địa chỉ chỉ số (Indexed), tại sao cần kết hợp thanh ghi ACC với DPTR?

4 lines
56.

Trong chế độ địa chỉ chỉ số (Indexed), tại sao cần kết hợp thanh ghi ACC với DPTR?

a)

Để giảm dung lượng chương trình

b)

Để tối ưu hóa phép toán số học

c)

Để tính toán địa chỉ bộ nhớ chương trình

d)

Để lưu trữ tạm thời kết quả

57.

Chế độ địa chỉ gián tiếp thường được sử dụng khi nào?

a)

Khi truy cập bộ nhớ ROM

b)

Khi thực hiện phép toán số học

c)

Khi xử lý các ngắt hệ thống

d)

Khi địa chỉ dữ liệu thay đổi linh hoạt

58.

Tại sao chế độ địa chỉ thanh ghi (Register) được ưu tiên trong các phép toán đơn giản?

a)

Vì tốc độ truy cập thanh ghi nhanh hơn bộ nhớ

b)

Vì thanh ghi hỗ trợ nhiều chế độ ngắt hơn

c)

Vì thanh ghi cho phép lưu trữ chương trình

d)

Vì thanh ghi có dung lượng lớn hơn bộ nhớ

59.

Lợi ích chính của chế độ địa chỉ chỉ số (Indexed) là gì?

a)

Truy cập nhanh vào ngăn xếp

b)

Duyệt các mảng dữ liệu trong bộ nhớ chương trình

c)

Thực hiện phép toán số học phức tạp

d)

Tăng tốc độ xử lý ngắt ngoài

60.

Trong chế độ địa chỉ trực tiếp, điều gì xảy ra nếu địa chỉ vượt quá giới hạn RAM nội?

a)

Lệnh bị bỏ qua

b)

Hệ thống tự động sửa lỗi

c)

Truy cập vào bộ nhớ ngoài nếu có

d)

Gây lỗi phần mềm hoặc dừng chương trình

61.

Chế độ địa chỉ nào thường được sử dụng để đọc dữ liệu từ một bảng hằng trong ROM?

a)

Tức thời

b)

Gián tiếp

c)

Trực tiếp

d)

Chỉ số

62.

Lệnh MOV A, #25H thực hiện chức năng gì?

a)

Chép giá trị từ thanh ghi A vào địa chỉ 25H

b)

Chép giá trị từ địa chỉ 25H vào thanh ghi A

c)

Gán giá trị 25H trực tiếp vào thanh ghi A

d)

Chuyển giá trị từ thanh ghi A sang bộ nhớ ngoài

63.

Lệnh ADD A, R0 trong 8

4 lines
64.

Lệnh ADD A, R0 trong 8051 thực hiện nhiệm vụ gì?

a)

Cộng giá trị trong R0 vào thanh ghi A

b)

Cộng giá trị trong thanh ghi A vào R0

c)

Lấy giá trị từ bộ nhớ và cộng vào A

d)

Ghi giá trị A vào địa chỉ R0

65.

Tại sao cần sử dụng lệnh SJMP LABEL trong chương trình?

a)

Để nhảy đến một địa chỉ cố định trong ROM

b)

Để nhảy đến nhãn LABEL trong cùng đoạn mã

c)

Để so sánh hai giá trị trước khi nhảy

d)

Để thực hiện nhảy có điều kiện

66.

Lệnh CLR A trong tập lệnh 8051 có tác dụng gì?

a)

Gán giá trị mặc định cho thanh ghi A

b)

Đặt tất cả các bit trong A thành 1

c)

Đặt giá trị của A bằng hằng số

d)

Xóa toàn bộ giá trị trong thanh ghi A

67.

Lệnh SETB P1.0 thực hiện nhiệm vụ gì?

a)

Đặt bit P1.0 thành 1

b)

Xóa bit P1.0 về 0

c)

Đảo trạng thái bit P1.0

d)

Gán giá trị của P1.0 vào thanh ghi A

68.

Lệnh DJNZ R2, LABEL được sử dụng để làm gì?

a)

Giảm giá trị trong R2 và thoát vòng lặp

b)

Giảm giá trị trong R2 và nhảy đến LABEL nếu R2 ≠ 0

c)

Tăng giá trị trong R2 và lặp lại

d)

Ghi giá trị R2 vào LABEL

69.

Lệnh ANL A, #0F0H có chức năng gì?

a)

Lấy giá trị từ địa chỉ 0F0H và lưu vào A

b)

Cộng giá trị trong A với hằng số 0F0H

c)

Đảo các bit trong A theo giá trị 0F0H

d)

Thực hiện phép toán AND giữa A và hằng số 0F0H

70.

Lệnh XCH A, R5 thực hiện điều gì?

a)

Đổi chỗ giá trị giữa thanh ghi A và R5

b)

Gán giá trị R5 vào A

c)

Cộng giá trị A với giá trị R5

d)

Xóa giá trị trong A và R5

71.

Lệnh INC DPTR được dùng khi nào?

(a)  

72.

Lệnh INC DPTR được dùng khi nào?

a)

Khi khởi tạo bộ nhớ RAM nội

b)

Khi tăng giá trị của con trỏ dữ liệu DPTR lên 1

c)

Khi truy cập ngắt ngoài

d)

Khi đặt lại giá trị thanh ghi A

73.

Lệnh ORL A, #0F0H có tác dụng gì?

a)

Đặt tất cả các bit trong A thành 1

b)

Lấy giá trị từ địa chỉ 0F0H và lưu vào A

c)

Thực hiện phép toán OR giữa A và hằng số 0F0H

d)

Gán giá trị 0F0H vào A

74.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) gán giá trị 7FH vào thanh ghi A:

a)

MOV A, #7FH

b)

MOV A, 7FH

c)

CLR A; ADD A, #7FH

d)

MOV R0, #7FH; MOV A, R0

75.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) kiểm tra bit P1.3 có bằng 1 không, nếu bằng thì nhảy đến nhãn LABEL

a)

MOV C, P1.3

b)

JB P1.3, LABEL

c)

SETB P1.3

d)

DJNZ P1.3, LABEL

76.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) cộng giá trị trong R1 vào thanh ghi A:

a)

ADD A, #R1

b)

MOV A, R1; ADD A, A

c)

ADD A, R1

d)

MOV R1, A; ADD A, R1

77.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) xóa toàn bộ giá trị trong thanh ghi A:

a)

MOV A, #00H

b)

CLR R0; MOV A, R0

c)

SUB A, A

d)

CLR A

78.

Đoạn Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) lặp lại 10 lần bằng R2:

a)

MOV R2, #10; DJNZ R2, LOOP

b)

MOV R2, #10; SJMP LOOP

c)

MOV R2, #0A; JNZ LOOP

d)

INC R2; LOOP

79.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) lặp lại 10 lần bằng R2:

a)

MOV R2, #10; DJNZ R2, LOOP

b)

MOV R2, #10; SJMP LOOP

c)

MOV R2, #0A; JNZ LOOP

d)

INC R2; LOOP

80.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) kiểm tra nếu thanh ghi A = 0 thì nhảy đến nhãn ZERO:

a)

JB A, ZERO

b)

JZ ZERO

c)

CJNE A, #0, ZERO

d)

ANL A, #00H; JNZ ZERO

81.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) chuyển giá trị từ R3 sang địa chỉ được trỏ bởi R0:

a)

MOV R3, @R0

b)

MOV @R0, #R3

c)

MOV @R0, R3

d)

MOV R0, R3

82.

Đoạn Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) bật tất cả các bit của cổng P2:

a)

ORL P2, #00H

b)

SETB P2

c)

MOV P2, #0FFH

d)

SETB P2.0; SETB P2.1; SETB P2.2

83.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) gọi chương trình con tại nhãn SUB:

a)

ACALL SUB

b)

SJMP SUB

c)

JMP SUB

d)

JNB SUB

84.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) lưu giá trị từ thanh ghi A vào địa chỉ 40H:

a)

MOV 40H, A

b)

MOV @40H, A

c)

MOV A, 40H

d)

MOV R0, 40H; MOV @R0, A

85.

Chỉ thị nào dùng để khai báo hằng số trong lập trình hợp ngữ 8051?

a)

EQU

b)

ORG

c)

DB

d)

DW

86.

Khai báo biến trong lập trình hợp ngữ 8051 thường sử dụng chỉ thị nào?

a)

MOV

b)

DB

c)

EQU

d)

ORG

87.

Lệnh nào được sử dụng để gọi chương trình con trong hợp ngữ 8051?

a)

JMP

b)

RET

c)

MOV

d)

LCALL

88.

Lệnh nào được sử dụng để gọi chương trình con trong hợp ngữ 8051?

a)

JMP

b)

RET

c)

MOV

d)

LCALL

89.

Lệnh RET trong hợp ngữ 8051 có chức năng gì?

a)

Kết thúc chương trình con và quay lại chương trình chính

b)

Chuyển đến một nhãn khác trong chương trình

c)

Kết thúc chương trình chính

d)

Khởi động lại chương trình

90.

Lệnh LCALL trong hợp ngữ 8051 thực hiện điều gì?

a)

Gọi chương trình con tại địa chỉ 8-bit

b)

Kết thúc chương trình con

c)

Gọi chương trình con tại địa chỉ 16-bit

d)

Chuyển giá trị giữa các thanh ghi

91.

Trong cấu trúc chương trình hợp ngữ 8051, chỉ thị nào thường được sử dụng để xác định địa chỉ bắt đầu của mã lệnh?

a)

END

b)

MOV

c)

DB

d)

ORG

92.

Trong hợp ngữ 8051, lệnh ADD được sử dụng để thực hiện thao tác gì?

a)

Cộng hai giá trị

b)

Trừ hai giá trị

c)

Di chuyển dữ liệu

d)

So sánh giá trị

93.

Lệnh END trong chương trình hợp ngữ 8051 được sử dụng để làm gì?

a)

Đặt giá trị ban đầu cho thanh ghi

b)

Xác định vị trí bắt đầu của chương trình

c)

Kết thúc chương trình

d)

Xóa nội dung thanh ghi

94.

Lệnh ANL trong hợp ngữ 8051 được sử dụng để thực hiện phép toán nào?

a)

Phép OR

b)

Phép AND

c)

Phép XOR

d)

Phép NOT

95.

Trong hợp ngữ 8051, chương trình con được thiết kế để thực hiện chức năng gì?

a)

Lưu trữ dữ liệu

b)

Xóa dữ liệu trong bộ nhớ

c)

Tăng hiệu suất xử lý

d)

Tách biệt các nhiệm vụ cụ thể để tái sử dụng

96.

Điều gì xảy ra khi thực hiện lệnh LCALL SUB1 trong hợp ngữ 8051?

a)

Chương trình nhảy đến chương trình con SUB1 và tiếp tục thực thi

b)

Chương trình nhảy đến SUB1 và không quay lại

97.

Điều gì xảy ra khi thực hiện lệnh LCALL SUB1 trong hợp ngữ 8051?

a)

Chương trình nhảy đến chương trình con SUB1 và tiếp tục thực thi

b)

Chương trình nhảy đến SUB1 và không quay lại chương trình chính

c)

Dừng chương trình hiện tại và gọi SUB1

d)

Thực hiện lệnh đầu tiên trong chương trình chính

98.

Ý nghĩa của khai báo COUNT EQU 10 trong chương trình hợp ngữ 8051 là gì?

a)

Tạo một biến có giá trị mặc định là 10

b)

Lưu giá trị 10 vào thanh ghi COUNT

c)

Đặt hằng số COUNT có giá trị 10

d)

Chỉ định địa chỉ bộ nhớ cho COUNT

99.

Trong lệnh MOV R2, COUNT, nếu COUNT được khai báo là EQU 05H, thì kết quả của lệnh này là gì?

a)

Giá trị trong R2 được lưu vào COUNT

b)

Thanh ghi R2 nhận giá trị 05H

c)

Giá trị trong COUNT được nhân với R2

d)

R2 được xóa về 0

100.

Lệnh ADD A, COUNT thực hiện gì nếu COUNT là hằng số đã khai báo bằng EQU?

a)

Thực hiện phép cộng tức thì với giá trị trong thanh ghi A

b)

Lưu giá trị COUNT vào A

c)

Thực hiện phép nhân giữa A và COUNT

d)

Cộng giá trị của COUNT vào A

101.

Khi sử dụng lệnh RET, CPU sẽ thực hiện thao tác gì?

a)

Quay lại vị trí tiếp theo trong chương trình chính

b)

Tiếp tục thực hiện chương trình con

c)

Lặp lại chương trình con

d)

Kết thúc chương trình chính

102.

Ý nghĩa của lệnh PUSH ACC trong hợp ngữ 8051 là gì?

a)

Lấy giá trị từ stack và lưu vào thanh ghi A

b)

Ghi giá trị tức thì vào thanh ghi A

c)

Lưu giá trị của thanh ghi A vào stack

d)

Tăng giá trị của thanh ghi A

103.

Khi thực hiện lệnh POP ACC, điều gì sẽ xảy ra?

a)

Giá trị của thanh ghi A bị xóa

b)

Giá trị từ stack được lấy và lưu vào thanh ghi A

c)

Giá trị từ thanh ghi A được đẩy vào stack

d)

Tất cả giá trị trong stack bị xóa

104.

ệnh POP ACC, điều gì sẽ xảy ra?

a)

Giá trị của thanh ghi A bị xóa

b)

Giá trị từ stack được lấy và lưu vào thanh ghi A

c)

Giá trị từ thanh ghi A được đẩy vào stack

d)

Tất cả giá trị trong stack bị xóa

105.

Cấu trúc nào được sử dụng để tái sử dụng đoạn mã trong chương trình hợp ngữ 8051?

a)

Chương trình con

b)

Thanh ghi đa năng

c)

Bộ định thời

d)

Ngắt ngoài

106.

Điều gì xảy ra nếu lệnh JMP END_LOOP được thực thi trong chương trình hợp ngữ 8051?

a)

CPU tiếp tục thực hiện lệnh tiếp theo

b)

CPU quay lại đầu chương trình

c)

CPU dừng chương trình hiện tại

d)

CPU nhảy không điều kiện đến nhãn END_LOOP

107.

Chỉ thị DB trong hợp ngữ 8051 thường được sử dụng để làm gì?

a)

Khai báo biến

b)

Kết thúc chương trình

c)

Khai báo dữ liệu hằng trong bộ nhớ

d)

Xóa giá trị trong thanh ghi

108.

Chức năng của cổng P0 trong 8051 là gì?

a)

Cổng I/O hai chiều và bus địa chỉ/bus dữ liệu

b)

Chỉ sử dụng làm cổng xuất dữ liệu

c)

Chỉ sử dụng làm cổng nhập dữ liệu

d)

Cổng điều khiển chế độ ngắt

109.

Cổng P1 trong 8051 thường được sử dụng với mục đích gì?

a)

Kết nối bộ nhớ ngoài

b)

Làm bus điều khiển

c)

Điều khiển ngắt ngoài

d)

Là cổng I/O độc lập

110.

Cổng P2 của vi xử lý 8051 thường được sử dụng làm bus địa chỉ cao khi nào?

a)

Khi kết nối với thiết bị ngắt ngoài

b)

Khi 8051 truy cập bộ nhớ ngoài

c)

Khi sử dụng định thời

d)

Khi lập trình cổng nối tiếp

111.

Tại sao cần sử dụng điện trở kéo lên (pull-up resistor) với cổng P0?

a)

Để giảm nhiễu tín hiệu

b)

Để tăng tốc độ xử lý tín hiệu

c)

Vì P0 không tích hợp sẵn điện trở kéo lên

d)

Để hỗ trợ truy cập bộ nhớ ROM

112.

Cổng P3 của 8051 có thể thực hiện chức năng gì ngoài vai trò cổng I/O?

a)

Điều khiển ngắt, truyền thông nối tiếp và điều khiển bộ đếm

b)

Truy cập bộ nhớ ROM ngoài

c)

Làm bus địa chỉ cao

d)

Điều khiển bộ nhớ RAM nội

113.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) đặt 8 bit của cổng P1 về 0.

a)

MOV P1, #0

b)

SETB P1

c)

MOVC P1, 0

d)

XRL P1,0

114.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) nhảy đến nhãn CHECK nếu bit P3.2 được thiết lập.

a)

CJNE P3.2, #1, CHECK

b)

SETB P3.2; SJMP CHECK

c)

MOV C, P3.2; JC CHECK

d)

JB P3.2, CHECK

115.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) gửi dữ liệu trong thanh ghi A tới cổng P2.

a)

MOV A, P2

b)

MOV P2, A

c)

ORL P2, A

d)

SETB P2

116.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) bật bit P1.5 và giữ nguyên các bit khác của cổng P1.

a)

MOV P1.5, #1

b)

ORL P1, #20H

c)

ANL P1, #DFH

d)

SETB P1.5

117.

Đáp án nào đúng khi thực hiện đoạn mã lệnh sau MOV A, #0FFH MOV P0, A

a)

Có lỗi vì P0 không hỗ trợ giá trị 0FFH

b)

Không có lỗi nhưng cần sử dụng điện trở treo cho P0

c)

Có lõi vì P0 không hỗ trợ xuất dữ liệu

d)

Có lỗi sai tên thanh ghi A

118.

Tai sao lệnh sau lại có lỗi khi thực thi? MOV A,P1 CPL P1

a)

Vì toán hạng của lệnh MOV không đúng cú pháp

b)

Vì lệnh MOV A không hỗ trợ dữ liệu từ cổng P1

c)

Vì lệnh CPL khô

119.

Tai sao lệnh sau lại có lỗi khi thực thi? MOV A,P1 CPL P1

a)

Vì toán hạng của lệnh MOV không đúng cú pháp

b)

Vì lệnh MOV A không hỗ trợ dữ liệu từ cổng P1

c)

Vì lệnh CPL không hỗ trợ toán hạng có kích thước 8 bit

d)

Vì CPL không hỗ trợ địa chỉ trực tiếp P1

120.

Điều gì xảy ra nếu không đặt giá trị ban đầu cho P3 trước khi sử dụng và sau khi 8051 bị reset?

a)

Các thiết bị ngoại vi không hoạt động

b)

Chương trình bị treo

c)

Giá trị ngẫu nhiên, hoặc giá trị lưu từ lệnh trước có thể ảnh hưởng đến kết quả thực thi của lệnh hiện tại

d)

P3 tự động đặt về giá trị mặc định

121.

Lỗi gì có thể xảy ra khi xuất dữ liệu tới cổng P2 mà không kiểm tra kết nối bộ nhớ ngoài?

a)

Dữ liệu có thể bị ghi đè bởi bus địa chỉ

b)

Không có lỗi xảy ra

c)

P2 tự động xử lý dữ liệu

d)

P2 chỉ hỗ trợ đầu vào

122.

Nhận xét nào đúng với đoạn mã sau SETB P0.7 MOV A, P0

a)

Giá trị P0.7 không được gán đúng cách

b)

Điện trở kéo lên cần được sử dụng cho P0

c)

Không thể đọc dữ liệu từ P0 sau khi thiết lập P0.7

d)

Cần gán giá trị cho A trước

123.

Khi đọc dữ liệu từ cổng P3, điều gì có thể xảy ra nếu không cấu hình chính xác?

a)

Giá trị luôn bằng 0

b)

Giá trị luôn bằng 1

c)

Một số bit có thể bị ảnh hưởng bởi chức năng đặc biệt của P3

d)

P3 tự động cấu hình

124.

Lệnh nào sau đây thực hiện đặt 4 bit cuối của P1 bằng 1

a)

ORL P1, #0FH

b)

ANL P1, #0FH

c)

ORL P1, #0F0H

d)

ANL P1, #0F0H

125.

Tại sao cần kiểm tra trạng thái cổng P0 trước khi gửi dữ liệu ra ngoài?

a)

Vì P0 có thể được sử dụng làm bus dữ liệu/bus địa chỉ

b)

Vì P0 không hỗ trợ đầu vào

c)

Vì P0 không hỗ trợ tín hiệu ngắt

d)

Vì P0 không có chức năng đặc biệt

126.

Nhận xét nào sau đây là đúng nhất nếu không cấu hình đúng bit EX0 hoặc EX1 trước khi sử dụng ngắt ngoài?

a)

Ngắt ngoài luôn được kích hoạt

b)

Ngắt ngoài không thể kích hoạt

c)

Giá trị P3.2 hoặc P3.3 luôn bằng 0

d)

Giá trị P3.2 hoặc P3.3 luôn bằng 1

127.

Đoạn mã sau có thể gặp vấn đề gì khi sử dụng P2 để đọc dữ liệu từ thiết bị ngoại vi? MOV A, P2

a)

P2 không hỗ trợ đầu vào từ thiết bị ngoại vi

b)

Cần cấu hình P2 trước khi đọc dữ liệu

c)

P2 có thể bị ảnh hưởng bởi bus địa chỉ cao khi kết nối bộ nhớ ngoài

d)

P2 chỉ hỗ trợ đầu ra

128.

Chức năng chính của bộ định thời (Timer) trong 8051 là gì?

a)

Tạo độ trễ và đo thời gian

b)

Lưu trữ dữ liệu tạm thời

c)

Điều khiển ngắt ngoài

d)

Truyền dữ liệu nối tiếp

129.

Bộ đếm (Counter) trong 8051 hoạt động dựa trên yếu tố nào?

a)

Tín hiệu từ bộ nhớ ngoài

b)

Các xung tín hiệu ngoài đưa vào chân T0 (P3.4) hoặc T1 (P3.5)

c)

Bộ đệm dữ liệu nội

d)

Lệnh do CPU xử lý

130.

Khi nào bộ định thời trong 8051 được đặt ở chế độ định thời (Timer Mode)?

a)

Khi nhận tín hiệu từ ngắt ngoài

b)

Khi tín hiệu đến từ cổng P3

c)

Khi được cấu hình ở chế độ chế độ đếm xung (Counter Mode)

d)

Khi nhận tín hiệu xung từ nguồn nội

131.

Chế độ 16-bit của bộ định thời 8051 cho phép làm gì?

a)

Đếm tối đa 256 xung

b)

Ghi và đọc giá trị từ bộ nhớ

c)

Đếm tối đa 65,536 xung

d)

Chuyển đổi tín hiệu số sang tương tự

132.

Thanh ghi nào trong 8051 lưu giá trị hiện tại của bộ định thời?

a)

TCON

b)

TH0 và TL0 hoặc TH1 và TL1

133.

Thanh ghi nào trong 8051 lưu giá trị hiện tại của bộ định thời?

a)

TCON

b)

TH0 và TL0 hoặc TH1 và TL1

c)

TMOD

d)

PC

134.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) đặt bộ định thời 0 ở chế độ 16-bit.

a)

MOV TMOD, #01H

b)

MOV TMOD, #02H

c)

SETB TCON.0

d)

MOV TH0, #01H

135.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) khởi động bộ định thời 1.

a)

MOV TCON, #10H

b)

CLR TR1

c)

SETB TR1

d)

MOV TMOD, #11H

136.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) dừng bộ định thời 0.

a)

MOV TCON, #00H

b)

CLR TCON.0

c)

MOV TR0, #00H

d)

CLR TR0

137.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) tải giá trị 0FFH vào thanh ghi TL0.

a)

MOV A, TL0

b)

MOV TL0, #0FFH

c)

CLR TL0

d)

MOV TH0, #0FFH

138.

Cách sử dụng bộ đếm 0 để đếm xung từ chân T0.

a)

MOV TMOD, #05H

b)

SETB TR1

c)

MOV TCON, #01H

d)

MOV TL1, #00H

139.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) đợi Timer 0 tràn ?

a)

JB TCON.1, $

b)

MOV A, TF0; CJNE A, #1, $

c)

JNB TF0, $

d)

JC TF0

140.

Lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) xóa cờ TF1 sau khi xảy

4 lines