wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Câu hỏi về chế độ địa chỉ trong lập trình

Total questions: 70

Worksheet time: 35mins

Name
Class
Date
1.

Trong chế độ địa chỉ tương đối cơ sở (Base Relative), làm thế nào để tính toán địa chỉ?

a)

Sử dụng giá trị trực tiếp trong lệnh

b)

Cộng giá trị trong thanh ghi cơ sở với giá trị offset

c)

Lấy giá trị từ bộ nhớ qua bus dữ liệu

d)

Chỉ sử dụng giá trị trong thanh ghi BP

2.

Chế độ địa chỉ chỉ số (Indexed) thường được dùng trong trường hợp nào?

a)

Duyệt mảng

b)

Truy cập lệnh kế tiếp

c)

Tính toán địa chỉ tạm thời

d)

Lưu trữ kết quả phép toán

3.

Chế độ địa chỉ tức thì (Immediate) có ưu điểm gì so với các chế độ khác?

a)

Tăng kích thước thanh ghi

b)

Truy cập vào bộ nhớ nhanh

c)

Đơn giản và không cần tham chiếu đễn bộ nhớ

d)

Hỗ trợ các lệnh phúc tạp

4.

Tại sao chế độ địa chỉ thanh ghi lại có tốc độ thực hiện nhanh?

a)

Toán hạng là 2 thanh ghi

b)

Cần truy nhập bộ nhớ

c)

Truy cập gián tiếp qua thanh ghi

d)

Truy cập trực tiếp vào hằng số

5.

Trong chế độ địa chỉ gián tiếp qua thanh ghi, điều gì xảy ra nếu nội dung thanh ghi thay đổi?

a)

Toán hạng vẫn giữ nguyên

b)

Toán hạng thay đổi theo địa chỉ mới

c)

Toán hạng bị mất giá trị

d)

Thanh ghi tự động reset

6.

Điểm khác biệt chính giữa chế độ địa chỉ chỉ số và gián tiếp qua thanh ghi là gì?

a)

Sử dụng thanh ghi SP thay vì BX

b)

Sử dụng bộ đệm lệnh thay vì bộ nhớ

c)

Thêm giá trị chỉ số vào địa chỉ cơ bản

d)

Truy cập ngăn xếp thay vì thanh ghi

7.

Chế độ địa chỉ tương đối chỉ số cơ sở (Base Indexed) thường được dùng khi nào?

a)

Truy cập ngẫu nhiên vào bộ nhớ

b)

Thực hiện phép toán logic

c)

Tính toán địa chỉ ngăn xếp

d)

Truy cập các cấu trúc dữ liệu phức tạp như mảng 2 chiều

8.

Lệnh MOV AX, BX có tác dụng gì?

a)

So sánh dữ liệu giữa BX và AX

b)

Chuyển dữ liệu từ AX sang BX

c)

Chép nội dung từ BX vào AX

d)

Đổi chỗ nội dung giữa AX và BX

9.

Lệnh ADD AX, BX thực hiện chức năng nào?

a)

Cộng nội dung của BX vào AX

b)

Nhân nội dung của BX với AX

c)

Lưu nội dung AX và BX vào ngăn xếp

d)

Trừ nội dung của BX khỏi AX

10.

Lệnh SUB AX, 10h có ý nghĩa gì?

a)

Cộng giá trị 10h vào AX

b)

Lưu giá trị 10h vào thanh ghi BX

c)

Lấy giá trị từ 10h và lưu vào AX

d)

Trừ giá trị AX cho 10h rồi lưu kết quả vào AX

11.

Lệnh MUL BX thực hiện nhiệm vụ nào?

a)

Trừ AX với BX

b)

Nhân nội dung của AX với BX

c)

Lấy giá trị từ BX và lưu vào AX

d)

Chia AX cho BX

12.

Lệnh DIV BL có tác dụng gì?

a)

Cộng nội dung của BL vào AX

b)

Trừ nội dung của BL khỏi BX

c)

Chia nội dung của AX cho BL

d)

