Ta đã biết hàm 02h của ngắt 21h dùng để hiển thị một ký tự ra màn hình, hãy cho biết mã ký tự đó phải đặt trong thanh ghi nào?
Trả lời:
Đáp án đúng: C
Hàm 02h của ngắt 21h trong hệ điều hành DOS được sử dụng để hiển thị một ký tự ra màn hình. Mã ASCII của ký tự cần hiển thị phải được đặt trong thanh ghi DL trước khi gọi ngắt 21h.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: C
Câu hỏi này kiểm tra kiến thức về cú pháp và các quy tắc cơ bản của hợp ngữ (assembly language), đặc biệt là các lệnh liên quan đến việc di chuyển (MOV), cộng (ADD), trừ (SUB) và nhân (MUL) dữ liệu giữa các toán hạng khác nhau. Trong đó, kiểu DW (Define Word) biểu thị rằng var1 và var2 là các biến có kích thước 2 byte.
* A. MOV var1, var1: Lệnh này có vẻ vô nghĩa vì nó di chuyển giá trị của var1 vào chính var1. Tuy nhiên, về mặt cú pháp, lệnh này là hợp lệ trong hợp ngữ. Nó sẽ không gây ra lỗi biên dịch hoặc thực thi.
* B. ADD 30h, AX: Lệnh này không hợp lệ. Toán hạng đầu tiên (30h) là một giá trị trực tiếp (immediate value), và trong hầu hết các kiến trúc hợp ngữ, bạn không thể cộng một giá trị trực tiếp trực tiếp vào một giá trị trực tiếp khác. Toán hạng đầu tiên của lệnh ADD thường phải là một thanh ghi hoặc một vị trí bộ nhớ.
* C. SUB Var1, AX: Lệnh này không hợp lệ. Vì var1 là biến kiểu DW (2 byte), còn AX là thanh ghi 16-bit (2 byte). Lệnh SUB cần cả hai toán hạng phải cùng kích thước. Lệnh này sẽ cố gắng trừ thanh ghi AX (16 bit) từ biến var1 (16 bit), điều này không được phép vì nó sẽ không rõ kích thước kết quả sau khi trừ.
* D. MUL AX, BX: Lệnh này không hợp lệ. Lệnh MUL (nhân) trong hợp ngữ thường có một toán hạng. Toán hạng còn lại (thường là AX) được sử dụng ngầm định để lưu trữ một trong các số hạng và kết quả. Hơn nữa, kết quả của phép nhân AX và BX (hai số 16 bit) sẽ là một số 32 bit, và nó thường được lưu trữ trong cặp thanh ghi DX:AX. Do đó, cú pháp "MUL AX, BX" không đúng.
Dựa trên phân tích trên, chỉ có phương án A là hợp lệ về mặt cú pháp. Các phương án B, C và D đều vi phạm các quy tắc về toán hạng và cú pháp của các lệnh hợp ngữ.
* A. MOV var1, var1: Lệnh này có vẻ vô nghĩa vì nó di chuyển giá trị của var1 vào chính var1. Tuy nhiên, về mặt cú pháp, lệnh này là hợp lệ trong hợp ngữ. Nó sẽ không gây ra lỗi biên dịch hoặc thực thi.
* B. ADD 30h, AX: Lệnh này không hợp lệ. Toán hạng đầu tiên (30h) là một giá trị trực tiếp (immediate value), và trong hầu hết các kiến trúc hợp ngữ, bạn không thể cộng một giá trị trực tiếp trực tiếp vào một giá trị trực tiếp khác. Toán hạng đầu tiên của lệnh ADD thường phải là một thanh ghi hoặc một vị trí bộ nhớ.
* C. SUB Var1, AX: Lệnh này không hợp lệ. Vì var1 là biến kiểu DW (2 byte), còn AX là thanh ghi 16-bit (2 byte). Lệnh SUB cần cả hai toán hạng phải cùng kích thước. Lệnh này sẽ cố gắng trừ thanh ghi AX (16 bit) từ biến var1 (16 bit), điều này không được phép vì nó sẽ không rõ kích thước kết quả sau khi trừ.
* D. MUL AX, BX: Lệnh này không hợp lệ. Lệnh MUL (nhân) trong hợp ngữ thường có một toán hạng. Toán hạng còn lại (thường là AX) được sử dụng ngầm định để lưu trữ một trong các số hạng và kết quả. Hơn nữa, kết quả của phép nhân AX và BX (hai số 16 bit) sẽ là một số 32 bit, và nó thường được lưu trữ trong cặp thanh ghi DX:AX. Do đó, cú pháp "MUL AX, BX" không đúng.
Dựa trên phân tích trên, chỉ có phương án A là hợp lệ về mặt cú pháp. Các phương án B, C và D đều vi phạm các quy tắc về toán hạng và cú pháp của các lệnh hợp ngữ.
Lời giải:
Đáp án đúng: B
Đoạn lệnh thực hiện các bước sau:
1. `MOV CL, 3`: Gán giá trị 3 vào thanh ghi CL.
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 thanh ghi AL đi CL (3) bit.
Phép dịch trái (SHL) tương đương với việc nhân giá trị trong AL với 2 mũ CL (2^3 = 8).
Vậy, AL = 10h * 8 = 16 * 8 = 128.
128 trong hệ thập phân tương đương với 80h trong hệ thập lục phân. Tuy nhiên, câu hỏi yêu cầu kết quả ở dạng thập phân nên đáp án đúng là 128.
1. `MOV CL, 3`: Gán giá trị 3 vào thanh ghi CL.
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 thanh ghi AL đi CL (3) bit.
Phép dịch trái (SHL) tương đương với việc nhân giá trị trong AL với 2 mũ CL (2^3 = 8).
Vậy, AL = 10h * 8 = 16 * 8 = 128.
128 trong hệ thập phân tương đương với 80h trong hệ thập lục phân. Tuy nhiên, câu hỏi yêu cầu kết quả ở dạng thập phân nên đáp án đúng là 128.
Lời giải:
Đáp án đúng: B
Câu hỏi này liên quan đến kích thước của các đoạn bộ nhớ trong một hệ thống. Trong kiến trúc bộ nhớ của hệ thống IBM PC và các hệ thống tương thích, bộ nhớ được chia thành các đoạn (segment). Mỗi đoạn có kích thước tối đa là 64KB. Điều này xuất phát từ việc sử dụng địa chỉ đoạn 16-bit, cho phép địa chỉ hóa 2^16 = 65536 byte, tương đương 64KB.
Phương án A: 32KB không đúng vì kích thước đoạn là 64KB.
Phương án B: 64KB là đáp án chính xác, như đã giải thích ở trên.
Phương án C: 16KB không đúng vì kích thước đoạn là 64KB.
Phương án D: 1MB không đúng vì đây là kích thước lớn hơn nhiều so với một đoạn bộ nhớ tiêu chuẩn.
Phương án A: 32KB không đúng vì kích thước đoạn là 64KB.
Phương án B: 64KB là đáp án chính xác, như đã giải thích ở trên.
Phương án C: 16KB không đúng vì kích thước đoạn là 64KB.
Phương án D: 1MB không đúng vì đây là kích thước lớn hơn nhiều so với một đoạn bộ nhớ tiêu chuẩn.
Lời giải:
Đáp án đúng: B
Stack là một cấu trúc dữ liệu hoạt động theo nguyên tắc LIFO (Last-In, First-Out). Điều này có nghĩa là phần tử cuối cùng được thêm vào stack sẽ là phần tử đầu tiên được lấy ra.
* FIFO (First-In, First-Out): Đây là nguyên tắc hoạt động của hàng đợi (queue), không phải stack.
* LIFO (Last-In, First-Out): Đây là nguyên tắc hoạt động của stack.
* Phụ thuộc mô hình bộ nhớ của chương trình ứng dụng: Mặc dù việc triển khai stack có thể liên quan đến bộ nhớ, nhưng nguyên tắc LIFO vẫn là cốt lõi.
* Không câu nào đúng: Vì có một đáp án đúng (LIFO).
* FIFO (First-In, First-Out): Đây là nguyên tắc hoạt động của hàng đợi (queue), không phải stack.
* LIFO (Last-In, First-Out): Đây là nguyên tắc hoạt động của stack.
* Phụ thuộc mô hình bộ nhớ của chương trình ứng dụng: Mặc dù việc triển khai stack có thể liên quan đến bộ nhớ, nhưng nguyên tắc LIFO vẫn là cốt lõi.
* Không câu nào đúng: Vì có một đáp án đúng (LIFO).
Lời giải:
Đáp án đúng: A
Trình hợp ngữ (Assembler) là một chương trình dịch mã hợp ngữ (Assembly) sang mã máy. Các chương trình hợp ngữ thường cung cấp môi trường soạn thảo để viết và chỉnh sửa các tệp mã nguồn Assembly, thường có phần mở rộng là *.ASM. Vì vậy, trình hợp ngữ có môi trường soạn thảo tệp *.ASM.
Đáp án đúng là A: Có
Đáp án đúng là A: Có
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