Xét đoạn chương trình sau: CMP AL,0 JA GAN NEG AL GAN: MOV BL,AL Thoat: Đoạn chương trình trên được viết bằng cấu trúc nào?
Trả lời:
Đáp án đúng: A
Đoạn chương trình sử dụng lệnh `CMP AL, 0` để so sánh giá trị trong thanh ghi AL với 0. Sau đó, lệnh `JA GAN` (Jump if Above) sẽ nhảy đến nhãn `GAN` nếu giá trị trong AL lớn hơn 0. Nếu không, lệnh `NEG AL` (Negate) sẽ đảo dấu giá trị trong AL. Sau đó, chương trình tiếp tục thực hiện các lệnh từ nhãn `GAN` trở đi. Điều này tương ứng với cấu trúc `IF-THEN-ELSE`, trong đó điều kiện là `AL > 0`, phần `THEN` là các lệnh bắt đầu từ nhãn `GAN` (trong trường hợp này là `MOV BL, AL`), và phần `ELSE` là lệnh `NEG AL`.
- A. Cấu trúc IF – THEN: Sai vì thiếu nhánh ELSE (trường hợp AL <= 0 thì thực hiện NEG AL).
- B. Cấu Trúc IF – Then – else: Đúng như phân tích ở trên.
- C. Cấu trúc case: Sai vì không có biểu thức điều khiển và các trường hợp khác nhau để lựa chọn.
- D. Cấu trúc While – do: Sai vì không có vòng lặp, không có lệnh nào kiểm tra điều kiện lặp lại.





