So sánh Các điều điện nhảy thường được cung cấp bởi lệnh CMP (compare). Nó có dạng sau: CMP đích,nguồn on (ZF=1) Not (ZF=0) JE JNE on (ZF=0) (SF=1) Not (SF=0) None None Lệnh này so sánh toán tử đích với toán tử nguồn bằng cách lấy toán hạng đích trừ đi toán hạng nguồn. Tuy nhiên kết quả được sử dụng để thiết lập giá trị cho các cờ nhớ chứ không được chứa ở dâu cả.
Greater JGE (ZF=1) Jump if Greater (SF=OF) JNL or Equal JNGE Jump if Not (SFOF) JL Greater or Equal JL Jump if Less JNL Jump if Not Less (SF=OF) JLE Jump if Less or (SFOF) JNG Equal (SFOF) JNGE JGE (ZF=1) JNLE Jump if Not Less (SF=OF) JG or Equal (ZF=0) JS Jump on Sign (SF=1) None JNS Jump Not (SF=0) None on Sign JZ Jump on Zero JNZ Jump on (ZF=1) Not (ZF=0) JE JNE Zero c So sánh Các điều điện nhảy thường cung cấp lệnh CMP (compare) Nó có dạng sau: CMP đích,nguồn Lệnh so sánh tốn tử đích với tốn tử nguồn cách lấy tốn hạng đích trừ tốn hạng nguồn Tuy nhiên kết sử dụng để thiết lập giá trị cho cờ nhớ không chứa dâu Chương trình nguồn ViDu_1.asm Code Segment Assume cs:Code, ds:Code Org 100h Begin: Mov ah,02 Mov cx,256 Mov ;Số ký tự thị Dl,0 ;DL chứa mã ASCII ký tự NULL For: Int 21h ;Xuất hình Inc DL ;Tăng vị trí mã ASCII Loop For ;Lặp Mov ah,4ch ; Trở DOS 21h ; đừng để xem lên Int Code end ends Begin d Gọi chương trình Dùng lệnh Call a.Nhảy khơng điều kiện Lệnh nhảy không điều kiện lệnh JMP (jump) dẫn đến việc chuyển điều khiển không điều kiện Cú pháp JMP đích; đích địa chỉ, nhãn … Mô tả: Thực rẽ nhánh không điều kiện chương trình tới địa ra, địa giá trị số, nhãn,… Lệnh JMP làm thay đổi CS:IP, làm cho chứa địa đích cần nhảy tới Có thể áp dụng cho vi xử lý: 8086/8088, 80286, 80386, 80486 Thuộc nhóm lệnh: chuyển điều khiển Có cờ bị ảnh hưởng: khơng Ví dụ: JMP loc_1 ;với loc_1 tên nhãn JMP AX ;nhảy tới địa AX JMP [BX] ;nhảy tới địa BX b.Nhảy có điều kiện Mơ tả: Lệnh nhảy có điều kiện lệnh thực rẽ nhánh tới địa toán hạng cờ CF cờ ZF bị xố Phạm vi lệnh nhảy có điều kiện: máy địi hỏi nhãn đích phải đứng trước lệnh nhảy không 126 byte đứng sau không 127 byte Ví dụ: Lệnh JA – (Jump if Above nhảy kết cho phép so sánh lớn hơn) Cú pháp JA chỉ,nhãn… TARGET ; TARGET đĩa Các lệnh nhảy có điều kiện Mã Y nghĩa Điều kiện nhảy Các lệnh lệnh tương đương JA Jump if Above (CF=0) JNBE (ZF=0) JNA Jump if not (CF=1) Above JAE JBE (ZF=1) Jump if Above or CF=0 JNB,JNC Equal JNAE Jump if Not (CF=1) JB,JC Above or Equal JB Jump if Below JNB Jump if CF=1 JC,JNAE Not CF=0 JNC,JAE Below JBE Jump if Below or (CF=1) Equal JNBE Jump JNA (ZF=1) if Not (CF=0) JA Below or Equal (ZF=0) JC Jump on Carry CF = JB,JNAE JNC Jump Not CF = JNB,JAE on Carry JCXZ Jump if CX =0 CX = JE Jump if Equal ZF=1 JNE Jump if Not ZF=0 JZ JNZ Equal JG Jump if Greater (SF=OF) JNLE (ZF=0) JNG Jump if Not (SFOF) JLE Greater JGE (ZF=1) Jump if Greater (SF=OF) JNL or Equal JNGE Jump if Not (SFOF) JL Greater or Equal JL Jump if Less JNL Jump if Not Less (SF=OF) JLE Jump if Less or (SFOF) JNG Equal (SFOF) JNGE JGE (ZF=1) JNLE Jump if Not Less (SF=OF) JG or Equal (ZF=0) JS Jump on Sign (SF=1) None JNS Jump Not (SF=0) None on Sign JZ Jump on Zero JNZ Jump on (ZF=1) Not (ZF=0) JE JNE Zero c So sánh Các điều điện nhảy thường cung cấp lệnh CMP (compare) Nó có dạng sau: CMP đích,nguồn ... đích phải ? ?ứng trước lệnh nhảy khơng q 126 byte ? ?ứng sau khơng q 127 byte Ví dụ: Lệnh JA – (Jump if Above nhảy kết cho phép so sánh lớn hơn) Cú pháp JA chỉ,nhãn… TARGET ; TARGET đĩa Các lệnh nhảy... tả: Thực rẽ nhánh khơng điều kiện chương trình tới địa ra, địa giá trị số, nhãn,… Lệnh JMP làm thay đổi CS:IP, làm cho chứa địa đích cần nhảy tới Có thể áp dụng cho vi xử lý: 8086/8088, 80286, 80386,...Chương trình nguồn ViDu_1.asm Code Segment Assume cs:Code, ds:Code Org 100h Begin: Mov ah,02 Mov cx,256