Đáp án đúng: B
Câu hỏi liên quan
Trong hợp ngữ (assembly), lệnh Mov
dùng để di chuyển dữ liệu từ một vị trí (nguồn) sang một vị trí khác (đích). Tuy nhiên, có một số quy tắc cần tuân thủ:
A. Mov ds,@data
: Lệnh này hợp lệ. Nó di chuyển địa chỉ của segment @data
vào thanh ghi ds
(data segment). Thanh ghi ds
thường được sử dụng để trỏ đến vùng nhớ dữ liệu.
B. Mov ax,sum
: Lệnh này hợp lệ. Nó di chuyển giá trị của biến hoặc nhãn sum
vào thanh ghi ax
.
C. Mov sum,dx
: Lệnh này không hợp lệ trong nhiều trình hợp ngữ (assembler) vì không cho phép di chuyển trực tiếp từ thanh ghi dx
vào một vùng nhớ (biến sum
) mà không thông qua thanh ghi khác hoặc sử dụng địa chỉ bộ nhớ cụ thể. Cần phải sử dụng một thanh ghi trung gian hoặc một phương pháp định địa chỉ khác để thực hiện thao tác này một cách chính xác.
Do đó, khai báo C là sai.
Khi thực hiện SHR AL, 1, các bit của AL dịch sang phải 1 vị trí. Bit ngoài cùng bên phải (LSB) bị đẩy ra và được lưu vào cờ CF. Bit ngoài cùng bên trái (MSB) được điền bằng 0. Do đó:
11001011 (CF=1) --> 01100101 (CF=1)
Giá trị nhị phân 01100101 tương ứng với giá trị thập lục phân 65h.
Vậy, nội dung mới của AL sau khi thực hiện lệnh SHR AL, 1 là 65h.
Trong đoạn lệnh này, lệnh IDIV BX
(phép chia có dấu) có thể gây ra lỗi nếu BX
bằng 0 hoặc nếu kết quả của phép chia vượt quá giới hạn của thanh ghi đích (AL
hoặc AX
tùy thuộc vào kích thước của toán hạng). Tuy nhiên, lệnh DIV BX
(phép chia không dấu) chắc chắn sẽ gây ra lỗi nếu BX
âm, vì phép chia không dấu không được định nghĩa cho số âm. Trong khi đó, IDIV
có thể hoạt động với số âm. Vậy nên đáp án sai là DIV BX
.
Đănh giá các phương án:
- Phương án A: MOV DS,40h - Sai. Không thể gán trực tiếp một giá trị số cho thanh ghi DS (Data Segment). Cần phải gán giá trị vào một thanh ghi tổng quát trước, sau đó gán thanh ghi tổng quát này cho DS.
- Phương án B: INC AX,30 - Sai. Lệnh INC chỉ có thể tăng giá trị của một thanh ghi lên; 1 đơn vị, không cho phép tăng một giá trị khác 1.
- Phương án C: DEC BX - Đúng. Lệnh DEC (Decrement) giảm giá trị của thanh ghi BX đi 1. Đây; là một lệnh hợp lệ.
- Phương án D: MOVE AX,BX - Sai. MOVE không phải là một opcode hợp lệ. Lệnh đúng là MOV AX, BX.
Vậy, chỉ có phương án C là đúng.
1. `MOV CL, 3`: Gán giá trị 3 vào thanh ghi CL. Thanh ghi CL thường được sử dụng để lưu số lần dịch bit trong các lệnh dịch.
2. `MOV AL, 10h`: Gán giá trị 10h (tức là 16 trong hệ thập phân) vào thanh ghi AL.
3. `SHL AL, CL`: Dịch trái (Shift Left) nội dung của thanh ghi AL đi CL bit (tức là 3 bit). Mỗi lần dịch trái tương đương với việc nhân giá trị ban đầu với 2.
Vậy, ta có thể tính toán như sau:
- Giá trị ban đầu của AL là 10h (16).
- Dịch trái 3 bit tương đương với 16 * 2 * 2 * 2 = 16 * 8 = 128.
Vậy, sau khi thực hiện lệnh `SHL AL, CL`, giá trị của AL sẽ là 128. Trong hệ thập lục phân, 128 tương ứng với 80h, nhưng vì câu hỏi yêu cầu kết quả trong AL bằng bao nhiêu, đáp án phù hợp nhất là giá trị thập phân tương đương là 128.
Vì vậy, đáp án đúng là B. 128

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
ĐĂ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.