Đoạn lệnh sau cho kết quả trong AL bằng bao nhiêu?
MOV CL, 3
MOV AL,10h
SHL AL, CL
Trả lời:
Đáp án đúng: B
Đoạn lệnh thực hiện các thao tác sau:
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