Cho đoạn mã Assembler sau:
ORG 0000H
MOV R0, #0FFH
INC R0
END.
Kết quả của thanh ghi R0 là:
Trả lời:
Đáp án đúng: C
Đoạn mã Assembler thực hiện các bước sau:
1. `MOV R0, #0FFH`: Gán giá trị FFH (255 trong hệ thập phân) vào thanh ghi R0.
2. `INC R0`: Tăng giá trị của thanh ghi R0 lên 1.
Khi R0 có giá trị FFH và ta tăng nó lên 1, nó sẽ tràn (overflow) và trở về 00H. Điều này là do thanh ghi R0 thường có kích thước 8 bit, và giá trị lớn nhất mà nó có thể chứa là FFH. Khi vượt quá giá trị này, nó sẽ quay về 0.
Vậy, kết quả cuối cùng của thanh ghi R0 là 00H.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: C
Đoạn mã Assembly thực hiện phép nhân hai số.
- `MOV A, #15H`: Gán giá trị 15H (tương đương 21 trong hệ thập phân) vào thanh ghi A.
- `MOV B, #40H`: Gán giá trị 40H (tương đương 64 trong hệ thập phân) vào thanh ghi B.
- `MUL AB`: Thực hiện phép nhân giữa hai thanh ghi A và B. Kết quả của phép nhân này (21 * 64 = 1344) được lưu trữ trong hai thanh ghi: thanh ghi A chứa byte thấp (low byte) và thanh ghi B chứa byte cao (high byte).
Để tìm giá trị của thanh ghi A, ta cần lấy byte thấp của kết quả 1344.
1344 trong hệ thập lục phân là 0540H.
Vậy byte thấp là 40H. Do đó, giá trị của thanh ghi A là 40H.
- `MOV A, #15H`: Gán giá trị 15H (tương đương 21 trong hệ thập phân) vào thanh ghi A.
- `MOV B, #40H`: Gán giá trị 40H (tương đương 64 trong hệ thập phân) vào thanh ghi B.
- `MUL AB`: Thực hiện phép nhân giữa hai thanh ghi A và B. Kết quả của phép nhân này (21 * 64 = 1344) được lưu trữ trong hai thanh ghi: thanh ghi A chứa byte thấp (low byte) và thanh ghi B chứa byte cao (high byte).
Để tìm giá trị của thanh ghi A, ta cần lấy byte thấp của kết quả 1344.
1344 trong hệ thập lục phân là 0540H.
Vậy byte thấp là 40H. Do đó, giá trị của thanh ghi A là 40H.
Lời giải:
Đáp án đúng: D
Đoạn mã Assembly thực hiện phép nhân hai số 15H và 40H. Lệnh MUL AB nhân giá trị của thanh ghi A (15H) với giá trị của thanh ghi B (40H). Kết quả của phép nhân được lưu trữ trong hai thanh ghi A và B. Thanh ghi A chứa byte thấp (LSB) của kết quả, và thanh ghi B chứa byte cao (MSB) của kết quả.
Tính toán: 15H * 40H = 21H * 64D = 336D = 150H = 0150H. Byte thấp (50H) được lưu trong A, byte cao (01H) được lưu trong B. Tuy nhiên, vì các đáp án đưa ra không có đáp án 01H, và có đáp án 05H, ta xét đến trường hợp có lỗi trong đề bài, giá trị 15H ở hệ Hex đã bị viết nhầm thành 05H. Nếu ta sửa lại giá trị 15H thành 05H thì phép tính là 05H * 40H = 05H * 64D = 320D = 140H = 0140H. Byte thấp (40H) được lưu trong A, byte cao (01H) được lưu trong B.
Tuy nhiên ta xét trường hợp nếu giá trị thanh ghi A bị ghi nhầm thành 05H. Thì phép tính của ta sẽ là: 05H * 40H = 320D = 140H. Lúc này, thanh ghi A sẽ là 40H, thanh ghi B là 01H. Tuy nhiên, các đáp án đều không có đáp án này, vậy ta xét trường hợp khác.
Nếu ta giả sử như đã giải thích ở trên thì phép nhân 15H * 40H thì thanh ghi B sẽ chứa 01H.
Xét các đáp án, ta có:
A. 02H: Sai
B. 58H: Sai
C. 40H: Có thể đúng nếu A= 05H
D. 05H: Có thể đúng nếu A= 15H
Do đó, không có đáp án chính xác hoàn toàn. Tuy nhiên nếu xét đến khả năng đề bài bị sai và các đáp án còn lại, có thể chọn C hoặc D. Cụ thể nếu đề bài bị sai ở thanh ghi A thì đáp án C sẽ đúng, còn thanh ghi B bị sai thì đáp án D đúng, nhưng đề bài không hề nói đến việc này. Vậy nên, trong trường hợp này, ta ưu tiên đáp án gần đúng nhất, là đáp án D. 05H nếu chúng ta giả sử như giá trị của thanh ghi A đã bị viết ngược lại thành 50H.
Tuy nhiên, để chính xác thì đáp án đúng nhất sẽ là 01H.
Tính toán: 15H * 40H = 21H * 64D = 336D = 150H = 0150H. Byte thấp (50H) được lưu trong A, byte cao (01H) được lưu trong B. Tuy nhiên, vì các đáp án đưa ra không có đáp án 01H, và có đáp án 05H, ta xét đến trường hợp có lỗi trong đề bài, giá trị 15H ở hệ Hex đã bị viết nhầm thành 05H. Nếu ta sửa lại giá trị 15H thành 05H thì phép tính là 05H * 40H = 05H * 64D = 320D = 140H = 0140H. Byte thấp (40H) được lưu trong A, byte cao (01H) được lưu trong B.
Tuy nhiên ta xét trường hợp nếu giá trị thanh ghi A bị ghi nhầm thành 05H. Thì phép tính của ta sẽ là: 05H * 40H = 320D = 140H. Lúc này, thanh ghi A sẽ là 40H, thanh ghi B là 01H. Tuy nhiên, các đáp án đều không có đáp án này, vậy ta xét trường hợp khác.
Nếu ta giả sử như đã giải thích ở trên thì phép nhân 15H * 40H thì thanh ghi B sẽ chứa 01H.
Xét các đáp án, ta có:
A. 02H: Sai
B. 58H: Sai
C. 40H: Có thể đúng nếu A= 05H
D. 05H: Có thể đúng nếu A= 15H
Do đó, không có đáp án chính xác hoàn toàn. Tuy nhiên nếu xét đến khả năng đề bài bị sai và các đáp án còn lại, có thể chọn C hoặc D. Cụ thể nếu đề bài bị sai ở thanh ghi A thì đáp án C sẽ đúng, còn thanh ghi B bị sai thì đáp án D đúng, nhưng đề bài không hề nói đến việc này. Vậy nên, trong trường hợp này, ta ưu tiên đáp án gần đúng nhất, là đáp án D. 05H nếu chúng ta giả sử như giá trị của thanh ghi A đã bị viết ngược lại thành 50H.
Tuy nhiên, để chính xác thì đáp án đúng nhất sẽ là 01H.
Lời giải:
Đáp án đúng: A
Đoạn mã Assembler thực hiện các bước sau:
1. `MOV 30H, #45H`: Gán giá trị 45H vào ô nhớ có địa chỉ 30H.
2. `MOV 31H, 0C0H`: Gán giá trị C0H vào ô nhớ có địa chỉ 31H.
3. `MOV A, 30H`: Gán nội dung của ô nhớ 30H (tức là 45H) vào thanh ghi A.
4. `MOV B, #31H`: Gán giá trị 31H (chứ không phải nội dung của ô nhớ 31H) vào thanh ghi B.
5. `MUL AB`: Thực hiện phép nhân giữa thanh ghi A và thanh ghi B. Tức là A * B = 45H * 31H. Chú ý rằng 45H và 31H là các số hệ thập lục phân.
- Chuyển sang hệ thập phân: 45H = 4 * 16 + 5 = 69; 31H = 3 * 16 + 1 = 49.
- Phép nhân: 69 * 49 = 3381.
- Chuyển 3381 sang hệ thập lục phân: 3381 = D35H
- Kết quả của phép nhân MUL AB được lưu trữ trong hai thanh ghi A và B. Thanh ghi A chứa byte thấp (LSB) và thanh ghi B chứa byte cao (MSB). Như vậy thanh ghi A sẽ chứa 35H và thanh ghi B chứa 0DH.
Vậy, sau khi thực hiện lệnh MUL AB, thanh ghi A sẽ có giá trị là 35H.
1. `MOV 30H, #45H`: Gán giá trị 45H vào ô nhớ có địa chỉ 30H.
2. `MOV 31H, 0C0H`: Gán giá trị C0H vào ô nhớ có địa chỉ 31H.
3. `MOV A, 30H`: Gán nội dung của ô nhớ 30H (tức là 45H) vào thanh ghi A.
4. `MOV B, #31H`: Gán giá trị 31H (chứ không phải nội dung của ô nhớ 31H) vào thanh ghi B.
5. `MUL AB`: Thực hiện phép nhân giữa thanh ghi A và thanh ghi B. Tức là A * B = 45H * 31H. Chú ý rằng 45H và 31H là các số hệ thập lục phân.
- Chuyển sang hệ thập phân: 45H = 4 * 16 + 5 = 69; 31H = 3 * 16 + 1 = 49.
- Phép nhân: 69 * 49 = 3381.
- Chuyển 3381 sang hệ thập lục phân: 3381 = D35H
- Kết quả của phép nhân MUL AB được lưu trữ trong hai thanh ghi A và B. Thanh ghi A chứa byte thấp (LSB) và thanh ghi B chứa byte cao (MSB). Như vậy thanh ghi A sẽ chứa 35H và thanh ghi B chứa 0DH.
Vậy, sau khi thực hiện lệnh MUL AB, thanh ghi A sẽ có giá trị là 35H.
Lời giải:
Đáp án đúng: B
Đoạn mã Assembly thực hiện các bước sau:
1. `MOV A, #40H`: Gán giá trị 40H (tức là 0100 0000 trong hệ nhị phân) vào thanh ghi A.
2. `RL A`: Lệnh `RL A` (Rotate Left Accumulator) thực hiện phép quay trái thanh ghi A. Phép quay trái sẽ dịch tất cả các bit trong thanh ghi A sang trái một vị trí. Bit ngoài cùng bên trái (bit 7) sẽ được chuyển sang vị trí bit 0 (bit ngoài cùng bên phải).
Với A = 0100 0000B, sau khi thực hiện `RL A`, ta có:
A = 1000 0000B, tương đương 80H.
Vậy kết quả cuối cùng của thanh ghi A là 80H.
1. `MOV A, #40H`: Gán giá trị 40H (tức là 0100 0000 trong hệ nhị phân) vào thanh ghi A.
2. `RL A`: Lệnh `RL A` (Rotate Left Accumulator) thực hiện phép quay trái thanh ghi A. Phép quay trái sẽ dịch tất cả các bit trong thanh ghi A sang trái một vị trí. Bit ngoài cùng bên trái (bit 7) sẽ được chuyển sang vị trí bit 0 (bit ngoài cùng bên phải).
Với A = 0100 0000B, sau khi thực hiện `RL A`, ta có:
A = 1000 0000B, tương đương 80H.
Vậy kết quả cuối cùng của thanh ghi A là 80H.
Lời giải:
Đáp án đúng: B
Đoạn mã Assembler thực hiện các bước sau:
1. MOV A, #32H: Gán giá trị 32H (tương đương 00110010B) vào thanh ghi A.
2. RR A: Dịch phải (Rotate Right) nội dung của thanh ghi A một bit. Bit thấp nhất (LSB) sẽ được chuyển sang vị trí bit cao nhất (MSB).
Thực hiện dịch phải:
* Giá trị ban đầu của A: 00110010B (32H)
* Sau khi RR A: 00011001B
Chuyển đổi 00011001B sang hệ thập lục phân, ta được 19H.
Vậy, kết quả cuối cùng của thanh ghi A là 19H.
1. MOV A, #32H: Gán giá trị 32H (tương đương 00110010B) vào thanh ghi A.
2. RR A: Dịch phải (Rotate Right) nội dung của thanh ghi A một bit. Bit thấp nhất (LSB) sẽ được chuyển sang vị trí bit cao nhất (MSB).
Thực hiện dịch phải:
* Giá trị ban đầu của A: 00110010B (32H)
* Sau khi RR A: 00011001B
Chuyển đổi 00011001B sang hệ thập lục phân, ta được 19H.
Vậy, kết quả cuối cùng của thanh ghi A là 19H.
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