JavaScript is required
Danh sách đề

Câu trắc nghiệm Lập trình hợp ngữ đáp án kèm hướng dẫn từng bước - Đề 2

25 câu hỏi 60 phút

Thẻ ghi nhớ
Luyện tập
Thi thử
Nhấn để lật thẻ
1 / 25

Câu lệnh nào trong các câu lệnh sau là đúng Trong đó var1 và var2 là các biến kiểu DW

A.

MOV var1,var1

B.

ADD 30h,AX

C.

SUB Var1,AX

D.

MUL AX,BX

Đáp án
Đáp án đúng: C
Câu hỏi kiểm tra kiến thức về cú pháp các lệnh hợp ngữ cơ bản, đặc biệt là các lệnh liên quan đến thanh ghi và biến kiểu DW (Double Word - 2 byte).

A. `MOV var1, var1`: Lệnh này có vẻ đúng về mặt cú pháp, nhưng nó chỉ đơn giản là gán giá trị của `var1` cho chính `var1`. Tuy nhiên, đây là một lệnh hợp lệ.

B. `ADD 30h, AX`: Lệnh này sai. `30h` là một hằng số (số thập lục phân 30). Trong hợp ngữ, không thể trực tiếp cộng một hằng số vào thanh ghi `AX` như thế này. Nếu muốn cộng một hằng số vào thanh ghi, cần sử dụng lệnh `MOV` để đưa hằng số đó vào một thanh ghi khác hoặc vào bộ nhớ, sau đó mới thực hiện phép cộng.

C. `SUB Var1, AX`: Lệnh này sai. `Var1` là biến kiểu DW (2 byte), còn `AX` là thanh ghi 16-bit (2 byte). Lệnh `SUB` (phép trừ) cần hai toán hạng có cùng kích thước. Không thể trực tiếp trừ `AX` từ `Var1` như thế này. Cần phải load giá trị của `var1` vào một thanh ghi khác có cùng kích thước trước khi trừ.

D. `MUL AX, BX`: Lệnh `MUL` (nhân) trong hợp ngữ 8086 có cú pháp khác. Nếu toán hạng là một byte, nó sẽ nhân AL với toán hạng đó, kết quả lưu vào AX. Nếu toán hạng là một word (2 byte), nó sẽ nhân AX với toán hạng đó, kết quả lưu vào DX:AX. Như vậy, `MUL AX, BX` là sai cú pháp. Phải là `MUL BX` mới đúng (nếu muốn nhân AX với BX).

Như vậy, chỉ có phương án A là đúng nhất (dù không thực sự hữu ích).

Danh sách câu hỏi:

Lời giải:
Đáp án đúng: C
Câu hỏi kiểm tra kiến thức về cú pháp các lệnh hợp ngữ cơ bản, đặc biệt là các lệnh liên quan đến thanh ghi và biến kiểu DW (Double Word - 2 byte).

A. `MOV var1, var1`: Lệnh này có vẻ đúng về mặt cú pháp, nhưng nó chỉ đơn giản là gán giá trị của `var1` cho chính `var1`. Tuy nhiên, đây là một lệnh hợp lệ.

B. `ADD 30h, AX`: Lệnh này sai. `30h` là một hằng số (số thập lục phân 30). Trong hợp ngữ, không thể trực tiếp cộng một hằng số vào thanh ghi `AX` như thế này. Nếu muốn cộng một hằng số vào thanh ghi, cần sử dụng lệnh `MOV` để đưa hằng số đó vào một thanh ghi khác hoặc vào bộ nhớ, sau đó mới thực hiện phép cộng.

C. `SUB Var1, AX`: Lệnh này sai. `Var1` là biến kiểu DW (2 byte), còn `AX` là thanh ghi 16-bit (2 byte). Lệnh `SUB` (phép trừ) cần hai toán hạng có cùng kích thước. Không thể trực tiếp trừ `AX` từ `Var1` như thế này. Cần phải load giá trị của `var1` vào một thanh ghi khác có cùng kích thước trước khi trừ.

D. `MUL AX, BX`: Lệnh `MUL` (nhân) trong hợp ngữ 8086 có cú pháp khác. Nếu toán hạng là một byte, nó sẽ nhân AL với toán hạng đó, kết quả lưu vào AX. Nếu toán hạng là một word (2 byte), nó sẽ nhân AX với toán hạng đó, kết quả lưu vào DX:AX. Như vậy, `MUL AX, BX` là sai cú pháp. Phải là `MUL BX` mới đúng (nếu muốn nhân AX với BX).

