Giả sử AL= 0CBh và cờ CF=1 cho biết nội dung mới của AL sau khi thực hiện lệnh sau:
SHR AL, 1
Trả lời:
Đáp án đúng: B
Lệnh SHR (Shift Right) dịch bit của toán hạng đích sang phải một số lượng bit chỉ định. Trong trường hợp này, `SHR AL, 1` dịch các bit trong thanh ghi AL sang phải một vị trí.
Giá trị ban đầu của AL là 0CBh, tương đương với 11001011 trong hệ nhị phân. Khi dịch phải một bit, ta được 01100101, tương đương với 65h. Bit ngoài cùng bên phải (LSB) bị đẩy ra ngoài và được lưu vào cờ CF (Carry Flag). Trong trường hợp này bit LSB là 1 nên CF = 1, đúng như đề bài cho.
Vậy, nội dung mới của AL là 65h.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: A
Đoạn lệnh thực hiện các bước sau:
1. `MOV CL, 4`: Gán giá trị 4 vào thanh ghi CL. CL được sử dụng làm bộ đếm cho các lệnh dịch bit.
2. `MOV AL, 1`: Gán giá trị 1 vào thanh ghi AL.
3. `SHL AL, CL`: Dịch trái thanh ghi AL đi CL (4) bit.
- Giá trị ban đầu của AL là 1 (00000001 trong hệ nhị phân).
- Dịch trái 4 bit tương đương với việc nhân giá trị đó với 2 mũ 4 (2^4 = 16).
- 1 * 16 = 16. Trong hệ thập lục phân, 16 là 10h. Trong hệ thập phân, nó là 16.
Vậy, kết quả cuối cùng trong thanh ghi AL là 16 (hoặc 10h).
1. `MOV CL, 4`: Gán giá trị 4 vào thanh ghi CL. CL được sử dụng làm bộ đếm cho các lệnh dịch bit.
2. `MOV AL, 1`: Gán giá trị 1 vào thanh ghi AL.
3. `SHL AL, CL`: Dịch trái thanh ghi AL đi CL (4) bit.
- Giá trị ban đầu của AL là 1 (00000001 trong hệ nhị phân).
- Dịch trái 4 bit tương đương với việc nhân giá trị đó với 2 mũ 4 (2^4 = 16).
- 1 * 16 = 16. Trong hệ thập lục phân, 16 là 10h. Trong hệ thập phân, nó là 16.
Vậy, kết quả cuối cùng trong thanh ghi AL là 16 (hoặc 10h).
Lời giải:
Đáp án đúng: B
Lệnh `XOR CX, CX` thực hiện phép XOR (phép loại trừ) giữa thanh ghi `CX` với chính nó. Trong phép XOR, nếu hai bit giống nhau (cả hai đều là 0 hoặc cả hai đều là 1), kết quả là 0. Vì vậy, khi XOR một thanh ghi với chính nó, tất cả các bit trong thanh ghi đó sẽ trở thành 0, đồng nghĩa với việc thanh ghi được xóa về 0. Do đó, lệnh này có tác dụng xóa thanh ghi `CX`.
Các phương án khác không đúng vì:
- Phép XOR không phải là phép trừ thông thường.
- Phép XOR không phải là phép OR (hoặc).
- Vì có một đáp án đúng (B), nên D không đúng.
Các phương án khác không đúng vì:
- Phép XOR không phải là phép trừ thông thường.
- Phép XOR không phải là phép OR (hoặc).
- Vì có một đáp án đúng (B), nên D không đúng.
Lời giải:
Đáp án đúng: C
Đoạn mã lệnh trên thực hiện so sánh giá trị của thanh ghi AX với 0. Nếu AX lớn hơn hoặc bằng 0 (JNL - Jump if Not Less), chương trình sẽ nhảy đến nhãn END_C. Nếu AX nhỏ hơn 0, chương trình sẽ thực hiện lệnh NEG AX, tức là đổi dấu giá trị trong AX (biến số âm thành dương và ngược lại). Sau đó, chương trình tiếp tục thực hiện các lệnh sau nhãn END_C. Như vậy, đoạn mã này thực hiện một kiểm tra điều kiện và thực hiện một hành động (đổi dấu) nếu điều kiện không thỏa mãn. Điều này tương ứng với cấu trúc IF-THEN.
* Cấu trúc CASE: Thường liên quan đến nhiều điều kiện và các nhánh xử lý khác nhau dựa trên giá trị của một biến. Đoạn mã trên không có cấu trúc này.
* Cấu trúc WHILE-DO: Thường liên quan đến việc lặp lại một khối lệnh cho đến khi một điều kiện trở thành sai. Đoạn mã trên không có vòng lặp.
* Cấu trúc IF-THEN: Kiểm tra một điều kiện và thực hiện một khối lệnh nếu điều kiện đó đúng. Đoạn mã trên kiểm tra xem AX có nhỏ hơn 0 không và đổi dấu AX nếu đúng.
* Cấu trúc lặp REPEAT-UNTIL: Lặp lại một khối lệnh cho đến khi một điều kiện trở thành đúng. Đoạn mã trên không có vòng lặp.
Do đó, đáp án chính xác là C. Cấu trúc IF-THEN.
* Cấu trúc CASE: Thường liên quan đến nhiều điều kiện và các nhánh xử lý khác nhau dựa trên giá trị của một biến. Đoạn mã trên không có cấu trúc này.
* Cấu trúc WHILE-DO: Thường liên quan đến việc lặp lại một khối lệnh cho đến khi một điều kiện trở thành sai. Đoạn mã trên không có vòng lặp.
* Cấu trúc IF-THEN: Kiểm tra một điều kiện và thực hiện một khối lệnh nếu điều kiện đó đúng. Đoạn mã trên kiểm tra xem AX có nhỏ hơn 0 không và đổi dấu AX nếu đúng.
* Cấu trúc lặp REPEAT-UNTIL: Lặp lại một khối lệnh cho đến khi một điều kiện trở thành đúng. Đoạn mã trên không có vòng lặp.
Do đó, đáp án chính xác là C. Cấu trúc IF-THEN.
Lời giải:
Đáp án đúng: C
Câu hỏi yêu cầu xác định lệnh MOV nào không hợp lệ dựa trên khai báo dữ liệu cho trước.
* A. MOV AH, B: `B` được định nghĩa là một `LABEL BYTE`, tức là một địa chỉ (offset) kiểu byte. Thanh ghi `AH` là thanh ghi 8-bit. Lệnh `MOV AH, B` cố gắng di chuyển *địa chỉ* (offset) của `B` vào `AH`. Trong kiến trúc x86, việc gán trực tiếp một địa chỉ (offset) của một label byte cho thanh ghi 8-bit không được hỗ trợ trực tiếp, do địa chỉ offset thường lớn hơn 8 bit. Do đó, lệnh này không hợp lệ.
* B. MOV CX, C: `C` được định nghĩa là một `LABEL WORD`, tức là một địa chỉ (offset) kiểu word. Thanh ghi `CX` là thanh ghi 16-bit. Lệnh `MOV CX, C` cố gắng di chuyển địa chỉ (offset) của `C` vào `CX`. Điều này hợp lệ vì địa chỉ offset của một label word phù hợp với kích thước của thanh ghi CX (16 bit).
* C. MOV AX, B: Tương tự như đáp án A, `B` là một `LABEL BYTE`. Thanh ghi `AX` là thanh ghi 16-bit. Lệnh `MOV AX, B` cố gắng di chuyển *địa chỉ* (offset) của `B` vào `AX`. Mặc dù `AX` là thanh ghi 16-bit, nhưng việc gán trực tiếp một địa chỉ của một label byte cho thanh ghi nói chung không được khuyến khích và có thể không hợp lệ trong một số trình biên dịch/hợp ngữ. Tuy nhiên, so với lỗi rõ ràng của A, nó ít sai hơn.
* D. MOV BX, WORD PTR B: `B` là một `LABEL BYTE`. `WORD PTR B` chỉ định rằng chúng ta muốn lấy *giá trị* (word - 2 bytes) tại địa chỉ được trỏ bởi `B`. `BX` là thanh ghi 16-bit. Do đó, lệnh này sẽ cố gắng di chuyển 2 bytes dữ liệu từ địa chỉ `B` vào thanh ghi `BX`. Điều này hợp lệ.
Như vậy, lệnh A. MOV AH, B là lệnh không hợp lệ nhất vì cố gắng gán một địa chỉ (offset) byte vào thanh ghi 8-bit `AH` mà không có sự chuyển đổi hoặc xử lý kích thước rõ ràng.
* A. MOV AH, B: `B` được định nghĩa là một `LABEL BYTE`, tức là một địa chỉ (offset) kiểu byte. Thanh ghi `AH` là thanh ghi 8-bit. Lệnh `MOV AH, B` cố gắng di chuyển *địa chỉ* (offset) của `B` vào `AH`. Trong kiến trúc x86, việc gán trực tiếp một địa chỉ (offset) của một label byte cho thanh ghi 8-bit không được hỗ trợ trực tiếp, do địa chỉ offset thường lớn hơn 8 bit. Do đó, lệnh này không hợp lệ.
* B. MOV CX, C: `C` được định nghĩa là một `LABEL WORD`, tức là một địa chỉ (offset) kiểu word. Thanh ghi `CX` là thanh ghi 16-bit. Lệnh `MOV CX, C` cố gắng di chuyển địa chỉ (offset) của `C` vào `CX`. Điều này hợp lệ vì địa chỉ offset của một label word phù hợp với kích thước của thanh ghi CX (16 bit).
* C. MOV AX, B: Tương tự như đáp án A, `B` là một `LABEL BYTE`. Thanh ghi `AX` là thanh ghi 16-bit. Lệnh `MOV AX, B` cố gắng di chuyển *địa chỉ* (offset) của `B` vào `AX`. Mặc dù `AX` là thanh ghi 16-bit, nhưng việc gán trực tiếp một địa chỉ của một label byte cho thanh ghi nói chung không được khuyến khích và có thể không hợp lệ trong một số trình biên dịch/hợp ngữ. Tuy nhiên, so với lỗi rõ ràng của A, nó ít sai hơn.
* D. MOV BX, WORD PTR B: `B` là một `LABEL BYTE`. `WORD PTR B` chỉ định rằng chúng ta muốn lấy *giá trị* (word - 2 bytes) tại địa chỉ được trỏ bởi `B`. `BX` là thanh ghi 16-bit. Do đó, lệnh này sẽ cố gắng di chuyển 2 bytes dữ liệu từ địa chỉ `B` vào thanh ghi `BX`. Điều này hợp lệ.
Như vậy, lệnh A. MOV AH, B là lệnh không hợp lệ nhất vì cố gắng gán một địa chỉ (offset) byte vào thanh ghi 8-bit `AH` mà không có sự chuyển đổi hoặc xử lý kích thước rõ ràng.
Lời giải:
Đáp án đúng: D
Trong kiến trúc bộ nhớ phân đoạn (segmented memory architecture), các đoạn bộ nhớ được quản lý và truy cập thông qua các segment. Địa chỉ logic bao gồm segment selector và offset. Các đoạn liên tiếp nhau trong bộ nhớ thường cách nhau một khoảng nhất định để đảm bảo không gian địa chỉ không bị chồng lấn và cho phép hệ điều hành quản lý bộ nhớ một cách hiệu quả. Trong kiến trúc x86 (thường được sử dụng trong các hệ thống cũ hơn), các đoạn bộ nhớ có thể cách nhau một khoảng 16 byte (10h) do cách tính địa chỉ vật lý từ địa chỉ đoạn và offset.
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

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp
136 tài liệu563 lượt tải

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp
125 tài liệu585 lượt tải

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng
325 tài liệu608 lượt tải

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất
331 tài liệu1010 lượt tải

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
246 tài liệu802 lượt tải

CEO.22: Bộ Tài Liệu Quy Trình Kiểm Toán, Kiểm Soát Nội Bộ Doanh Nghiệp
138 tài liệu417 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