1. 匯編語言中 JNB的用法是什麼啊
JNB指令的格式: JNB bit ,rel;用法是,判斷bit位,即直接定址位,為「0」則轉移,否則順序執行。
這段程序中JNB的用法是,判斷ACC.7,即ACC的第7位,如果為「0」,則跳轉到POST程序處,反之,順序執行。
JNB指令是判位轉移指令的一種,以標志位的狀態或者以標志位的邏輯運算結果作為轉移依據,如果滿足轉移條件,則轉到目標地址所指示的指令,執行否則繼續執行下一條指令。
必須指出,條件轉移指令轉移地址的偏移量限制在-128~+127位元組范圍內,採用相對轉移方式(相對轉移指令是指跳轉時以當前地址為基準加上相對偏移量進行跳轉,一般是在本地址段內跳轉。如果需要跳轉到較遠的地方如跳到另一個地址段,就需要加上跳轉的目標段地址)。
(1)單片機中jnb擴展閱讀
匯編語言優缺點:
優點
匯編語言作為機器語言之上的第二代編程語言:
1)可以輕松的讀取存儲器狀態以及硬體I/O介面情況
2)編寫的代碼因為少了很多編譯的環節,可以能夠准備的被執行
3)作為一種低級語言,可擴展性很高 。
缺點
1)因為代碼非常單調,特殊指令字元很少,所以造成了代碼的冗長以及編寫的困難
2)因為匯編仍然需要自己去調用存儲器存儲數據,很容易出現BUG,而且調試起來也不容易
3)就算完成了一個程序,後期維護時候也需要耗費大量的時間。
4)因為機器的特殊性造成了代碼兼容性差的缺陷。
2. 51單片機JNB超出范圍,怎麼改寫
51單片機JNB超出范圍,是第一行的
JNB P2.5 , score
是這行超出跳轉范圍了嗎?那就用一個跳板哪,跳板用AJMP score
這祥
3. 為什麼單片機中CJNE,JNB,JB這幾條指令可實現的轉移范圍是負的128到127
單片機跳轉指令解析
控制轉移類指令
條件轉移指令Jcc根據指定的條件確定程序是否發生轉移。如果滿足條件則程序轉移到目標地址去執行程序;不滿足條件,則程序將順序執行下一條指令。
其通用格式為:
Jcc LABEL ;條件滿足,發生轉移:IP?IP+8位位移量
;否則,順序執行:IP?IP+2 其中,LABEL表示目標地址(8位位移量)。因為Jcc指令為2個位元組,所以順序執行就是指令偏移指針IP加2。條件轉移指令跳轉的目標地址只能用前面介紹的段內短距離跳轉(短轉移),即目標地址只能是在同一段內,且在當前IP地址-128~+127個單元的范圍之內。這種定址方式由於是相對於當前IP 的,所以被稱為相對定址方式。條件轉移指令不影響標志,但要利用標志。條件轉移指令Jcc中的cc表示利用標志判斷的條件,共16種。如下圖:
1、判斷單個標志位狀態
這組指令單獨判斷5個狀態標志之一,根據某一個狀態標志是0或1決定是否跳轉。
(1)JZ/JE和JNZ/JNE利用零標志ZF,判斷結果是否為零(或相等)
JE指令(相等時轉移)
JZ指令(等於0時轉移)
這是當ZF=1時轉移到目標地址的條件轉移指令的兩種助記符。這條指令既適用於判斷無符號數的相等,又適用於判斷帶符號數的相等。
JNE指令(不相等轉移)
JNZ指令(不等於0轉移)
這是當ZF=0時能轉移到目標地址的條件轉移指令的兩種助記符。這條指令也是既適用於判斷無符號數,又適用於判斷帶符號數。
(2)JS和JNS利用符號標志SF,判斷結果是正是負。
JS指令(為負轉移)——當滿足SF=1時,轉移到目標地址
JNS指令(為正轉移)——滿足SF=0時,轉移到目標地址
(3)JO和JNO利用溢出標志,判斷結果是否產生溢出
JO指令(溢出轉移)——OF=1時,轉移到目標地址 JNO指令(未溢出轉移)——OF=0時,轉移到目標地址
(4)JP/JPE和JNP/JPO利用奇偶標志PF,判斷結果中「1」的個數是偶是奇
JP/JPE指令(為偶轉移)——滿足PF=1時轉移 JNP/JPO指令(為奇轉移)——滿足PF=0時轉移 數據通訊為了可靠常要進行校驗。常用的校驗方法是奇偶校驗,即把字元ASCII碼的最高位用作校驗位,是包括校驗位在內的字元中為「1」的個數恆為奇數(奇校驗),或恆為偶數(偶校驗)。若採用奇校驗,在字元ASCII中為「1」的個數已為奇數時,則令其最高位為「0」;否則令最高位為「1」。
(5)JC/JB/JNAE和JNC/JNB/JAE,利用進位標志CF,判斷結果是否進位或借位,CF標志是比較常用的一個標志。 JC——滿足CF=1時轉移 JNC——滿足CF=0時轉移
JB(低於轉移) JNB(不低於轉移) JNAE(不高於等於轉移) JAE(高於等於轉移) 2、用於比較無符號數高低為區別有符號數的大小,無符號數的大小用高(Above)、低(Below)表示,它需要利用CF確定高低、利用ZF標志確定相等(Equal)。兩數的高低分成4種關系:低於(不高於等於)、不低於(高於等於)、低於等於(不高於)、不低於等於(高於);也就分別對應4條指令:JB(JNAE)、 JNB(JAE)、JBE(JNA)、JNBE(JA)。 JA/JNBE
JA即高於轉移,JNBE即不低於且不等於轉移,高於則沒有進位產生,即CF=0,不等於則ZF=0,所以這兩條指令滿足CF=0且ZF=0時轉移
JAE/JNB
高於或等於轉移/不低於轉移是當CF=0(高於就不產生進位)或ZF=1(等於)時轉移。
JB/JNAE
即低於/不高於且不等於轉移,是當CF=1(產生借位)且ZF=0(不相等)時轉移。
JBE/JNA
即低於或等於/不高於轉移,是當CF=1(借位產生)或ZF=1(相等)時轉移。
3、用於比較有符號數大小
判斷有符號數的大(Greater)、小(Less),需要組合OF、SF標志、並利用ZF標志確定相等與否。兩數的大小分成4種關系:小於(不大於等於)、不小於(大於或等於)、小於等於(不大於)、不小於等於(大於);也就分別對應4條指令:JL(JNGE)、JNL(JGE)、JLE(JNG)、 JNLE(JG)。
由上可見,條件轉移指令之前常有CMP、TEST、加減運算、邏輯運算等影響標志的指令,利用這些指令執行後的標志或其組合狀態形成條件。
JG/JNLE
大於/不小於且不等於轉移,是當標志SF與OF同號(即<SF異或OF>=0)且ZF=0時轉移
JGE/JNL大於或等於/不小於轉移,是當標志SF與OF同號(即<SF異或OF>=0)或ZF=0時轉移
JL/JNGL
小於/不大於也不等於時轉移,是當標志SF與OF異號(即<SF異或OF>=1)且ZF=0時轉移
JLE/LNG
小於或等於/不大於轉移,是當標志SF與OF異號(即<SF異或OF>=1)或ZF=1時轉移
4、判斷計數器CX是否為0
JCXZ LABEL ;CX=0,則轉移;否則順序執行
4. 單片機指令JNB字母各代表什麼意思
JNB就是後邊的位操作碼為0則跳轉到指定的行地址。
這是匯編指令,應該是JNB SWLOOP, NEXT
是JNB就應該有逗號,而且逗號後還有標號,而SWLOOP是引腳,指令意思為:SWLOOP腳為低電平則轉到標號NEXT處,否則繼續向下執行。
如果SWLOOP是標號,那應該是JNC SWLOOP
這指令意思就不同了,是不進位(Cy=0)則轉到SWLOOP處,否則向下執行。
(4)單片機中jnb擴展閱讀:
模型為:JNB bit,rel,其中bit為直接定址位,rel為要轉移到的地方,通常是一個標號;它的意思是若bit為0,則轉移到rel表示的標號處,否則不轉移繼續往下執行。
JNB是根據某一位的狀態判斷轉移的,當檢測位不是1(NB),即為0時就轉移,通常用於判斷引腳。例如:JNB P1.0, TEST;
功能:當引腳P1.0為0時,就跳轉到TEST。
5. 51單片機中JNB是和0比較大小的意思嗎
51單片機中JNB 判斷後面位地址的值是0則轉移。
6. 單片機中JNB TF0,$是什麼意思
1.這是51單片機的一條匯編語言指令,其中J 代表"跳轉JUMP",N代表 "非NO",B代表"位BIT";
2.如果TF0為0,那就跳轉到本句,否則繼續執行下面的指令;
3.這句指令的意思是不停的查詢TF0,知道TF0=1為止,才執行下面的指令,也就是等待串口發送完畢。
單片機簡介:單片機(Microcontrollers)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的300M的高速單片機。
7. 單片機中jnb swloop是什麼意思
這是匯編指令,應該是
JNB SWLOOP, NEXT
是JNB就應該有逗號, 而且逗號後還有標號,而SWLOOP是引腳,指令意思為:SWLOOP腳為低電平則轉到標號NEXT處,否則繼續向下執行。
如果SWLOOP是標號,那應該是
JNC SWLOOP
這指令意思就不同了,是不進位(Cy=0)則轉到SWLOOP處,否則向下執行。
8. 單片機中JNB和 JNC到底是什麼意思
這是51單片機的兩條匯編指令,屬於條件跳轉指令。
JNB,是根據某一位的狀態判斷轉移的,當檢測位不是1(NB),即為0時就轉移,通常用於判斷引腳。例如:
JNB P1.0, TEST
功能是:當引腳P1.0為0時,就跳轉到TEST。
JNC,是根據進位標志位Cy判斷轉移的,當不進位(NC),就跳轉,可用可加/減法運算,例如
MOV A , R2
ADD A , R3
JNC NUM
意義是,R2+R3,如果未進位則跳轉至NUM。
9. 單片機JNB指令只能判斷1和0嗎比如我在寄存器R1裡面存了一個小於16的數字,然後慢慢減到0,JNB會生效嗎
jnb 用來判斷位的,為 0 則跳轉。
你可以用cjne 比如cjne R0,#0, lp 不等於0 就跳轉。
10. 單片機中JNB和 JNC到底是什麼意思
JNC
rel
是
Cy=0
跳轉
JNB
bit,rel
是
bit=0
跳轉
兩者的區別在於JNC是針對Cy位而言的,而JNB是通用的
同時在不跳轉的情況下也有不同:JNC的PC是+2而JNB的PC是+3
其他的就不補充了!