Chia nội dung của DXAX cho BL

13.

Lệnh INC CX có ý nghĩa gì?

a)

Tăng giá trị của CX lên 1

b)

Giảm giá trị của CX xuống 1

c)

Đặt lại CX về 0

d)

Lưu giá trị CX vào AX

14.

Lệnh DEC DX thực hiện tác vụ

gì?

a)

Tăng giá trị của DX lên 1

b)

Giảm giá trị của BX xuống 1

c)

Tăng giá trị của BX lên 1

d)

Giảm giá trị của DX xuống 1

15.

Lệnh AND AX, BX thực hiện phép toán nào?

a)

Phép toán AND giữa AX và BX

b)

Phép toán OR giữa AX và BX

c)

Phép toán XOR giữa AX và BX

d)

Phép toán NOT trên BX

16.

Lệnh OR AX, CX có nhiệm vụ gì?

a)

Thực hiện phép toán AND giữa AX và CX

b)

Thực hiện phép toán OR giữa AX và CX

c)

Thực hiện phép toán XOR giữa AX và CX

d)

Thực hiện phép toán NOT trên AX

17.

Lệnh JMP 1234h có ý nghĩa gì?

a)

Dừng chương trình tại địa chỉ 1234h

b)

So sánh giá trị tại địa chỉ 1234h

c)

Nhảy tới địa chỉ 1234h

d)

Ghi giá trị 1234h vào AX

18.

Lệnh CMP AX, BX được sử dụng để làm gì?

a)

Lưu giá trị AX vào BX

b)

Trừ AX và BX, lưu kết quả vào AX

c)

So sánh AX với hằng số

d)

So sánh giá trị trong AX và BX

19.

Lệnh NOT AX thực hiện thao tác gì?

a)

Đảo ngược tất cả các bit trong AX

b)

Gán giá trị mặc định cho AX

c)

Nhân đôi giá trị của AX

d)

Xóa giá trị trong AX

20.

Lệnh PUSH BX có ý nghĩa gì?

a)

Lấy giá trị BX từ ngăn xếp

b)

Lưu giá trị của BX vào ngăn xếp

c)

Chuyển giá trị BX vào AX

d)

Đặt BX bằng giá trị mặc định

21.

Tại sao lệnh MOV BX, 1234h thường được dùng trong khởi tạo?

a)

Để lưu giá trị hằng vào thanh ghi BX

b)

Để đọc dữ liệu từ bộ nhớ ngoài

c)

Để thực hiện phép toán trên BX

d)

Để thiết lập giá trị ban đầu cho BX

22.

Lệnh ADD AX, 100h có ảnh hưởng gì đến cờ Carry (CF)?

a)

Không ảnh hưởng

b)

Luôn đặt CF về 0

c)

Thiết lập CF = 1 nếu có tràn xảy ra

d)

Bỏ qua cờ Carry

23.

Lệnh SUB BX, CX được sử dụng trong trường hợp nào?

a)

Để cộng hai số nguyên

b)

Để trừ giá trị của CX khỏi BX

c)

Để nhân hai giá trị trong thanh ghi

d)

Để lưu giá trị CX vào BX

24.

Điều gì xảy ra nếu thực hiện lệnh MUL BX khi BX chứa giá trị 0?

a)

Kết quả sẽ là 0

b)

Gây lỗi tràn bộ nhớ

c)

Giá trị BX sẽ được lưu vào DX

d)

Không có thay đổi nào xảy ra

25.

Lệnh DIV BL có thể gây ra lỗi gì?

a)

Tràn thanh ghi BX

b)

Lỗi chia số âm

c)

Lỗi làm đầy bộ nhớ

d)

Lỗi chia cho 0

26.

Tại sao lệnh INC CX thường được sử dụng trong vòng lặp?

a)

Để lưu giá trị của vòng lặp

b)

Để đặt lại giá trị CX

c)

Để tăng số lần lặp

d)

Để giảm số lần lặp

27.

Lệnh DEC DX được áp dụng trong trường hợp nào?

a)

