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