NEW
Font size
WorksheetsCâu hỏi về chế độ địa chỉ trong lập trình
Total questions: 70
Worksheet time: 35mins
Trong chế độ địa chỉ tương đối cơ sở (Base Relative), làm thế nào để tính toán địa chỉ?
Sử dụng giá trị trực tiếp trong lệnh
Cộng giá trị trong thanh ghi cơ sở với giá trị offset
Lấy giá trị từ bộ nhớ qua bus dữ liệu
Chỉ sử dụng giá trị trong thanh ghi BP
Chế độ địa chỉ chỉ số (Indexed) thường được dùng trong trường hợp nào?
Duyệt mảng
Truy cập lệnh kế tiếp
Tính toán địa chỉ tạm thời
Lưu trữ kết quả phép toán
Chế độ địa chỉ tức thì (Immediate) có ưu điểm gì so với các chế độ khác?
Tăng kích thước thanh ghi
Truy cập vào bộ nhớ nhanh
Đơn giản và không cần tham chiếu đễn bộ nhớ
Hỗ trợ các lệnh phúc tạp
Tại sao chế độ địa chỉ thanh ghi lại có tốc độ thực hiện nhanh?
Toán hạng là 2 thanh ghi
Cần truy nhập bộ nhớ
Truy cập gián tiếp qua thanh ghi
Truy cập trực tiếp vào hằng số
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?
Toán hạng vẫn giữ nguyên
Toán hạng thay đổi theo địa chỉ mới
Toán hạng bị mất giá trị
Thanh ghi tự động reset
Đ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ì?
Sử dụng thanh ghi SP thay vì BX
Sử dụng bộ đệm lệnh thay vì bộ nhớ
Thêm giá trị chỉ số vào địa chỉ cơ bản
Truy cập ngăn xếp thay vì thanh ghi
Chế độ địa chỉ tương đối chỉ số cơ sở (Base Indexed) thường được dùng khi nào?
Truy cập ngẫu nhiên vào bộ nhớ
Thực hiện phép toán logic
Tính toán địa chỉ ngăn xếp
Truy cập các cấu trúc dữ liệu phức tạp như mảng 2 chiều
Lệnh MOV AX, BX có tác dụng gì?
So sánh dữ liệu giữa BX và AX
Chuyển dữ liệu từ AX sang BX
Chép nội dung từ BX vào AX
Đổi chỗ nội dung giữa AX và BX
Lệnh ADD AX, BX thực hiện chức năng nào?
Cộng nội dung của BX vào AX
Nhân nội dung của BX với AX
Lưu nội dung AX và BX vào ngăn xếp
Trừ nội dung của BX khỏi AX
Lệnh SUB AX, 10h có ý nghĩa gì?
Cộng giá trị 10h vào AX
Lưu giá trị 10h vào thanh ghi BX
Lấy giá trị từ 10h và lưu vào AX
Trừ giá trị AX cho 10h rồi lưu kết quả vào AX
Lệnh MUL BX thực hiện nhiệm vụ nào?
Trừ AX với BX
Nhân nội dung của AX với BX
Lấy giá trị từ BX và lưu vào AX
Chia AX cho BX
Lệnh DIV BL có tác dụng gì?
Cộng nội dung của BL vào AX
Trừ nội dung của BL khỏi BX
Chia nội dung của AX cho BL
Chia nội dung của DXAX cho BL
Lệnh INC CX có ý nghĩa gì?
Tăng giá trị của CX lên 1
Giảm giá trị của CX xuống 1
Đặt lại CX về 0
Lưu giá trị CX vào AX
Lệnh DEC DX thực hiện tác vụ
gì?
Tăng giá trị của DX lên 1
Giảm giá trị của BX xuống 1
Tăng giá trị của BX lên 1
Giảm giá trị của DX xuống 1
Lệnh AND AX, BX thực hiện phép toán nào?
Phép toán AND giữa AX và BX
Phép toán OR giữa AX và BX
Phép toán XOR giữa AX và BX
Phép toán NOT trên BX
Lệnh OR AX, CX có nhiệm vụ gì?
Thực hiện phép toán AND giữa AX và CX
Thực hiện phép toán OR giữa AX và CX
Thực hiện phép toán XOR giữa AX và CX
Thực hiện phép toán NOT trên AX
Lệnh JMP 1234h có ý nghĩa gì?
Dừng chương trình tại địa chỉ 1234h
So sánh giá trị tại địa chỉ 1234h
Nhảy tới địa chỉ 1234h
Ghi giá trị 1234h vào AX
Lệnh CMP AX, BX được sử dụng để làm gì?
Lưu giá trị AX vào BX
Trừ AX và BX, lưu kết quả vào AX
So sánh AX với hằng số
So sánh giá trị trong AX và BX
Lệnh NOT AX thực hiện thao tác gì?
Đảo ngược tất cả các bit trong AX
Gán giá trị mặc định cho AX
Nhân đôi giá trị của AX
Xóa giá trị trong AX
Lệnh PUSH BX có ý nghĩa gì?
Lấy giá trị BX từ ngăn xếp
Lưu giá trị của BX vào ngăn xếp
Chuyển giá trị BX vào AX
Đặt BX bằng giá trị mặc định
Tại sao lệnh MOV BX, 1234h thường được dùng trong khởi tạo?
Để lưu giá trị hằng vào thanh ghi BX
Để đọc dữ liệu từ bộ nhớ ngoài
Để thực hiện phép toán trên BX
Để thiết lập giá trị ban đầu cho BX
Lệnh ADD AX, 100h có ảnh hưởng gì đến cờ Carry (CF)?
Không ảnh hưởng
Luôn đặt CF về 0
Thiết lập CF = 1 nếu có tràn xảy ra
Bỏ qua cờ Carry
Lệnh SUB BX, CX được sử dụng trong trường hợp nào?
Để cộng hai số nguyên
Để trừ giá trị của CX khỏi BX
Để nhân hai giá trị trong thanh ghi
Để lưu giá trị CX vào BX
Điều gì xảy ra nếu thực hiện lệnh MUL BX khi BX chứa giá trị 0?
Kết quả sẽ là 0
Gây lỗi tràn bộ nhớ
Giá trị BX sẽ được lưu vào DX
Không có thay đổi nào xảy ra
Lệnh DIV BL có thể gây ra lỗi gì?
Tràn thanh ghi BX
Lỗi chia số âm
Lỗi làm đầy bộ nhớ
Lỗi chia cho 0
Tại sao lệnh INC CX thường được sử dụng trong vòng lặp?
Để lưu giá trị của vòng lặp
Để đặt lại giá trị CX
Để tăng số lần lặp
Để giảm số lần lặp
Lệnh DEC DX được áp dụng trong trường hợp nào?
Để lưu giá trị mới vào thanh ghi AX
Để giảm giá trị của DX trong vòng lặp giảm dần
Để kiểm tra điều kiện lặp
Để đặt lại DX về giá trị mặc định
Kết quả của lệnh AND AX, BX phụ thuộc vào điều gì?
Giá trị bit tương ứng trong AX và BX
Giá trị số học của AX
Giá trị lệnh tiếp theo
Giá trị lệnh JMP
Lệnh OR AX, CX thường được sử dụng để làm gì?
Kiểm tra tính đồng nhất
Tăng giá trị thanh ghi
Thiết lập cờ Zero(ZF)
Thiết lập các bit cụ thể trong AX
Lệnh JMP 1234h có ưu điểm gì trong việc điều hướng chương trình?
Tăng tốc độ xử lý
Tránh các lỗi bộ nhớ
Điều khiển luồng thực thi hiệu quả
Thiết lập giá trị mặc định
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?
Để lưu giá trị hằng vào BX
Để xác định điều kiện nhảy dựa trên kết quả so sánh
Để thực hiện phép toán cộng
Để ghi dữ liệu vào AX
Lệnh NOT AX có thể ảnh hưởng đến cờ nào?
Carry (CF)
Zero (ZF)
Overflow (OF)
Không ảnh hưởng đến cờ nào
Lệnh PUSH BX có lợi ích gì khi lập trình với ngăn xếp?
Tăng tốc độ xử lý dữ liệu
Bỏ qua giá trị hiện tại của BX
Lưu giá trị BX vào ngăn xếp để sử dụng sau
Gán giá trị BX vào DX
Trong một chương trình hợp ngữ, mục đích của đoạn lệnh DATA SEGMENT là gì?
Định nghĩa các lệnh chính
Lưu trữ mã lệnh của chương trình
Định nghĩa dữ liệu và các biến
Quản lý bộ nhớ ngăn xếp
Lệnh MOV AX, [SI] sử dụng chế độ địa chỉ nào?
Địa chỉ tức thì
Địa chỉ gián tiếp
Địa chỉ trực tiếp
Địa chỉ tương đối
Lệnh JNZ LABEL được sử dụng trong trường hợp nào?
Nhảy đến LABEL nếu cờ ZF ≠ 0
Nhảy đến LABEL nếu cờ CF = 0
Luôn nhảy đến LABEL
Nhảy đến LABEL nếu cờ ZF = 1
Tại sao phải sử dụng lệnh INT 21H trong chương trình hợp ngữ?
Để lưu dữ liệu vào bộ nhớ
Để truyền giá trị 21H vào thanh ghi
Để chuyển đổi giữa các chế độ địa chỉ
Để gọi ngắt
Đoạn lệnh sau thực hiện nhiệm vụ gì? MOV AH, 01H INT 21H
In giá trị của AH ra màn hình
Gọi hàm đọc một ký tự từ bàn phím
Gọi hàm nhập một xâu ký tự từ bàn phím
Gọi hàm in một ký tự lên màn hình
Vai trò của thanh ghi CX trong lệnh LOOP LABEL là gì?
Lưu địa chỉ của LABEL
Thực hiện phép toán cộng
Đếm số lần lặp
Lưu kết quả cuối cùng
Khi nào nên sử dụng lệnh PUSH và POP trong hợp ngữ?
Khi đọc dữ liệu từ file
Khi thực hiện phép toán trên thanh ghi
Khi xử lý ngăt hệ thống
Khi lưu và khôi phục dự liệu từ ngăn xếp
Lệnh SHR AX, 1 có chức năng gì?
Dịch phải 1 bit trong AX
Dịch trái 1 bit trong AX
Đảo ngược các bit trong AX
Thay đổi giá trị của cờ Carry
Cờ nào được cập nhật khi thực hiện lệnh CMP AX, BX?
TF
ZF và CF
OF và SF
IF và DF
Lệnh CALL SUBROUTINE thực hiện nhiệm vụ gì?
Lưu dữ liệu vào bộ nhớ
Gán giá trị cho thanh ghi
Tạo vòng lặp
Chuyển điều khiển tới chương trình con
Đoạn lệnh sau thực hiện gì? MOV AX, DATA MOV DS, AX
Chuyển dữ liệu từ DS sang AX
Khởi tạo ngăn xếp
Gán đoạn dữ liệu vào DS
Lưu dữ liệu từ AX vào bộ nhớ
Lệnh NEG AX ảnh hưởng như thế nào đến giá trị trong AX?
Đổi dấu toán hạng đích
Lấy giá trị tuyệt đối
Chuyển đổi giá trị sang giá trị âm
Xóa toàn bộ giá trị trong AX
Lệnh INT 10H trong hợp ngữ được dùng để làm gì?
Xử lý ngắt phần cứng
Giao tiếp với màn hình hiển thị
Quản lý bộ nhớ
Kết nối với thiết bị ngoại vi
Thanh ghi nào thường được sử dụng để trỏ đến dữ liệu trong ngăn xếp?
AX
BX
DPTR
Lệnh XCHG AX, BX có tác dụng gì?
Đổi chỗ giá trị giữa AX và BX
Lưu giá trị AX vào BX
Gán BX = 0
Xóa giá trị trong BX
Khi nào nên sử dụng lệnh NOP trong hợp ngữ?
Để lưu giá trị vào bộ nhớ
Để chèn khoảng trống tạm thời trong chương trình
Để thay đổi chế độ địa chỉ
Để gọi dịch vụ hệ điều hành
Lệnh AND AX, 0F0H thường được sử dụng để làm gì?
Đảo các bit trong AX
Nhân các giá trị trong AX với 0F0H
Che đi hoặc giữ lại một số bit cụ thể trong AX
Xóa toàn bộ giá trị trong AX
Cờ nào bị ảnh hưởng khi thực hiện lệnh ADD AX, BX?
TF và IF
OF và SF
ZF và CF
AF, CF, OF, PF, SF, ZF
Lệnh RET có chức năng gì?
Kết thúc chương trình con và trở về điểm gọi
Gán giá trị mặc định cho thanh ghi
Xóa dữ liệu trong ngăn xếp
Nhảy đến một địa chỉ cố định
Tại sao cần đặt END ở cuối chương trình hợp ngữ?
Để báo hiệu kết thúc ngăn xếp
Để lưu trạng thái của chương trình
Để báo hiệu trình biên dịch rằng chương trình đã kết thúc
Để khởi tạo ngắt hệ thống
Lệnh nào dùng để tăng giá trị của thanh ghi AX lên 5?
ADD AX, 5
INC AX, 5
SUB AX, 5
MOV AX, 5
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)?
MOV 10, CX; LOOP START
MOV CX, 10; LOOP START
MOV [CX], 10; LOOP START
MOV CX = 10; LOOP START
Cách sao chép giá trị từ thanh ghi BX sang thanh ghi CX?
MOV BX, CX
ADD CX, BX
CMP BX, CX
MOV CX, BX
Đ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?
MOV AX, 4C00H; INT 21H
CALL SUBROUTINE
MOV DX, 4C00H; INT 21H
RET
Đ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?
SHL AX, 2
NEG AX, 2
SHR AX, 2
ADD AX, 2
Đoạn lệnh nào đúng để tính tổng hai số trong AX và BX, lưu vào CX?
CALL SUM
MOV CX, AX; ADD CX, BX
SUB AX, BX; MOV CX, AX
MUL AX, BX
Đoạn lệnh nào đúng để gọi dịch vụ in ký tự trên màn hình?
INT 21H, AH=2
MOV AX, 02H; CALL PRINT
MOV AH, 1; INT 21H
MOV AH, 2; INT 21H
Đoạn lệnh nào đúng để kiểm tra cờ ZF trước khi nhảy?
JZ LABEL
JMP LABEL
CMP AX, 0; JMP LABEL
CALL ZF
Đoạn lệnh nào đúng để lưu giá trị hiện tại của BX vào ngăn xếp?
POP BX
CALL BX
PUSH BX
INT 20H
Đoạn lệnh nào đúng để di chuyển địa chỉ đoạn dữ liệu vào thanh ghi DS?
MOV DS, AX
MOV AX, DATA; MOV DS, AX
MOV CX, DATA
CALL DS_INIT
Đoạn lệnh sau có lỗi gì? MOV DS, 1000H MOV AX, DS
DS không thể chứa hằng số
AX không được khởi tạo
Không có lỗi
DS phải được khởi tạo thông qua AX
Điều gì xảy ra khi thực hiện lệnh này? POP AX PUSH BX
BX bị ghi đè
Giá trị AX = AX + BX
Giá trị BX không phù hợp với AX
Không có vấn đề
Tại sao đoạn lệnh sau không thực hiện được đúng cách? ADD AX, BH MOV CX, AX
Lệnh ADD không tương thích
Giá trị AX không hợp lệ
Lệnh ADD không ảnh hưởng đến CX
Lệnh MOV không tương thích
Điểm hạn chế của đoạn lệnh sau là gì? START: MOV CX, 10 LOOP START
Không có lệnh thoát vòng lặp
CX được giảm tự động
Vòng lặp chạy vô hạn
START không phải nhãn hợp lệ
Đoạn lệnh sau có vấn đề gì? MOV AX, 4C00H INT 20H
AX bị ghi đè
Dịch vụ không được gọi đúng cách
INT 20H không hỗ trợ DOS
Lệnh INT không đúng chức năng
Đoạn mã sau gây ra lỗi gì? MOV AX, BX DIV BX
BX không được khởi tạo
AX không được khởi tạo
Không có lỗi
DIV không hỗ trợ BX
Lệnh NEG AX trong đoạn mã sau có thể dẫn đến kết quả gì? MOV AX, 98000H NEG AX
Giá trị âm hợp lệ
Lỗi tràn số học
AX trở về 0
Không có lỗi