Để lưu giá trị mới vào thanh ghi AX

b)

Để giảm giá trị của DX trong vòng lặp giảm dần

c)

Để kiểm tra điều kiện lặp

d)

Để đặt lại DX về giá trị mặc định

28.

Kết quả của lệnh AND AX, BX phụ thuộc vào điều gì?

a)

Giá trị bit tương ứng trong AX và BX

b)

Giá trị số học của AX

c)

Giá trị lệnh tiếp theo

d)

Giá trị lệnh JMP

29.

Lệnh OR AX, CX thường được sử dụng để làm gì?

a)

Kiểm tra tính đồng nhất

b)

Tăng giá trị thanh ghi

c)

Thiết lập cờ Zero(ZF)

d)

Thiết lập các bit cụ thể trong AX

30.

Lệnh JMP 1234h có ưu điểm gì trong việc điều hướng chương trình?

a)

Tăng tốc độ xử lý

b)

Tránh các lỗi bộ nhớ

c)

Điều khiển luồng thực thi hiệu quả

d)

Thiết lập giá trị mặc định

31.

Tại sao lệnh CMP AX, BX thường được sử dụng trước lệnh nhảy có điều kiện?

a)

Để lưu giá trị hằng vào BX

b)

Để xác định điều kiện nhảy dựa trên kết quả so sánh

c)

Để thực hiện phép toán cộng

d)

Để ghi dữ liệu vào AX

32.

Lệnh NOT AX có thể ảnh hưởng đến cờ nào?

a)

Carry (CF)

b)

Zero (ZF)

c)

Overflow (OF)

d)

Không ảnh hưởng đến cờ nào

33.

Lệnh PUSH BX có lợi ích gì khi lập trình với ngăn xếp?

a)

Tăng tốc độ xử lý dữ liệu

b)

Bỏ qua giá trị hiện tại của BX

c)

Lưu giá trị BX vào ngăn xếp để sử dụng sau

d)

Gán giá trị BX vào DX

34.

Trong một chương trình hợp ngữ, mục đích của đoạn lệnh DATA SEGMENT là gì?

a)

Định nghĩa các lệnh chính

b)

Lưu trữ mã lệnh của chương trình

c)

Định nghĩa dữ liệu và các biến

d)

Quản lý bộ nhớ ngăn xếp

35.

Lệnh MOV AX, [SI] sử dụng chế độ địa chỉ nào?

a)

Địa chỉ tức thì

b)

Địa chỉ gián tiếp

c)

Địa chỉ trực tiếp

d)

Địa chỉ tương đối

36.

Lệnh JNZ LABEL được sử dụng trong trường hợp nào?

a)

Nhảy đến LABEL nếu cờ ZF ≠ 0

b)

Nhảy đến LABEL nếu cờ CF = 0

c)

Luôn nhảy đến LABEL

d)

Nhảy đến LABEL nếu cờ ZF = 1

37.

Tại sao phải sử dụng lệnh INT 21H trong chương trình hợp ngữ?

a)

Để lưu dữ liệu vào bộ nhớ

b)

Để truyền giá trị 21H vào thanh ghi

c)

Để chuyển đổi giữa các chế độ địa chỉ

d)

Để gọi ngắt

38.

Đoạn lệnh sau thực hiện nhiệm vụ gì? MOV AH, 01H INT 21H

a)

In giá trị của AH ra màn hình

b)

Gọi hàm đọc một ký tự từ bàn phím

c)

Gọi hàm nhập một xâu ký tự từ bàn phím

d)

Gọi hàm in một ký tự lên màn hình

39.

Vai trò của thanh ghi CX trong lệnh LOOP LABEL là gì?

a)

Lưu địa chỉ của LABEL

b)

Thực hiện phép toán cộng

c)

Đếm số lần lặp

d)

Lưu kết quả cuối cùng

40.

Khi nào nên sử dụng lệnh PUSH và POP trong hợp ngữ?

a)

Khi đọc dữ liệu từ file

b)

Khi thực hiện phép toán trên thanh ghi

