0
Tải bản đầy đủ (.doc) (78 trang)

Lệnh nhảy có điều kiện: Lệnh này biểu diễn thao tác: nhảy (có điều kiện) tới nhãn, tức là chỉ thực hiện nhảy tới nhãn nếu điều kiện chỉ ra đúng Nhãn phải nằm

Một phần của tài liệu GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH (Trang 31 -33 )

tới nhãn, tức là chỉ thực hiện nhảy tới nhãn nếu điều kiện chỉ ra đúng. Nhãn phải nằm cách xa (dịch đi một khoảng) -128.. +127 byte so với lệnh tiếp theo sau lệnh nhảy có điều kiện. Chơng trình dịch sẽ căn cứ vào vị trí của nhãn để xác định giá trị dịch chuyển.

Các lệnh này không tác động đến cờ.

Ngời ta phân biệt các kiểu nhảy có điều kiện: + Nhảy theo kiểu không dấu:

JA/JNBE - Jump if Above/ Jump if Not Below or Equal. Viết lệnh: JA Nhãn

JNBE Nhãn

JAE/JNB- Jump if Above or Equal/ Jump if Not Below. Viết lệnh: JAE Nhãn

JNB Nhãn

JB/JNAE- Jump if Below/ Jump if Not Above or Equal. Viết lệnh: JB Nhãn

JNAE Nhãn. Ví dụ 1:

CMP AL, 10H ; so sánh AL với 10H.

JB MEM2 ;nhảy đến nhãn MEM2 nếu AL thấp hơn 10H. + Nhảy theo kiểu có dấu:

JG/JNLE- Jump if Greater than/ Jump if Not Less than or Equal. Viết lệnh: JG Nhãn

JNLE Nhãn.

JGE/JNL- Jump if Greater than or Equal/ Jump if Not Less than. Viết lệnh: JGE Nhãn

JNL Nhãn.

JL/JNGE- Jump if Less than/ Jump if Not Greater than or Equal.

JLE/JNG- Jump if Less than or Equal/ Jump if Not Greater than. + Nhảy theo kiểu đơn.

JE/JZ- Jump if Equal/ Jump if Zero.

JNE/JNZ- Jump if Not Equal/ Jump if Not Zero.

JC- Jump if Carry

JNC- Jump if Not Carry

JO- Jump if Overflow

JNO- Jump if Not Overflow

JS- Jump if Sign

JNS- Jump if Not Sign

JP/JPE- Jump if Parity/ Jump if Parity Even

JNP/JPO- Jump if Not Parity/ Jump if Parity Odd

- Lệnh lặp: Lệnh này dùng để lặp lại đoạn chơng trình (bao gồm các lệnh nằm trong khoảng tử nhãn đến hết lệnh LOOP Nhãn cho đến khi số lần lặp CX=0. Điều này có nghĩa là trớc khi vào vòng lặp, ta phải đa số lần lặp mong muốn vào thanh ghi CX và sau mỗi lần thực hiện lệnh LOOP Nhãn thì CX tự động giảm đi 1.

Nhãn phải nằm cách xa (dịch một khoảng) -128 byte so với lệnh tiếp theo sau lệnh LOOP.

Lệnh này không tác động đến cờ. Viết lệnh: LOOP Nhãn

Ví dụ:

XOR AL, Al; xoá AL

MOV CX, 16 ; số lần lặp đa vào CX Lap: INC AL ; tăng AL lên 1

LOOP Lap ; lặp lại 16 lần, AL =16. - Lệnh JCXZ- Jump if CX is Zero (nhảy nếu CX = 0). Viết lệnh: JCXZ Nhãn

Đây là lệnh nhảy có điều kiện tới nhãn nếu nội dung thanh đếm bằng 0 và không có liên hệ gì với cò ZF. Nhãn phải nằm cách xa (dịch đi một khoảng) -128..

+127 byte so với lệnh tiếp theo sau lệnh JCXZ. Chơng trình dịch sẽ căn cứ vào vị trí nhãn để xác định giá trị dịch chuyển.

Một phần của tài liệu GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH (Trang 31 -33 )

×