Như vậy, chỉ có phương án A là đúng nhất (dù không thực sự hữu ích).
Lời giải:
Đáp án đúng: C

Trong ngắt 21h, hàm 02h (AH = 02h) đượ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 (Data Low byte của DX). Thanh ghi AH chứa số hiệu hàm cần gọi (trong trường hợp này là 02h), còn thanh ghi DL chứa ký tự cần hiển thị. Các thanh ghi khác (AX, AL) không được sử dụng để truyền mã ký tự trong hàm này.

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 định địa chỉ bằng cách sử dụng một cặp giá trị: segment selector và offset. Địa chỉ vật lý được tính bằng cách lấy segment selector, dịch trái 4 bit (tương đương nhân với 16 hay 10h), rồi cộng với offset. Vì vậy, các đoạn liên tiếp nhau sẽ cách nhau một khoảng địa chỉ tương ứng với việc dịch trái segment selector 4 bit, tức là 10h (16 byte).

Câu 4:

Cú pháp nhập từ bàn phím từ gợi nhớ bằng Debug của Dos

Lời giải:
Đáp án đúng: B
Trong Debug của DOS, cú pháp để nhập dữ liệu trực tiếp từ bàn phím vào một địa chỉ bộ nhớ cụ thể là `E Địa chỉ [Danh sách]`. Lệnh này cho phép bạn chỉnh sửa nội dung của bộ nhớ tại địa chỉ đã chỉ định, nhập vào các giá trị byte từ bàn phím. Do đó, đáp án A là chính xác.

Các đáp án khác không đúng vì:
- B. `A[Địa chỉ]` không phải là cú pháp đúng trong Debug để nhập dữ liệu từ bàn phím.
- C. `C Khoảng [Địa chỉ]` không phải là cú pháp đúng trong Debug để nhập dữ liệu từ bàn phím. Lệnh 'C' trong Debug thường được sử dụng cho việc so sánh vùng nhớ.
- D. `F khoảng danh sách` là lệnh Fill, dùng để điền một vùng nhớ bằng một hoặc nhiều giá trị, không phải để nhập từ bàn phím theo kiểu tương tác trực tiếp.

Câu 5:

Lệnh TASM của Turbo Assembler dùng để làm gì?

Lời giải:
Đáp án đúng: B
TASM (Turbo Assembler) là một trình hợp ngữ (assembler) được sử dụng để dịch các chương trình viết bằng ngôn ngữ assembly (dạng *.ASM) sang mã máy ở dạng file đối tượng (*.OBJ). Các file *.OBJ này sau đó có thể được liên kết với nhau để tạo thành một file thực thi (*.EXE). Vì vậy, đáp án đúng là B. Các đáp án còn lại mô tả chức năng của các công cụ khác trong quá trình phát triển phần mềm (ví dụ: trình liên kết, trình gỡ rối).

Câu 6:

Hãy cho biết đoạn chương trình sau thực hiện việc gì?

 

MOV AX,4C00h

INT 21h

 

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

Câu 7:

Hãy cho biết lệnh sau sử dụng chế độ địa chỉ nào?

MOV AX, [BX+SI+8]

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

Câu 9:

Câu lệnh nào trong đoạn lệnh sau đúng"

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

Câu 13:

Lệnh TASM của Turbo Assembler dùng để làm gì?

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

Câu 14:

Hãy cho biết lệnh sau sử dụng chế độ địa chỉ nào?

MOV AX, [BX+SI+8]

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

Câu 16:

Hãy cho biết lệnh sau thực hiện công việc gì?

XOR CX,CX

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

Câu 20:

Hãy cho biết dòng lệnh đúng:

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

Câu 21:

Các thanh ghi đa năng gồm những thanh ghi nào?

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

Câu 23:

Trong Assembler, số nào trong các số sau không hợp lệ?

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

Câu 24:

Hãy cho biết đoạn lệnh sau giả lặp cấu trúc nào?

CMP AX, 0

JNL END_C

NEG AX

END_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

Câu 25:

Các thanh ghi trạng thái gồm những thanh ghi nào?

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