c)

Khi xử lý ngăt hệ thống

d)

Khi lưu và khôi phục dự liệu từ ngăn xếp

41.

Lệnh SHR AX, 1 có chức năng gì?

a)

Dịch phải 1 bit trong AX

b)

Dịch trái 1 bit trong AX

c)

Đảo ngược các bit trong AX

d)

Thay đổi giá trị của cờ Carry

42.

Cờ nào được cập nhật khi thực hiện lệnh CMP AX, BX?

a)

TF

b)

ZF và CF

c)

OF và SF

d)

IF và DF

43.

Lệnh CALL SUBROUTINE thực hiện nhiệm vụ gì?

a)

Lưu dữ liệu vào bộ nhớ

b)

Gán giá trị cho thanh ghi

c)

Tạo vòng lặp

d)

Chuyển điều khiển tới chương trình con

44.

Đoạn lệnh sau thực hiện gì? MOV AX, DATA MOV DS, AX

a)

Chuyển dữ liệu từ DS sang AX

b)

Khởi tạo ngăn xếp

c)

Gán đoạn dữ liệu vào DS

d)

Lưu dữ liệu từ AX vào bộ nhớ

45.

Lệnh NEG AX ảnh hưởng như thế nào đến giá trị trong AX?

a)

Đổi dấu toán hạng đích

b)

Lấy giá trị tuyệt đối

c)

Chuyển đổi giá trị sang giá trị âm

d)

Xóa toàn bộ giá trị trong AX

46.

Lệnh INT 10H trong hợp ngữ được dùng để làm gì?

a)

Xử lý ngắt phần cứng

b)

Giao tiếp với màn hình hiển thị

c)

Quản lý bộ nhớ

d)

Kết nối với thiết bị ngoại vi

47.

Thanh ghi nào thường được sử dụng để trỏ đến dữ liệu trong ngăn xếp?

a)

AX

b)

BX

c)

DPTR

48.

Lệnh XCHG AX, BX có tác dụng gì?

a)

Đổi chỗ giá trị giữa AX và BX

b)

Lưu giá trị AX vào BX

c)

Gán BX = 0

d)

Xóa giá trị trong BX

49.

Khi nào nên sử dụng lệnh NOP trong hợp ngữ?

a)

Để lưu giá trị vào bộ nhớ

b)

Để chèn khoảng trống tạm thời trong chương trình

c)

Để thay đổi chế độ địa chỉ

d)

Để gọi dịch vụ hệ điều hành

50.

Lệnh AND AX, 0F0H thường được sử dụng để làm gì?

a)

Đảo các bit trong AX

b)

Nhân các giá trị trong AX với 0F0H

c)

Che đi hoặc giữ lại một số bit cụ thể trong AX

d)

Xóa toàn bộ giá trị trong AX

51.

Cờ nào bị ảnh hưởng khi thực hiện lệnh ADD AX, BX?

a)

TF và IF

b)

OF và SF

c)

ZF và CF

d)

AF, CF, OF, PF, SF, ZF

52.

Lệnh RET có chức năng gì?

a)

Kết thúc chương trình con và trở về điểm gọi

b)

Gán giá trị mặc định cho thanh ghi

c)

Xóa dữ liệu trong ngăn xếp

d)

Nhảy đến một địa chỉ cố định

53.

Tại sao cần đặt END ở cuối chương trình hợp ngữ?

a)

Để báo hiệu kết thúc ngăn xếp

b)

Để lưu trạng thái của chương trình

c)

Để báo hiệu trình biên dịch rằng chương trình đã kết thúc

d)

Để khởi tạo ngắt hệ thống

54.

Lệnh nào dùng để tăng giá trị của thanh ghi AX lên 5?

a)

ADD AX, 5

b)

INC AX, 5

c)

SUB AX, 5

d)

MOV AX, 5

55.

Cách sử dụng lệnh LOOP nào đúng để lặp lại 10 lần (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng)?

a)

MOV 10, CX; LOOP START

b)

MOV CX, 10; LOOP START

c)

