Côngviệc đúng sai Côngviệc Điềukiện đúng sai
Hình 4.6. Cấu trúc WHILE - DO Hình 4.7. Cấu trúc REPEAT - UNTIL
Ví dụ
Đếm số ký tự đọc đ−ợc từ bμn phím, khi gặp ký tự CR thì thôi.
Giải
Ta có thể thực hiện công việc trên bằng mẩu ch−ơng trình sau:
XOR CX,CX ; tổng số ký tự đọc đ−ợc lúc đầu lμ 0 MOV AH,1 ; hμm đọc ký tự từ bμn phím.
TIEP: INT 21H ; đọc một ký tự, AL chứa mã ký tự.
CMP AL,13 ; đọc đ−ợc CR ?
JE RA ; đúng, ra.
INC CX ; sai, thêm 1 ký tự vμo tổng.
JMP TIEP ; đọc tiếp.
RA: ; lối ra của cấu trúc.
• Cấu trúc lặp REPEAT - UNTIL
Ngữ pháp (hình 4.7):
REPEAT Côngviệc UNTIL Điềukiện
Từ ngữ pháp của cấu trúc REPEAT-UNTIL ta thấy: Côngviệc đ−ợc thực hiện đầu tiên, điều đó có nghĩa lμ Côngviệc đ−ợc thực hiện ít nhất một lần. Điều kiện đ−ợc kiểm tra sau đó. Côngviệc đ−ợc lặp đi lặp lại cho tới khi Điềukiện đ−ợc thoả mãn. Điều nμy trong hợp ngữ hoμn toμn t−ơng đ−ơng với việc dùng lệnh CMP để kiểm tra Điềukiện vμ sau đó dùng lệnh nhảy có điều kiện để thoát khỏi vòng lặp.
Ví dụ
Đọc ký tự từ bμn phím cho tới khi gặp '$ ' thì thôi.
Giải
Ví dụ nμy chỉ lμm một phần công việc của ví dụ tr−ớc. Tại đây ta chỉ phải đọc các ký tự mμ không phải đếm số ký tự đọc đ−ợc.
Ta có thể thực hiện công việc trên bằng mẩu ch−ơng trình sau:
MOV AH,1 ; hμm đọc ký tự từ bμn phím.
TIEP: INT 21H ; đọc một ký tự.
CMP AL,'$' ; đọc đ−ợc đôla ? JNE TIEP ; ch−a,đọc tiếp.
RA: ; lối ra của cấu trúc.