Thông tin tài liệu:
Phạm vi của lệnh nhảy có điều kiện: cấu trúc mã máy của lệnh nhảy có điều kiện đòi hỏi nhãn đích phải đứng trước lệnh nhảy không quá 126 byte hoặc đứng sau không quá 127 byte...
Nội dung trích xuất từ tài liệu:
Hợp ngữ - Chương 2: Các đại chỉ Logic và điều khiển phần 1 Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅNCác lệnh điều khiển rẻ nhánhCác lệnh nhảy có điều kiện:* Phạm vi của lệnh nhảy có điều kiện: cấu trúc mã máy củalệnh nhảy có điều kiện đòi hỏi nhãn đích phải đứng trước lệnhnhảy không quá 126 byte hoặc đứng sau không quá 127 byte* Có 3 loại lệnh nhảy có điều kiện:+ Các lệnh nhảy có dấu: được dùng khi kết quả trả về là cácsố có dấu+ Các lệnh nhảy không dấu: được dùng khi kết quả trả về làcác số không dấu+ Các lệnh nhảy điều kiện đơn: điều kiện phụ thuộc vào 1 cờriêng biệt Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅNCác lệnh điều khiển rẻ nhánhCác lệnh nhảy có điều kiện:* Các lệnh nhảy có dấu: Ký hiệu Chức năng Điều kiện nhảy Nhảy nếu lớn hơn JG/JNLE ZF=0 và SF=0F Nhảy nếu lớn hơn hoặc bằng JGE/JNL SF=0F Nhảy nếu nhỏ hơn JL/JNGE SF0F Nhảy nếu nhỏ hơn hoặc bằng JLE/JNG ZF=1 hay SF=0F Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅNCác lệnh điều khiển rẻ nhánhCác lệnh nhảy có điều kiện:* Các lệnh nhảy không dấu: Ký hiệu Chức năng Điều kiện nhảy Nhảy nếu lớn hơn JA/JNBE CF=0 và ZF=0 Nhảy nếu lớn hơn hoặc bằng JAE/JNB CF=0 Nhảy nếu nhỏ hơn JB/JNAE CF=1 Nhảy nếu nhỏ hơn hoặc bằng JBE/JNA CF=1 hay ZF=1 Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅNCác lệnh điều khiển rẻ nhánhCác lệnh nhảy có điều kiện:* Các lệnh nhảy điều kiện đơn: Ký hiệu Chức năng Điều kiện nhảy Nhảy nếu bằng/Nhảy nếu bằng 0 JE/JZ ZF=1 Nhảy nếu không bằng/Nếu khác 0 JNE/JNZ ZF=0 Nhảy nếu có nhớ JC CF=1 Nhảy nếu không nhớ JNC CF=0 Nhảy nếu tràn số JO OF=1 Nhảy nếu không tràn JNO OF=0 Nhảy nếu dấu âm JS SF=1 Nhảy nếu dấu dương JNS SF=0 Nhảy nếu cờ chẵn JP/JPE PF=1 Nhảy nếu cờ lẻ JNP/JPO PF=0 Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅNCác lệnh điều khiển rẻ nhánhCác lệnh nhảy có điều kiện: Ví dụ: Viết chương trình hiển thị toàn bộ tập hợp các ký tự của hệ IBM ;trả quyền điều khiển TITLE BAITAP4:IBM .MODEL SMALL MOV AH,4Ch .STACK 100h INT 21h .CODE MAIN ENDP MAIN PROC END MAIN MOV AH,2 ; số ký tự MOV CX,256 MOV DL,0 ; NULL PRINT_LOOP INT 21h INC DL DEC CX JNZ PRINT_LOOP Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅNCác lệnh điều khiển rẻ nhánhCác lệnh nhảy có điều kiện: Lệnh CMP Lệnh CMP dùng để so sánh giữa 2 toán tử bằng cách lấy toán tử đích trừ đi toán tử nguồn , Cú pháp: CMP Chú ý: + Thường được sử dụng chung với lệnh nhảy có điều kiện + CMP giống lệnh SUB nhưng toán hạng đích không bị thay đổi giá trị. Ví dụ: Với AX=7FFFh, BX=0001h ;điều kiện nhảy AX>BX CMP AX,BX ;nếu lớn hơn thì nhả đến nhãn NHAN JG NHAN NHAN: Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅNCác lệnh điều khiển rẻ nhánhLệnh nhảy không điều kiện: Lệnh JMP Lệnh JMP dùng để nhảy không điều kiện, dùng để khắc phục giới hạn của lệnh nhảy có điều kiện: Cú pháp: JMP Ví dụ: MOV CX,10 TOP: ;giảm bộ đếm DEC CX ;đúng lặp lại nếu CX> JNZ BOTTOM ;sai nhảy đến nhãn EXIT JMP EXIT BOTTOM: JMP TOP EXIT: MOV AX,BX Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅNCấu trúc rẻ nhánh IF…THEN….ELSECấu trúc rẻ ...