Khi sử dụng Timer và đã thiết lập bit điều khiển Timer chạy, ta cần thiết lập bit:
Trả lời:
Đáp án đúng: D
Khi sử dụng Timer và đã thiết lập bit điều khiển Timer chạy, bit TR (Timer Run) phải được thiết lập lên 1. Bit TR là bit cho phép Timer hoạt động. Khi TR = 1, Timer bắt đầu đếm; khi TR = 0, Timer dừng đếm.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: B
The original code block has the following structure:
CJNE A, #30H, TIEP
TIEP: JNC SKIP
The instruction "CJNE A, #30H, TIEP" compares the value of register A with the value 30H. If A is not equal to 30H, the program jumps to the label TIEP. If A is equal to 30H, the program executes the next instruction immediately after CJNE.
The instruction "TIEP: JNC SKIP" checks the Carry flag (C). If the Carry flag is not set (C=0), the program jumps to the label SKIP. If the Carry flag is set (C=1), the program executes the next instruction.
To replace the above code, we need to find an equivalent code block that performs the same function.
* Option A: CJNE A, #30H, $ JNC SKIP
* Using the current address ($) as a jump label for CJNE is illogical because it doesn't actually jump to a specific location but only executes the next instruction. After CJNE, it will go to JNC SKIP. This option is not equivalent because it always executes JNC SKIP if A!=30H, which is not consistent with the original logic.
* Option B: CJNE A, #30H, $+3 JNC SKIP
* `$+3` means jumping to the current address plus 3 bytes. If the `JNC SKIP` instruction is compiled into 2 or 3 bytes, jumping to $+3$ might skip the `JNC SKIP` instruction or jump into the middle of the instruction, causing an error. This code is not equivalent.
* Option C: CJNE A, #30H, $-3 JNC SKIP
* Similarly, $-3$ means jumping to the current address minus 3 bytes. This can lead to jumping back into the previous instruction or into the middle of the instruction, causing unwanted errors. This code is not equivalent.
* Option D: CJNE A, #30H, SKIP TIEP: JNC SKIP
* This option is incorrect because the label TIEP is placed after the CJNE instruction and before the JNC SKIP instruction, which is syntactically invalid in most compilers/assemblers. CJNE cannot jump to SKIP.
However, none of the options above are completely equivalent and accurate in function compared to the original code. Therefore, there is no correct answer in this case. It's possible the question lacks a valid replacement.
Based on analysis, no replacement is fully equivalent.
CJNE A, #30H, TIEP
TIEP: JNC SKIP
The instruction "CJNE A, #30H, TIEP" compares the value of register A with the value 30H. If A is not equal to 30H, the program jumps to the label TIEP. If A is equal to 30H, the program executes the next instruction immediately after CJNE.
The instruction "TIEP: JNC SKIP" checks the Carry flag (C). If the Carry flag is not set (C=0), the program jumps to the label SKIP. If the Carry flag is set (C=1), the program executes the next instruction.
To replace the above code, we need to find an equivalent code block that performs the same function.
* Option A: CJNE A, #30H, $ JNC SKIP
* Using the current address ($) as a jump label for CJNE is illogical because it doesn't actually jump to a specific location but only executes the next instruction. After CJNE, it will go to JNC SKIP. This option is not equivalent because it always executes JNC SKIP if A!=30H, which is not consistent with the original logic.
* Option B: CJNE A, #30H, $+3 JNC SKIP
* `$+3` means jumping to the current address plus 3 bytes. If the `JNC SKIP` instruction is compiled into 2 or 3 bytes, jumping to $+3$ might skip the `JNC SKIP` instruction or jump into the middle of the instruction, causing an error. This code is not equivalent.
* Option C: CJNE A, #30H, $-3 JNC SKIP
* Similarly, $-3$ means jumping to the current address minus 3 bytes. This can lead to jumping back into the previous instruction or into the middle of the instruction, causing unwanted errors. This code is not equivalent.
* Option D: CJNE A, #30H, SKIP TIEP: JNC SKIP
* This option is incorrect because the label TIEP is placed after the CJNE instruction and before the JNC SKIP instruction, which is syntactically invalid in most compilers/assemblers. CJNE cannot jump to SKIP.
However, none of the options above are completely equivalent and accurate in function compared to the original code. Therefore, there is no correct answer in this case. It's possible the question lacks a valid replacement.
Based on analysis, no replacement is fully equivalent.
Lời giải:
Đáp án đúng: C
Đoạn mã Assembler thực hiện các bước sau:
1. `ORG 0000H`: Khai báo chương trình bắt đầu từ địa chỉ 0000H.
2. `MOV 30H, #0B0H`: Gán giá trị B0H (hệ thập lục phân) vào ô nhớ có địa chỉ 30H. Dấu `#` chỉ ra rằng đây là một giá trị trực tiếp.
3. `MOV A, 30H`: Sao chép nội dung của ô nhớ có địa chỉ 30H vào thanh ghi A. Vì ô nhớ 30H đang chứa giá trị B0H, thanh ghi A sẽ nhận giá trị này.
4. `END`: Kết thúc chương trình.
Vậy, sau khi thực hiện đoạn mã, thanh ghi A sẽ chứa giá trị B0H.
1. `ORG 0000H`: Khai báo chương trình bắt đầu từ địa chỉ 0000H.
2. `MOV 30H, #0B0H`: Gán giá trị B0H (hệ thập lục phân) vào ô nhớ có địa chỉ 30H. Dấu `#` chỉ ra rằng đây là một giá trị trực tiếp.
3. `MOV A, 30H`: Sao chép nội dung của ô nhớ có địa chỉ 30H vào thanh ghi A. Vì ô nhớ 30H đang chứa giá trị B0H, thanh ghi A sẽ nhận giá trị này.
4. `END`: Kết thúc chương trình.
Vậy, sau khi thực hiện đoạn mã, thanh ghi A sẽ chứa giá trị B0H.
Lời giải:
Đáp án đúng: C
Đoạn mã Assembler thực hiện các bước sau:
1. `ORG 0000H`: Khai báo chương trình bắt đầu từ địa chỉ 0000H.
2. `MOV 40H, #65`: Gán giá trị 65 (41H trong hệ thập lục phân) vào ô nhớ có địa chỉ 40H.
3. `MOV 41H, #19`: Gán giá trị 19 (13H trong hệ thập lục phân) vào ô nhớ có địa chỉ 41H.
4. `MOV R1, #40H`: Gán giá trị 40H (địa chỉ) vào thanh ghi R1.
5. `MOV A, R1`: Đây là điểm mấu chốt. Lệnh này gán giá trị của thanh ghi R1 vào thanh ghi A. Thanh ghi R1 đang chứa địa chỉ 40H, do đó thanh ghi A sẽ nhận giá trị 40H.
Vậy, kết quả của thanh ghi A là 40H.
1. `ORG 0000H`: Khai báo chương trình bắt đầu từ địa chỉ 0000H.
2. `MOV 40H, #65`: Gán giá trị 65 (41H trong hệ thập lục phân) vào ô nhớ có địa chỉ 40H.
3. `MOV 41H, #19`: Gán giá trị 19 (13H trong hệ thập lục phân) vào ô nhớ có địa chỉ 41H.
4. `MOV R1, #40H`: Gán giá trị 40H (địa chỉ) vào thanh ghi R1.
5. `MOV A, R1`: Đây là điểm mấu chốt. Lệnh này gán giá trị của thanh ghi R1 vào thanh ghi A. Thanh ghi R1 đang chứa địa chỉ 40H, do đó thanh ghi A sẽ nhận giá trị 40H.
Vậy, kết quả của thanh ghi A là 40H.
Lời giải:
Đáp án đúng: A
Đoạn mã Assembler thực hiện các bước sau:
1. `MOV R0, #30`: Gán giá trị 30H cho thanh ghi R0. Điều này có nghĩa là R0 trỏ đến địa chỉ bộ nhớ 30H.
2. `MOV 31H, #4C`: Gán giá trị 4CH cho ô nhớ có địa chỉ 31H.
3. `MOV @R0, 31H`: Đây là lệnh quan trọng nhất. Nó di chuyển nội dung của ô nhớ có địa chỉ 31H (tức là giá trị 4CH) vào ô nhớ có địa chỉ được trỏ bởi R0. Vì R0 đang chứa giá trị 30H, lệnh này sẽ di chuyển giá trị 4CH vào ô nhớ có địa chỉ 30H.
Vậy, sau khi thực hiện đoạn mã, ô nhớ có địa chỉ 30H sẽ chứa giá trị 4CH.
1. `MOV R0, #30`: Gán giá trị 30H cho thanh ghi R0. Điều này có nghĩa là R0 trỏ đến địa chỉ bộ nhớ 30H.
2. `MOV 31H, #4C`: Gán giá trị 4CH cho ô nhớ có địa chỉ 31H.
3. `MOV @R0, 31H`: Đây là lệnh quan trọng nhất. Nó di chuyển nội dung của ô nhớ có địa chỉ 31H (tức là giá trị 4CH) vào ô nhớ có địa chỉ được trỏ bởi R0. Vì R0 đang chứa giá trị 30H, lệnh này sẽ di chuyển giá trị 4CH vào ô nhớ có địa chỉ 30H.
Vậy, sau khi thực hiện đoạn mã, ô nhớ có địa chỉ 30H sẽ chứa giá trị 4CH.
Lời giải:
Đáp án đúng: A
Đầu tiên, A được gán giá trị 2EH (46 trong hệ thập phân).
Sau đó, INC A tăng giá trị của A lên 1, A trở thành 2FH (47 trong hệ thập phân).
Tiếp theo, ANL A, #19H thực hiện phép AND logic giữa A (2FH) và 19H (25 trong hệ thập phân). 2FH (00101111) AND 19H (00011001) = 00001001, tương đương 09H.
R0 được gán giá trị 31H.
Cuối cùng, MOV @R0, A chuyển giá trị của A (09H) vào ô nhớ có địa chỉ được lưu trong R0, tức là ô nhớ có địa chỉ 31H. Do đó, ô nhớ 31H sẽ chứa giá trị 09H. Tuy nhiên không có đáp án nào là 09H. Ta xét các đáp án:
A. 03H
B. 19H
C. 2EH
D. 31H
Vì không có đáp án nào trùng với kết quả tính toán (09H) nên câu hỏi này có lẽ bị sai sót hoặc thiếu thông tin. Tuy nhiên nếu giả sử có một sai sót nhỏ trong đề bài. Giả sử ANL A, #19H thành ANL A, #1FH, thì 2FH (00101111) AND 1FH (00011111) = 00001111, tương đương 0FH. Như vậy vẫn không có đáp án đúng.
Nếu ANL A, #31H thì 2FH (00101111) AND 31H (00110001) = 00100001, tương đương 21H. Như vậy vẫn không có đáp án đúng.
Nếu ANL A, #2EH thì 2FH (00101111) AND 2EH (00101110) = 00101110, tương đương 2EH. Như vậy đáp án C có thể đúng nếu đề bài có sai sót.
Trong trường hợp này, không có đáp án chính xác hoàn toàn dựa trên đoạn mã đã cho.
Sau đó, INC A tăng giá trị của A lên 1, A trở thành 2FH (47 trong hệ thập phân).
Tiếp theo, ANL A, #19H thực hiện phép AND logic giữa A (2FH) và 19H (25 trong hệ thập phân). 2FH (00101111) AND 19H (00011001) = 00001001, tương đương 09H.
R0 được gán giá trị 31H.
Cuối cùng, MOV @R0, A chuyển giá trị của A (09H) vào ô nhớ có địa chỉ được lưu trong R0, tức là ô nhớ có địa chỉ 31H. Do đó, ô nhớ 31H sẽ chứa giá trị 09H. Tuy nhiên không có đáp án nào là 09H. Ta xét các đáp án:
A. 03H
B. 19H
C. 2EH
D. 31H
Vì không có đáp án nào trùng với kết quả tính toán (09H) nên câu hỏi này có lẽ bị sai sót hoặc thiếu thông tin. Tuy nhiên nếu giả sử có một sai sót nhỏ trong đề bài. Giả sử ANL A, #19H thành ANL A, #1FH, thì 2FH (00101111) AND 1FH (00011111) = 00001111, tương đương 0FH. Như vậy vẫn không có đáp án đúng.
Nếu ANL A, #31H thì 2FH (00101111) AND 31H (00110001) = 00100001, tương đương 21H. Như vậy vẫn không có đáp án đúng.
Nếu ANL A, #2EH thì 2FH (00101111) AND 2EH (00101110) = 00101110, tương đương 2EH. Như vậy đáp án C có thể đúng nếu đề bài có sai sót.
Trong trường hợp này, không có đáp án chính xác hoàn toàn dựa trên đoạn mã đã cho.
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy
89 tài liệu310 lượt tải

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin
125 tài liệu441 lượt tải

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông
104 tài liệu687 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán
103 tài liệu589 lượt tải

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp
377 tài liệu1030 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
99 tài liệu1062 lượt tải
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.
77.000 đ/ tháng