tailieunhanh - giới thiệu hợp ngữ Assembler very good phần 3

Tham khảo tài liệu 'giới thiệu hợp ngữ assembler very good phần 3', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Điều kiện AL BL được kiểm tra bởi lệnh CMP . Nếu nó sai chương trình sẽ nhảy qua nhánh đúng tới ELSE_. Chúng ta sử dụng lệnh nhảy không dấu JNBE bởi lẽ chúng ta dang so sánh các kí tự mở rộng. Nếu AL BL thoả mãn nhánh_đúng được thực hiện. Lưu ý rằng chỉ thị JMP DISPLAY là cần thiết để nhay qua nhánh_sai. Điều này khác trong với ngôn ngừ bậc cao nhánh_sai được tự dộng nhảy qua nếu nhánh-đúng được thực hiện. CASE. CASE là một cấu trúc đa nhánh nó kiêm tra các thanh ghi các biến hay các biểu thức với các giá trị riêng rẽ trong miền giá trị. Dạng tổng quát của nó là CASE phát biểu giá_trị_l dòng_lênh_l giá dòng_ìênh 2 giá trị n dòng_2Ộnhn END CASE Xem hình Trong câu trúc này phát biểu được kiểm tra nếu giá trị của nó bằng vối giá_trị_i thì dòng_lệnh _i sẽ được thi hành. Ta giả thiết tập hợp giá trị_l. giá_trị_n tách biệt nhau Hình CASE 138 Ví dụ . Nêu AX chứa một số âm hay nhập -1 vào BX nếu AX chứa 0 cho BX bằng 0 nếu AX đương đổi BX thành 1. Lời giải CASE AX 0 gán BX bằng -1 0 gán BX bằng 0 ũ gán BX bằng 1 END_CASE Ta có thể mã hoá như sau case AX CMP AX Ũ kiểm tra AX u L NEGATIVE AX 0 JE ZERO AX 0 JG POSITIVE AX 0 NEGATIVE MOV BX -1 nhâp 1 vào BX JMP END_CASE rồi thoát ZERO MOV BX Ũ nhập 0 vào BX JMP END_ CASE rồi thoát POSITIVE MOV BX 1 nhập 1 vào BX END CASE Các nhánh với diều kiện kép. Đôi khi điều kiện nhánh của IF hay CASE có dạng l AND điều_kiện_2 hay điều_kiên_l OR điều_kiện _2 139 Ở đây điêu_kiện_l và điểu_kiện 2 có thê đúng hoặc sai. Đầu tiên chúng ta hãy xem xét điều kiện AND AND condition sau đó đến điều kiện OR OR condition . Các điều kiện AND. Điều kiện AND chỉ đúng khi cả hai điều kiện điều_kiện_1 và điều_kiện_2 cùng đúng. Ngược lại nếu một trong chúng sai điều kiện AND cũng sẽ sai. Ví dụ . Đọc một ký tự. Nếu là chữ hoa thì hiển thị nó. Lời giải tìoc một ký tự vầo DL IF A ký_tự và ký_tự Z THEN hiển thị ký tự END IF Để mã hoá đầu tiên chúng ta kiểm tra xem ký tự trong AL có đứng sau A trong bảng mã hay không nếu .