JavaScript is required

Khi chạy đoạn chương trình: for i:=length(st) down to 1 do writeln(st[i]). Với st là xâu ký tự thì nội dung thanh ghi

A.

DI và SI tăng lên 1 sau mỗi lần lặp

B.

DI và SI giảm đi 1 sau mỗi lần lặp

C.

SI giảm đi 1 sau mỗi lần lặp

D.

DI giảm đi 1 sau mỗi lần lặp

Trả lời:

Đáp án đúng: C


Đoạn chương trình duyệt xâu ký tự `st` từ cuối về đầu. Tuy nhiên, nội dung thanh ghi DI và SI không liên quan trực tiếp đến đoạn chương trình Pascal này. Trong ngữ cảnh của ngôn ngữ Assembly, DI (Destination Index) và SI (Source Index) thường được dùng để trỏ đến địa chỉ bộ nhớ trong các thao tác xử lý chuỗi. Tuy nhiên, trong Pascal, việc truy cập các phần tử của xâu được thực hiện thông qua chỉ số, và vòng lặp `for` tự động quản lý chỉ số này. Vì vậy, không có thanh ghi DI hoặc SI nào được tăng hoặc giảm trực tiếp trong đoạn mã Pascal này. Câu hỏi có vẻ không phù hợp với ngữ cảnh Pascal. Tuy nhiên, nếu xét về mặt ý nghĩa của câu hỏi trong ngữ cảnh Assembly (mặc dù đoạn code là Pascal), thì khi duyệt một xâu ký tự từ cuối về đầu trong Assembly, thông thường chúng ta sẽ cần giảm chỉ số để trỏ đến ký tự trước đó.

Câu hỏi liên quan