Cấu trúc lựa chọn

Một phần của tài liệu BÀI GIẢNG KỸ THUẬT VI XỬ LÝ (Trang 43 - 45)

DIV nguồn (Unsigned Divide)

3.4.2. Cấu trúc lựa chọn

if dk then cv

Nếu điều kiện (dk) cho giá trị đúng thì thực hiện cv (công việc). Ngược lại công việc bị bỏ qua. Để thực hiện điều này, ta sử dụng cặp lệnh so sánh (cmp) và lệnh nhẩy có điều kiện để nhẩy qua một số lệnh (cơng việc nào đó) trong chương trình hợp ngữ.

Ví dụ: Nhập một ký tự từ bàn phím, kiểm tra xem nếu ký tự đó khơng

là ký tự điều khiển thì hiển thị lên màn hình ở đầu dòng tiếp theo, ngược lại (là ký tự điều khiển) thì khơng làm gì và ra khỏi cấu trúc.

Mov ah, 1 ; Nhập 1 ký tự

Int 21h ; bằng hàm 2 của ngắt 21h

Mov bl, al ; Cất mã ASCII của ký tự nhận được

Lea dx, crlf ; Xuống dịng bằng cách hiển thi xâu Mov ah, 9 ; có các ký tự CR và LF

Int 21h ; bằng hàm 9 của ngắt 21h Cmp bl, 20h ; Kiểm tra ký tự nhận được

Jb Ra ; Là ký tự điều khiển => khơng làm gì, Mov dl, bl ; khơng là ký tự điều khiển thì

Mov ah, 2 ; hiển thị ký tự đó

Int 21h ; bằng hàm 2 của ngắt 21h

Ra: ; Ra khỏi cấu trúc

if dk then cv1 else cv2 i1 i2 in ra vào cv ra vào dk đ s

Nếu điều kiện (dk) cho giá trị đúng thì thực hiện cv1 (cơng việc 1). Ngược lại, thực hiện cv2 (công việc 2) qua. Để thực hiện điều này, ta sử dụng cặp lệnh so sánh (cmp) và lệnh nhẩy có điều kiện để nhẩy qua một số lệnh (cơng việc nào đó) trong chương trình hợp ngữ.

Ví dụ: Nhập một ký tự từ bàn phím, kiểm tra xem nếu ký tự đó

khơng là ký tự điều khiển thì hiển thị lên màn hình ở đầu dịng tiếp theo, ngược lại (là ký tự điều khiển) thì hiển thị một thơng báo.

Mov ah, 1 ; Nhập 1 ký tự

Int 21h ; bằng hàm 2 của ngắt 21h

Mov bl, al ; Cất mã ASCII của ký tự nhận được

Lea dx, crlf ; Xuống dòng bằng cách hiển thi xâu Mov ah, 9 ; có các ký tự CR và LF

Int 21h ; bằng hàm 9 của ngắt 21h Cmp bl, 20h ; Kiểm tra ký tự nhận được

Jb Dkhien ; Là ký tự điều khiển => hiên thị thông báo (Dkhien), Mov dl, bl ; khơng là ký tự điều khiển thì

Mov ah, 2 ; hiển thị ký tự đó

Int 21h ; bằng hàm 2 của ngắt 21h

Jmp Ra ; Xong cơng việc thì ra khỏi cấu trúc Dkhien:

Lea dx, mesg ; mesg là biến xâu chứa dịng thơng báo

Mov ah, 9 ; Dùng hàm 9

Int 21h ; của ngắt 21h

Ra: ; Ra khỏi cấu trúc

Cấu trúc Case

Ví dụ: Nhập một ký tự từ bàn phím, kiểm tra xem:

 nếu ký tự đó là ký tự ‘1’, thì hiển thị thơng báo 1.  nếu ký tự đó là ký tự ‘2’, thì hiển thị thơng báo 2.  nếu ký tự đó là ký tự ‘3’, thì hiển thị thơng báo 3.  nếu không là các ký tự trên: hiển thị thông báo 4.

Mov ah, 1 ; Nhập 1 ký tự

Int 21h ; bằng hàm 2 của ngắt 21h

Mov bl, al ; Cất mã ASCII của ký tự nhận được

Lea dx, crlf ; Xuống dòng bằng cách hiển thi xâu Mov ah, 9 ; có các ký tự CR và LF

Int 21h ; bằng hàm 9 của ngắt 21h

Cmp bl, '1' ; Kiểm tra ký tự nhận được xem có bằng ký tự '1' Je Tb1 ; bằng, thì hiển thị thơng báo 1. Khơng, kiểm tra tiếp Cmp bl, '2' ; Kiểm tra ký tự nhận được xem có bằng ký tự '2' Je Tb2 ; bằng, thì hiển thị thơng báo 2. Khơng, kiểm tra tiếp Cmp bl, '3' ; Kiểm tra ký tự nhận được xem có bằng ký tự '3' Je Tb3 ; bằng, thì hiển thị thơng báo 3. Không, kiểm tra tiếp Jmp Tb4 ; Nếu khơng bằng các ký tự trên thì hiển thị thông báo 4

ra vào n1 E cv1 cv2 cvn n2 nn cv1 ra vào dk đ s cv2

Tb1:

; Hiển thị thơng báo 1

jmp Ra ; hiển thị xong thì ra khỏi cấu trúc Tb2:

; Hiển thị thông báo 2

Jmp Ra ; hiển thị xong thì ra khỏi cấu trúc Tb3:

; Hiển thị thơng báo 3

Jmp Ra ; hiển thị xong thì ra khỏi cấu trúc Tb4:

; Hiển thị thông báo 4

Ra: ; Ra khỏi cấu trúc

Một phần của tài liệu BÀI GIẢNG KỸ THUẬT VI XỬ LÝ (Trang 43 - 45)

Tải bản đầy đủ (DOC)

(116 trang)
w