日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

018-JL,JNGE JLE,JNG JG,JNLE JGE,JNL带符号条件转移指令小结

發(fā)布時間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 018-JL,JNGE JLE,JNG JG,JNLE JGE,JNL带符号条件转移指令小结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

l? 條件轉(zhuǎn)移指令JG(>? 時轉(zhuǎn)移)

l? 條件轉(zhuǎn)移指令JNLE(<=時不轉(zhuǎn)移)

?

l? 標(biāo)志寄存器PSW

標(biāo)志寄存器PSW(程序狀態(tài)字寄存器PSW)
?? 標(biāo)志寄存器PSW是一個16為的寄存器。它反映了CPU運算的狀態(tài)特征并且存放某些控制標(biāo)志。8086使用了16位中的9位,包括6個狀態(tài)標(biāo)志位和3個控制標(biāo)志位。

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

?

?

?

?

OF

DF

IF

TF

SF

ZF

?

AF

?

PF

?

CF

?

?

?

?

?

?

?

?

?

標(biāo)志

?

?

?

?

?

?

?

?


??????????????????

?

?

??

?? CF(進位標(biāo)志位):當(dāng)執(zhí)行一個加法(減法)運算時,最高位產(chǎn)生進位(或借位)時,CF為1,否則為0。
? ?ZF零標(biāo)志位:若當(dāng)前的運算結(jié)果為零,則ZF1,否則為0
?? SF符號標(biāo)志位:該標(biāo)志位與運算結(jié)果的最高位相同。即運算結(jié)果為負,則SF1,否則為0
? ?OF溢出標(biāo)志位:若運算結(jié)果超出機器能夠表示的范圍稱為溢出,此時OF1,否則為0。判斷是否溢出的方法是:進行二進制運算時,最高位的進位值與次高位的進位值進行異或運算,若運算結(jié)果為1則表示溢出OF=1,否則OF=0
?? PF奇偶標(biāo)志:當(dāng)運算結(jié)果的最低16位中含1的個數(shù)為偶數(shù)則PF=1否則PF=0
???AF輔助進位標(biāo)志:一個加法(減法)運算結(jié)果的低4位向高4位有進位(或借位)時則AF=1否則AF=0?


?? 另外還有三個控制標(biāo)志位用來控制CPU的操作,可以由程序進行置位和復(fù)位。
?? TF跟蹤標(biāo)志:該標(biāo)志位為方面程序調(diào)試而設(shè)置。若TF=1,8086/8088CPU處于單步工作方式,即在每條指令執(zhí)行結(jié)束后,產(chǎn)生中斷。
? ?IF中斷標(biāo)志位:該標(biāo)志位用來控制CPU是否響應(yīng)可屏蔽中斷。若IF=1則允許中斷,否則禁止中斷。
? ?DF方向標(biāo)志:該標(biāo)志位用來控制串處理指令的處理方向。若DF=1則串處理過程中地址自動遞減,否則自動遞增。

?

OD里能查看到IF標(biāo)志外的 8個標(biāo)志位

JMP??????????????????????? //014

JE/JZ???? //=??????????????? //012 Jump if Equl

JNE/JNZ? //=????????????? //013

//帶符號數(shù)條件轉(zhuǎn)移指令

JL /JNGE? //>=? //小于? <??//015

JLE/JNG? //不>?? //小于等于<=? //016

JG/JNLE?//不<=? //大于??? ?>//017

JGE/JNL?//不<?? //大于等于>=? //017

Jump???? 跳轉(zhuǎn)/轉(zhuǎn)移

Not????? 不

Equal??? 相等

Zero??? 零

Less??? 小于

Greater大于

?

一、條件轉(zhuǎn)移指令

助憶符

檢測的轉(zhuǎn)移條件

功能描述

?

JE/JZ

ZF=1

Jump Equal??? == 跳轉(zhuǎn)

Jump Zero??????????????? =不跳轉(zhuǎn)

JNE/JNZ

ZF=0

Jump Not Equal != 跳轉(zhuǎn)

Jump Not Zero????? ???????==不跳轉(zhuǎn)

JG/JNLE

ZF=0&&SF=OF

Jump Greater? ?>跳轉(zhuǎn)

Jump Not Less or Equal??? <=不跳轉(zhuǎn)

JGE/JNL

SF=OF

Jump Greater Equal >=跳轉(zhuǎn)

Jump Not Less???????????? <? 不跳轉(zhuǎn)

JL/JNGE

SF!=OF

Jump Less ??<跳轉(zhuǎn)

Jump Not Greater or Equal? >=不跳轉(zhuǎn)

JLE/JNG

ZF=1 || SF!=OF

Jump Less or Equal? <=跳轉(zhuǎn)

Jump Not Greater?????????? >不跳轉(zhuǎn)

?

二、代碼測試

???????? ?

???????? JE/JZ????????????? = 不跳轉(zhuǎn)

???????? JNZ/JNE??????????? == 不跳轉(zhuǎn)

???????? JG/JNLE? ?????????<= 不跳轉(zhuǎn)

???????? JGE/JNL????????? ??<? 不跳轉(zhuǎn)

???????? JL/JNGE??????????>= 不跳轉(zhuǎn)

JLE/JNG???????? ???> 不跳轉(zhuǎn)

printf("begin\n");

???????? //unsigned

???????? ???????? int a=3,b=5;

???????? if (a!=b) //je

???????? ???????? if (a==b) //jnz

???????? ???????? ???????? if (a<=b) //jg

???????? ???????? ???????? ???????? if (a<b) //jge

???????? ???????? ???????? ???????? ???????? if (a>=b) //jl

???????? ???????? ???????? ???????? ???????? ???????? if (a>b)//jle

???????? ???????? ???????? ???????? ???????? ???????? {

???????? ???????? ???????? ???????? ???????? ???????? ???????? printf("do if");

???????? ???????? ???????? ???????? ???????? ???????? }

???????? ???????? ???????? ???????? ???????? ???????? printf("end");

return 0;

總結(jié)

以上是生活随笔為你收集整理的018-JL,JNGE JLE,JNG JG,JNLE JGE,JNL带符号条件转移指令小结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。