MOV [CX], 10; LOOP START

d)

MOV CX = 10; LOOP START

56.

Cách sao chép giá trị từ thanh ghi BX sang thanh ghi CX?

a)

MOV BX, CX

b)

ADD CX, BX

c)

CMP BX, CX

d)

MOV CX, BX

57.

Đoạn lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) dừng chương trình và trả về hệ điều hành?

a)

MOV AX, 4C00H; INT 21H

b)

CALL SUBROUTINE

c)

MOV DX, 4C00H; INT 21H

d)

RET

58.

Đoạn lệnh nào đúng để (giả thiết dấu chấm phẩy nếu có thì dùng để phân tách 2 lệnh trên cùng 1 dòng) dịch phải AX 2 bit?

a)

SHL AX, 2

b)

NEG AX, 2

c)

SHR AX, 2

d)

ADD AX, 2

59.

Đoạn lệnh nào đúng để tính tổng hai số trong AX và BX, lưu vào CX?

a)

CALL SUM

b)

MOV CX, AX; ADD CX, BX

c)

SUB AX, BX; MOV CX, AX

d)

MUL AX, BX

60.

Đoạn lệnh nào đúng để gọi dịch vụ in ký tự trên màn hình?

a)

INT 21H, AH=2

b)

MOV AX, 02H; CALL PRINT

c)

MOV AH, 1; INT 21H

d)

MOV AH, 2; INT 21H

61.

Đoạn lệnh nào đúng để kiểm tra cờ ZF trước khi nhảy?

a)

JZ LABEL

b)

JMP LABEL

c)

CMP AX, 0; JMP LABEL

d)

CALL ZF

62.

Đoạn lệnh nào đúng để lưu giá trị hiện tại của BX vào ngăn xếp?

a)

POP BX

b)

CALL BX

c)

PUSH BX

d)

INT 20H

63.

Đoạn lệnh nào đúng để di chuyển địa chỉ đoạn dữ liệu vào thanh ghi DS?

a)

MOV DS, AX

b)

MOV AX, DATA; MOV DS, AX

c)

MOV CX, DATA

d)

CALL DS_INIT

64.

Đoạn lệnh sau có lỗi gì? MOV DS, 1000H MOV AX, DS

a)

DS không thể chứa hằng số

b)

AX không được khởi tạo

c)

Không có lỗi

d)

DS phải được khởi tạo thông qua AX

65.

Điều gì xảy ra khi thực hiện lệnh này? POP AX PUSH BX

a)

BX bị ghi đè

b)

Giá trị AX = AX + BX

c)

Giá trị BX không phù hợp với AX

d)

Không có vấn đề

66.

Tại sao đoạn lệnh sau không thực hiện được đúng cách? ADD AX, BH MOV CX, AX

a)

Lệnh ADD không tương thích

b)

Giá trị AX không hợp lệ

c)

Lệnh ADD không ảnh hưởng đến CX

d)

Lệnh MOV không tương thích

67.

Điểm hạn chế của đoạn lệnh sau là gì? START: MOV CX, 10 LOOP START

a)

Không có lệnh thoát vòng lặp

b)

CX được giảm tự động

c)

Vòng lặp chạy vô hạn

d)

START không phải nhãn hợp lệ

68.

Đoạn lệnh sau có vấn đề gì? MOV AX, 4C00H INT 20H

a)

AX bị ghi đè

b)

Dịch vụ không được gọi đúng cách

c)

INT 20H không hỗ trợ DOS

d)

Lệnh INT không đúng chức năng

69.

Đoạn mã sau gây ra lỗi gì? MOV AX, BX DIV BX

a)

BX không được khởi tạo

b)

AX không được khởi tạo

c)

Không có lỗi

d)

DIV không hỗ trợ BX

70.

Lệnh NEG AX trong đoạn mã sau có thể dẫn đến kết quả gì? MOV AX, 98000H NEG AX

a)

Giá trị âm hợp lệ

b)

Lỗi tràn số học

c)

AX trở về 0

d)

Không có lỗi