Font size
WorksheetsCâu hỏi về lập trình hợp ngữ
Total questions: 128
Worksheet time: 1hrs 4mins
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ăng giá trị của thanh ghi AX lên 5.
ADD AX, 5
INC AX, 5
SUB AX, 5
MOV AX, 5
Cách sử dụng lệnh LOOP nào đúng để lặp lại 10 lần (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):
MOV 10, CX; LOOP START
MOV CX, 10; LOOP START
MOV [CX], 10; LOOP START
MOV CX = 10; LOOP START
Cách sao chép giá trị từ thanh ghi BX sang thanh ghi CX?
MOV BX, CX
ADD CX, BX
CMP BX, CX
MOV CX, BX
Đ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) dừng chương trình và trả về hệ điều hành.
MOV AX, 4C00H; INT 21H
CALL SBRK
MOV DX, 4C00H; INT 21H
RET
Đ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) dịch phải AX 2 bit:
SHL AX, 2
NEG AX, 2
SHR AX, 2
ADD AX, 2
Đ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) tính tổng hai số trong AX và BX, lưu vào CX.
CALL SUM
MOV CX, AX; ADD CX, BX
SUB AX, BX; MOV CX, AX
MUL AX, BX
Đ6ạn Lệnh nà6 đúng để (giả thiết dấu chấm phẩ. nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) gọi dịch vụ in ký tự trên màn hình:
INT 21H, AH=2
MOV AX, 02H; CALL PRINT
MOV AH, 1; INT 21H
MOV AH, 2; INT 21H
Đ6ạn Lệnh nà6 đúng để (giả thiết dấu chấm phẩ. nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) kiểm tra cờ ZF trước khi nhả:
JZ LABEL
JMP LABEL
CMP AX, 0; JMP
CALL ZF
Đ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ưu giá trị hiện tại của BX vào ngăn xếp:
POP BX
CALL BX
PUSH BX
INT 20H
Đ6ạn lệnh nà6 đúng để (giả thiết dấu chấm phẩ. nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) di chuyển địa chỉ đoạn dữ liệu và thành ghi DS:
MOV DS, AX
MOV AX, DATA; MOV DS, AX
MOV CX, DATA
CALL DS_INIT
Đoạn lệnh sau có lỗi gì?
MOV DS,1000H
MOV AX,
DS không thể chứa hằng số
AX không được khởi tạo
Không có lỗi
DS phải được khởi tạo thông qua AX
Đoạn lệnh sau có vấn đề gì khi sử dụng ngăn xếp?
PUSH BX
POP AX
BX bị ghi đè
Giá trị AX = AX + BX
Giá trị BX không phù hợp với AX
Không có vấn đề
Tại sao đoạn lệnh sau không thực hiện được đúng cách?
ADD AX,BH
MOV CX,
Lệnh ADD không tương thích
Giá trị AX không hợp lệ
Lệnh ADD không ảnh hưởng đến CX
Lệnh MOV không tương thích
Điểm hạn chế của đoạn lệnh sau là gì?
START:
MOV CX,10
LOOP START
Không có lệnh thoát vòng lặp
CX được giảm tự động
Vòng lặp chạy vô hạn
START không phải nhãn hợp lệ
Đoạn lệnh sau có vấn đề gì?
MOV AX,4C00H
INT 20H
AX bị ghi đè
Dịch vụ không được gọi đúng cách
INT 20H không hỗ trợ DOS
Lệnh INT không đúng chức năng
Đoạn mã sau gây ra lỗi gì?
MOV AX,BX
DIV BX
BX không được khởi tạo
AX không được khởi tạo
Không có lỗi
DIV không hỗ trợ BX
Lệnh NEG AX trong đoạn mã sau có thể dẫn đến kết quả gì?
MOV AX,98000H
NEG
Giá trị âm hợp lệ
Lỗi tràn số học
AX trở về 0
Không có lỗi
Đoạn mã sau gây ra lỗi gì?
MOV CX,0
LOOP
CX không hợp lệ
START không hợp lệ
Lỗi tràn ngăn xếp
Vòng lặp không bao giờ thực thi
Tại sao đoạn mã sau không hiển thị đúng ký tự?
MOV AH,2
MOV DL,'A'
INT 21H
DL không được khởi tạo đúng cách
INT 21H không hỗ trợ hiển thị ký tự
AH không đúng giá trị
Lệnh MOV không hợp lệ
Đoạn mã sau có vấn đề gì trong việc khởi tạo dữ liệu?
MOV AX,DATA
MOV DS,AX
AX không khởi tạo đúng cách
DS không tương thích với DATA
DATA không tương thích với AX
Không có vấn đề
Bộ vi điều khiển 8051 thuộc kiến trúc nào?
Vốn Cumulon
ARM
Harvard
MIPS
Bộ vi điều khiển 8051 có bao nhiêu chân I/O?
32 chân
40 chân
16 chân
8 chân
Dung lượng bộ nhớ RAM nội của 8051 là bao nhiêu?
512 bít
2 KB
1 KB
128 bít
Bộ nhớ ROM trên chip của 8051 có dung lượng bao nhiêu?
512 bít
4 KB
2 KB
128 bít
Bộ vi điều khiển 8051 có bao nhiêu thành ghi chức năng đặc biệt (SFRs)?
16
24
21
32
Bộ đếm/định thời (Timer) của 8051 có bao nhiêu bộ?
2 bộ
4 bộ
1 bộ
3 bộ
Chức năng của chân A (Control Access) trên 8051 là gì?
Kích hoạt ngắt ngoài
Lựa chọn sử dụng bộ nhớ ROM nội hay ngoài
Truy cập bộ nhớ dữ liệu
Điều khiển chế độ hoạt động
Thành ghi nào được sử dụng để lưu địa chỉ ngăn xếp trong 8051?
DPTR
PC
ACC
SP
Tại sao kiến trúc Harvard được áp dụng trong 8051?
Để tăng tốc độ xử lý bằng cách phân chia dữ liệu và chương trình
Để giảm chi phí phần cứng
Để hỗ trợ thêm các ngắt ngoài
Để mở rộng dung lượng bộ nhớ
Bộ nhớ dữ liệu và bộ nhớ chương trình trong 8051 được tổ chức như thế nào?
Kết hợp trong một không gian địa chỉ chung
Chỉ dùng bộ nhớ ngoài
Tách biệt hoàn toàn trong kiến trúc Harvard
Lưu trữ trong các thành ghi chức năng
Lợi ích của việc sử dụng thành ghi DPTR trong 8051 là gì?
Quản lý các ngắt hệ thống
Điều khiển cổng I/O
Lưu giá trị bộ đếm
Truy cập bộ nhớ ngoài
Vai trò của bộ đệm tích hợp (Accumulator) trong 8051 là gì?
Lưu trữ địa chỉ chương trình
Lưu trữ tạm thời các kết quả tính toán
Điều khiển chế độ hoạt động
Đếm các tín hiệu xung
Tại sao bộ vi điều khiển 8051 cần có bộ đếm/định thời?
Để điều khiển các cổng xuất/nhập
Để thực hiện các phép toán logic
Để tạo độ trễ hoặc đếm xung nhịp trong ứng dụng thời gian thực
Để điều khiển ngắt ngoài
Chân RST (Reset) trên 8051 hoạt động như thế nào?
Đặt lại giá trị của thành ghi ACC
Đặt lại các cổng I/O về giá trị mặc định
Đặt lại giá trị của bộ đếm
Đặt lại toàn bộ hệ thống về trạng thái ban đầu
Tại sao các cổng I/O của 8051 có khả năng đa chức năng?
Để tiết kiệm số lượng chân và tăng tính linh hoạt
Để mở rộng bộ nhớ ngoài
Để hỗ trợ nhiều chế độ định thời khác nhau
Để xử lý tín hiệu ngắt hiệu quả hơn
Vai trò của thành ghi PC (Program Counter) trong 8051 là gì?
Lưu địa chỉ dữ liệu trong RAM
Lưu địa chỉ lệnh kế tiếp cần thực thi
Điều khiển trạng thái của bộ đếm
Tạo xung định thời
Bộ nhớ RAM nội của 8051 có dung lượng bao nhiêu?
1 KB
64 byte
128 byte
256 byte
Dung lượng bộ nhớ ROM nội trong 8051 là bao nhiêu?
2 KB
4 KB
8 KB
512 byte
Tổ chức bộ nhớ của 8051 tuân theo kiến trúc nào?
Harvard
Von Neumann
ARM
MIPS
Bộ nhớ RAM nội trống 8051 được chia thành mấy vùng chính?
2 vùng
3 vùng
4 vùng
5 vùng
Vùng thanh ghi làm việc (Working Registers) trong RAM nội của 8051 chiếm bao nhiêu bít?
8 bít
16 bít
32 bít
64 bít
Vùng RAM địa chỉ bit (Bit-Addressable) của 8051 chiếm bao nhiêu bít?
16 bít
32 bít
8 bít
64 bít
Bộ nhớ chương trình của 8051 được lưu trữ trong đâu?
RAM nội
RAM ngoài
Bộ đếm/định thời
ROM nội hoặc ROM ngoài
Thanh ghi DPTR trong 8051 dùng để truy cập bộ nhớ nào?
Bộ nhớ RAM nội
ROM nội hoặc ROM ngoài
Bộ nhớ địa chỉ bit
Bộ nhớ ngăn xếp
Tại sao bộ nhớ RAM nội trống 8051 được chia thành nhiều vùng?
Để tăng hiệu quả truy cập và quản lý dữ liệu
Để hỗ trợ bộ nhớ ngoài
Để tiết kiệm dung lượng bộ nhớ
Để lưu trữ các cờ trạng thái
Vùng địa chỉ bit (Bit-Addressable) trong 8051 thường được dùng để làm gì?
Lưu trữ dữ liệu tạm thời
Lưu chương trình
Điều khiển ngắt hệ thống
Điều khiển các bit trạng thái hoặc thiết bị ngoại vi
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ì?
Tăng dung lượng bộ nhớ
Cho phép truy cập đồng thời dữ liệu và chương trình
Giảm chi phí phần cứng
Hỗ trợ nhiều chế độ ngắt
Thành ghi SP (Stack Pointer) trong 8051 có vai trò gì trong tổ chức bộ nhớ?
Quản lý bộ nhớ chương trình
Điều khiển các cổng I/O
Trỏ đến vị trí trên ngăn xếp
Quản lý thành ghi làm việc
Khi nào bộ nhớ ngoài được sử dụng thay vì bộ nhớ nội trong 8051?
Khi truy cập dữ liệu trong RAM địa chỉ bit
Khi xử lý các ngắt ngoài
Khi thực hiện các phép toán logic
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
Vùng RAM địa chỉ bit trong 8051 hỗ trợ truy cập từng bit có lợi ích gì?
Để dễ dàng điều khiển các thiết bị ngoại vi hoặc cờ trạng thái
Để lưu trữ các giá trị lớn
Để xử lý các ngắt ngoài nhanh hơn
Để hỗ trợ nhiều thành ghi hơn
Tại sao cần thành ghi DPTR trong việc truy cập bộ nhớ ngoài?
Để điều khiển các cổng I/O
Để xác định địa chỉ bộ nhớ ngoài một cách hiệu quả
Để quản lý bộ đếm/định thời
Để lưu các giá trị cờ trạng thái
Điều gì xảy ra nếu không khởi tạo đúng giá trị của thành ghi SP trong 8051?
Các cổng I/O không hoạt động
Bộ nhớ ngoài không thể truy cập
Bộ đếm/định thời hoạt động không chính xác
Ngăn xếp có thể ghi đè lên dữ liệu quan trọng
8051 hỗ trợ bao nhiêu chế độ địa chỉ?
5 chế độ
4 chế độ
6 chế độ
3 chế độ
Trong chế độ địa chỉ tức thời (Immediate), toán hạng được lưu ở đâu?
Trong bộ nhớ ngoài
Trong chính lệnh đó
Trong thanh ghi ACC
Trong ngăn xếp
Chế độ địa chỉ trực tiếp (Direct) sử dụng địa chỉ nào để truy cập dữ liệu?
Địa chỉ trong thanh ghi SP
Địa chỉ trong ngăn xếp
Địa chỉ chỉ số
Địa chỉ cụ thể trong RAM nội
Chế độ địa chỉ gián tiếp (Indirect) sử dụng thanh ghi nào để trỏ đến địa chỉ dữ liệu?
ACC
DPTR
R0 và R1
PC
Chế độ địa chỉ thanh ghi (Register) sử dụng thanh ghi nào để lưu trữ toán hạng?
R0 đến R7
DPTR
PSW
PC
Chế độ địa chỉ chỉ số (Indexed) thường được sử dụng để làm gì?
Truy cập bộ nhớ RAM nội
Truy cập bộ nhớ chương trình
Lưu trữ kết quả phép toán
Gọi chương trình con
Chế độ địa chỉ nào sử dụng thanh ghi DPTR để truy cập dữ liệu?
Tức thời
Thanh ghi
Chỉ số
Trực tiếp
Trong chế độ địa chỉ gián tiếp, toán hạng được lưu trữ ở đâu?
Trong chính lệnh đó
Trong ACC
Trong RAM nội hoặc bộ nhớ ngoài
Tại địa chỉ được trỏ bởi R0 hoặc R1
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ị?
Để tiết kiệm dung lượng bộ nhớ
Để gán giá trị trực tiếp cho thanh ghi hoặc bộ nhớ
Để tối ưu hóa tốc độ xử lý lệnh
Để giảm số lượng thanh ghi cần sử dụng
Đ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 chỉ trực tiếp truy cập ngữ liệu, còn gián tiếp sử dụng thành ghi để trỏ đến dữ liệu
Trực tiếp chỉ sử dụng chế bộ nhớ ngoài, gián tiếp chế bộ nhớ nội
Gián tiếp có tốc độ nhanh hơn trực tiếp
Gián tiếp không sử dụng các thành ghi
Trong chế độ địa chỉ chỉ số (Indexed), tại sao cần kết hợp thành ghi ACC với DPTR?
Để giảm dung lượng chương trình
Để tối ưu hóa phép toán số học
Để tính toán địa chỉ bộ nhớ chương trình
Để lưu trữ tạm thời kết quả
Chế độ địa chỉ gián tiếp thường được sử dụng khi nào?
Khi truy cập bộ nhớ ROM
Khi thực hiện phép toán số học
Khi xử lý các ngắt hệ thống
Khi địa chỉ dữ liệu thay đổi linh hoạt
Tại sao chế độ địa chỉ thành ghi () được ưu tiên trong các phép toán đơn giản?
Vì tốc độ truy cập thành ghi nhanh hơn bộ nhớ
Vì thành ghi hỗ trợ nhiều chế độ ngắt hơn
Vì thành ghi cho phép lưu trữ chương trình
Vì thành ghi có dung lượng lớn hơn bộ nhớ
Lợi ích chính của chế độ địa chỉ chỉ số (Indexed ) là gì?
Truy cập nhanh vào ngăn xếp
Duyệt các mảng dữ liệu trong bộ nhớ chương trình
Thực hiện phép toán số học phức tạp
Tăng tốc độ xử lý ngắt ngoài
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?
Lệnh bị bỏ qua
Hệ thống tự động sử lý lỗi
Truy cập vào bộ nhớ ngoài nếu có
Gây lỗi phần mềm hoặc dừng chương trình
Chế độ địa chỉ nào thường được sử dụng để đọc dữ liệu từ một bảng hằng trong ROM?
Tức thời
Gián tiếp
Trực tiếp
Chỉ số
Lệnh MOV A, #25H thực hiện chức năng gì?
Chép giá trị từ thanh ghi A và địa chỉ 25H
Chép giá trị từ địa chỉ 25H và thanh ghi A
Gán giá trị 25H trực tiếp vào thanh ghi A
Chuyển giá trị từ thanh ghi A sang bộ nhớ ngoài
Lệnh ADD A, R0 trong 8051 thực hiện nhiệm vụ gì?
Cộng giá trị trong R0 và thanh ghi A
Cộng giá trị trong thanh ghi A và R0
Lấy giá trị từ bộ nhớ và cộng vào A
Ghi giá trị A vào địa chỉ R0
Tại sao cần sử dụng lệnh SJMP LAB trong chương trình?
Để nhảy đến một địa chỉ cố định trong ROM
Để nhảy đến nhãn LAB trong cùng đoạn mã
Để so sánh hai giá trị trước khi nhảy
Để thực hiện nhảy có điều kiện
Lệnh CLR A trong tập lệnh 8051 có tác dụng gì?
Gán giá trị mặc định cho thanh ghi A
Đặt tất cả các bit trong A thành 1
Đặt giá trị của A bằng hằng số
Xóa toàn bộ giá trị trong thanh ghi A
Lệnh SETB P1.0 thực hiện nhiệm vụ gì?
Đặt bit P1.0 thành 1
Xóa bit P1.0 về 0
Đảo trạng thái bit P1.0
Gán giá trị của P1.0 vào thanh ghi A
Lệnh DJNZ R2, LAB được sử dụng để làm gì?
Giảm giá trị trong R2 và thoát vòng lặp
Giảm giá trị trong R2 và nhảy đến LAB nếu R2 ≠ 0
Tăng giá trị trong R2 và lặp lại
Ghi giá trị R2 vào LAB
Lệnh ANL A, #0F0H có chức năng gì?
Lấy giá trị từ địa chỉ 0F0H và lưu vào A
Cộng giá trị trong A với hằng số 0F0H
Đặt các bit trong A thành giá trị 0F0H
Thực hiện phép toán AND giữa A và hằng số 0F0H
Lệnh XCH A, R5 thực hiện điều gì?
Đổi chỗ giá trị giữa thanh ghi A và R5
Gán giá trị R5 vào A
Cộng giá trị A với giá trị R5
Xóa giá trị trong A và R5
Lệnh INC DPTR được dùng khi nào?
Khi khởi tạo bộ nhớ RAM nội
Khi tăng giá trị của con trỏ dữ liệu DPTR lên 1
Khi truy cập ngắt ngoài
Khi đặt lại giá trị thanh ghi A
Lệnh ORL A, #0F0H có tác dụng gì?
Đặt tất cả các bit trong A thành 1
Lấy giá trị từ địa chỉ 0F0H và lưu vào A
Thực hiện phép toán OR giữa A và hằng số 0F0H
Gán giá trị 0F0H vào A
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:
MOV A, #7FH
MOV A, 7FH
CLR A; ADD A, #7FH
MOV R0, #7FH; MOV A, R0
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 LAB L
MOV C, P1.3
JB P1.3, LAB L
SETB P1.3
DJNZ P1.3, LAB L
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à thành ghi A:
ADD A, #R1
MOV A, R1; ADD A, A
ADD A, R1
MOV R1, A; ADD A, R1
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 thành ghi A:
MOV A, #00H
CLR R0; MOV A, R0
SUB A, A
CLR A
Đ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:
MOV R2, #10; DJNZ R2, LOOP
MOV R2, #10; SJMP LOOP
MOV R2, #0A; JNZ LOOP
INC R2; LOOP
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 thành ghi A = 0 thì nhảy đến nhãn ZERO:
JB A, ZERO
JZ ZERO
CJN A, #0, ZERO
ANL A, #00H; JNZ
ZERO
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:
MOV R3, @R0
MOV @R0, #R3
MOV @R0, R3
MOV R0, R3
Đ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:
ORL P2, #00H
SETB P2
MOV P2, #0FFH
SETB P2.0; SETB P2.1; SETB P2.2
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:
ACALL SUB
SJMP SUB
JMP SUB
JNB SUB
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ùi giá trị từ thanh ghi A và địa chỉ 40H:
MOV 40H, A
MOV @40H, A
MOV A, 40H
MOV R0, 40H; MOV @R0, A
Chỉ thị nào dùng để khởi tạo hằng số trong lập trình hợp ngữ 8051?
EQU
ORG
DB
DW
Khởi tạo biến trong lập trình hợp ngữ 8051 thường sử dụng chỉ thị nào?
MOV
DB
Q
ORG
Lệnh nào được sử dụng để gọi chương trình con trong hợp ngữ 8051?
JMP
RET
MOV
LCALL
Lệnh RET trong hợp ngữ 8051 có chức năng gì?
Kết thúc chương trình con và quay lại chương trình chính
Chuyển đến một nhãn khác trong chương trình
Kết thúc chương trình chính
Khởi động lại chương trình
Lệnh LCALL trong hợp ngữ 8051 thực hiện điều gì?
Gọi chương trình con tại địa chỉ 8-bit
Kết thúc chương trình con
Gọi chương trình con tại địa chỉ 16-bit
Chuyển giá trị giữa các thanh ghi
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?
ND
MOV
DB
ORG
Trong hợp ngữ 8051, lệnh ADD được sử dụng để thực hiện thao tác gì?
Cộng hai giá trị
Trừ hai giá trị
Di chuyển dữ liệu
So sánh giá trị
Lệnh END trong chương trình hợp ngữ 8051 được sử dụng để làm gì?
Đặt giá trị ban đầu cho thành ghi
Xác định vị trí bắt đầu của chương trình
Kết thúc chương trình
Xóa nội dung thành ghi
Lệnh ANL trong hợp ngữ 8051 được sử dụng để thực hiện phép toán nào?
Phép OR
Phép AND
Phép XOR
Phép NOT
Trong hợp ngữ 8051, chương trình cần được thiết kế để thực hiện chức năng gì?
Lưu trữ dữ liệu
Xóa dữ liệu trong bộ nhớ
Tăng hiệu suất xử lý
Tách biệt các nhiệm vụ cụ thể để tái sử dụng
Điều gì xảy ra khi thực hiện lệnh LCALL SUB1 trong hợp ngữ 8051?
Chương trình nhảy đến chương trình con SUB1 và tiếp tục thực thi
Chương trình nhảy đến SUB1 và không quay lại chương trình chính
Dừng chương trình hiện tại và gọi B1
Thực hiện lệnh đầu tiên trong chương trình chính
Ý nghĩa của khởi tạo COUNT 10 trong chương trình hợp ngữ 8051 là gì?
Tạo một biến có giá trị mặc định là 10
Lưu giá trị 10 vào thành ghi COUNT
Đặt hằng số COUNT có giá trị 10
Chỉ định địa chỉ bộ nhớ cho COUNT
Trong lệnh MOV R2, COUNT, nếu COUNT được khởi tạo là 05H, thì kết quả của lệnh này là gì?
Giá trị trong R2 được lưu vào COUNT
Thành ghi R2 nhận giá trị 05H
Giá trị trong COUNT được nhân với R2
R2 được xóa về 0
Lệnh ADD A, COUNT thực hiện gì nếu COUNT là hằng số đã khởi tạo bằng EQU?
Thực hiện phép cộng tức thì với giá trị trong thành ghi A
Lưu giá trị COUNT vào A
Thực hiện phép nhân giữa A và COUNT
Cộng giá trị của COUNT vào A
Khi sử dụng lệnh RET, CPU sẽ thực hiện thao tác gì?
Quay lại vị trí tiếp theo trong chương trình chính
Tiếp tục thực hiện chương trình còn lại
Lặp lại chương trình còn lại
Kết thúc chương trình chính
Ý nghĩa của lệnh PUSH ACC trong hợp ngữ 8051 là gì?
Lấy giá trị từ stack và lưu vào thanh ghi A
Ghi giá trị tức thì vào thanh ghi A
Lưu giá trị của thanh ghi A vào stack
Tăng giá trị của thanh ghi A
Khi thực hiện lệnh POP ACC, điều gì sẽ xảy ra?
Giá trị của thanh ghi A bị xóa
Giá trị từ stack được lấy và lưu vào thanh ghi A
Giá trị từ thanh ghi A được đẩy vào stack
Tất cả giá trị trong stack bị xóa
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?
Chương trình con
Thanh ghi đệm
Bộ định thời
Ngắt ngoài
Đ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?
CPU tiếp tục thực hiện lệnh tiếp theo
CPU quay lại đầu chương trình
CPU dừng chương trình hiện tại
CPU nhảy không điều kiện đến nhãn END_LOOP
Chỉ thị DB trong hợp ngữ 8051 thường được sử dụng để làm gì?
Khởi tạo biến
Kết thúc chương trình
Khởi tạo dữ liệu hằng trong bộ nhớ
Xóa giá trị trong thanh ghi
Chức năng của cổng P0 trong 8051 là gì?
Cổng I/O hai chiều và bus địa chỉ/bus dữ liệu
Chỉ sử dụng làm cổng xuất dữ liệu
Chức năng của cổng P0 trong 8051 là gì?
Cổng I/O hai chiều và bus địa chỉ/bus dữ liệu
Chỉ sử dụng làm cổng xuất dữ liệu
Chỉ sử dụng làm cổng nhập dữ liệu
Cổng điều khiển chế độ ngắt
Cổng P1 trong 8051 thường được sử dụng với mục đích gì?
Kết nối bộ nhớ ngoài
Làm bus điều khiển
Điều khiển ngắt ngoài
Là cổng I/O độc lập
Cổng P2 của vi xử lý 8051 thường được sử dụng làm bus địa chỉ khi nào?
Khi kết nối với thiết bị ngắt ngoài
Khi 8051 truy cập bộ nhớ ngoài
Khi sử dụng định thời
Khi lập trình cổng nối tiếp
Tại sao cần sử dụng điện trở kéo lên (pull-up resistor) với cổng P0?
Để giảm nhiễu tín hiệu
Để tăng tốc độ xử lý tín hiệu
Vì P0 không tích hợp sẵn điện trở kéo lên
Để hỗ trợ truy cập bộ nhớ ROM
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?
Điều khiển ngắt, truyền thông nối tiếp và điều khiển bộ đếm
Truy cập bộ nhớ ROM ngoài
Làm bus địa chỉ khi
Điều khiển bộ nhớ RAM nội
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.
MOV P1, #0
SETB P1
MOVC P1, 0
XRL P1, 0
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.
CJNE P3.2, #1, CHECK
SETB P3.2; SJMP CHECK
MOV C, P3.2; JC CHECK
JB P3.2, CHECK
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.
MOV A, P2
MOV P2, A
ORL P2, A
S TB P2
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.
MOV P1.5, #1
ORL P1, #20H
ANL P1, #DFH
SETB P1.5
Đáp án nào đúng khi thực hiện đoạn mã lệnh sau
MOV A, #0FFH
MOV P0, A
Có lỗi vì P0 không hỗ trợ giá trị 0FFH
Không có lỗi nhưng cần sử dụng điện trở kéo lên P0
Có lỗi vì P0 không hỗ trợ xuất dữ liệu
Có lỗi sai tên thanh ghi A
Tại sao lệnh sau lại có lỗi khi thực thi?
MOV A,P1
CPL P1
Vì toán hạng của lệnh MOV không đúng cú pháp
Vì lệnh MOV A không hỗ trợ dữ liệu từ cổng P1
Vì lệnh CPL không hỗ trợ toán hạng có kích thước 8 bit
Vì CPL không hỗ trợ địa chỉ trực tiếp P1
Đ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?
Các thiết bị ngoại vi không hoạt động
Chương trình bị treo
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
P3 tự động đặt về giá trị mặc định
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?
Dữ liệu có thể bị ghi đè bởi bus địa chỉ
Không có lỗi xảy ra
P2 tự động xử lý dữ liệu
P2 chỉ hỗ trợ đầu vào
Nhận xét nào đúng với đoạn mã sau:
SETB P0.7
MOV A, P0
Giá trị P0.7 không được gán đúng cách
Điện trở kéo lên cần được sử dụng cho P0
Không thể đọc dữ liệu từ P0 sau khi thiết lập P0.7
Cần gán giá trị cho A trước
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?
Giá trị luôn bằng 0
Giá trị luôn bằng 1
Một số bit có thể bị ảnh hưởng bởi chức năng đặc biệt của P3
P3 tự động cấu hình
Lệnh nào sau đây thực hiện đặt 4 bit cuối của P1 bằng 1?
ORL P1, #0FH
ANL P1, #0FH
ORL P1, #0F0H
ANL P1, #0F0H
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?
Vì P0 có thể được sử dụng làm bus dữ liệu/bus địa chỉ
Vì P0 không hỗ trợ đầu vào
Vì P0 không hỗ trợ tín hiệu ngắt
Vì P0 không có chức năng đặc biệt
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?
Ngắt ngoài luôn được kích hoạt
Ngắt ngoài không thể kích hoạt
Giá trị P3.2 hoặc P3.3 luôn bằng 0
Giá trị P3.2 hoặc P3.3 luôn bằng 1
Đ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
P2 không hỗ trợ đầu vào từ thiết bị ngoại vi
Cần cấu hình P2 trước khi đọc dữ liệu
P2 có thể bị ảnh hưởng bởi bus địa chỉ cao khi kết nối bộ nhớ ngoài
P2 chỉ hỗ trợ đầu ra
