JavaScript is required

Sau đoạn chương trình dưới ta có: CMP AX,BX JG KT XCHG AX,BX KT:

A.
AX chứa giá trị lớn nhất trong 2 giá trị trong AX và BX
B.
AX chứa giá trị nhỏ nhất trong 2 giá trị trong AX và BX
C.
BX chứa giá trị lớn nhất trong 2 giá trị trong AX và BX
D.
AX chứa giá trị nhỏ nhất trong 2 giá trị trong AX và BX, BX chứa giá trị lớn nhất trong 2 giá trị trong AX và BX
Trả lời:

Đáp án đúng: A


Đoạn chương trình này thực hiện so sánh hai giá trị trong thanh ghi AX và BX, sau đó hoán đổi chúng nếu AX nhỏ hơn BX.

**Giải thích chi tiết:**

1. `CMP AX, BX`: Lệnh này so sánh giá trị trong thanh ghi AX với giá trị trong thanh ghi BX. Kết quả so sánh được lưu trong các cờ (flags) của bộ vi xử lý.

2. `JG KT`: Lệnh này kiểm tra cờ Zero Flag (ZF) và Sign Flag (SF). Nếu AX lớn hơn BX (Jump if Greater), thì chương trình sẽ nhảy đến nhãn `KT`. Nếu AX không lớn hơn BX (tức là AX nhỏ hơn hoặc bằng BX), chương trình sẽ tiếp tục thực hiện lệnh kế tiếp.

3. `XCHG AX, BX`: Lệnh này hoán đổi giá trị giữa thanh ghi AX và BX. Lệnh này chỉ được thực hiện khi AX nhỏ hơn hoặc bằng BX.

4. `KT:`: Nhãn này đánh dấu vị trí mà chương trình nhảy đến nếu AX lớn hơn BX.

**Kết luận:**

Sau khi đoạn chương trình này thực hiện, thanh ghi AX sẽ chứa giá trị nhỏ nhất trong hai giá trị ban đầu của AX và BX, và BX sẽ chứa giá trị lớn nhất.

Vì vậy, đáp án đúng là: AX chứa giá trị nhỏ nhất trong 2 giá trị trong AX và BX, BX chứa giá trị lớn nhất trong 2 giá trị trong AX và BX.

Câu hỏi liên quan