JavaScript is required

Xét đoạn chương trình sau: MOV CX,0 MOV AH,1 DOC: INT 21h CMP AL,0 JE thoat INC CX JMP DOC Thoat: Bộ đếm CX có chức năng gì?

A.
CX được dùng để đếm số ký tự được đọc vào
B.
CX dùng để khởi tạo bộ đếm
C.
CX chứa số ký tự được hiển thị
D.
CX = 0
Trả lời:

Đáp án đúng: A


Đoạn chương trình trên sử dụng ngắt INT 21h với AH=1 để đọc một ký tự từ bàn phím vào AL. - `MOV CX, 0`: Khởi tạo bộ đếm CX bằng 0. - `DOC:`: Bắt đầu vòng lặp. - `INT 21h`: Gọi ngắt 21h, AH=1 để đọc một ký tự từ bàn phím và lưu vào AL. - `CMP AL, 0`: So sánh ký tự vừa đọc (AL) với 0. Trong hệ điều hành DOS, khi người dùng nhập một ký tự, giá trị ASCII của ký tự đó được lưu vào AL. Việc so sánh với 0 không phải là so sánh với giá trị ASCII của ký tự '0', mà thường là để kiểm tra một điều kiện đặc biệt nào đó (ví dụ, một tín hiệu kết thúc nhập liệu). Tuy nhiên, trong ngữ cảnh thông thường của việc đọc ký tự, việc so sánh trực tiếp với 0 ít khi xảy ra, trừ khi có một cơ chế đặc biệt nào đó được thiết lập để gửi tín hiệu 0. Giả sử ở đây, nó có ý nghĩa là kiểm tra ký tự NULL (kết thúc chuỗi). - `JE thoat`: Nếu AL bằng 0 (ký tự NULL), nhảy đến nhãn `thoat`. - `INC CX`: Tăng giá trị của CX lên 1. - `JMP DOC`: Quay lại nhãn `DOC` để tiếp tục vòng lặp. - `Thoat:`: Nhãn đánh dấu điểm kết thúc vòng lặp. Như vậy, bộ đếm CX tăng lên mỗi khi một ký tự khác 0 (hoặc ký tự NULL) được đọc từ bàn phím. Do đó, CX dùng để đếm số ký tự được đọc vào cho đến khi gặp ký tự NULL.

Câu hỏi liên quan