『壹』 單片機指令 jnc dpl 怎麼解釋
單從指令而言,jnc dpl是當借位C為0時轉移到標號dpl。
但這條語句編譯是無法通過的,dpl是關鍵字數據指針的低8位,不能用作標號。
『貳』 單片機跳轉出范圍
為什麼單片機中可實現的轉移范圍是
單片機跳轉指令解析
控制轉移類指令
條件轉移指令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,則轉移;否則順序執行
『叄』 單片機中JNC問題
JNC是借位位為0轉移。
-------------
JNC是 Cy=0 轉移。
JC 是 Cy=1 轉移。
JNZ 是 累加器A非0 轉移
『肆』 單片機中JNB和 JNC到底是什麼意思
JNC
rel
是
Cy=0
跳轉
JNB
bit,rel
是
bit=0
跳轉
兩者的區別在於JNC是針對Cy位而言的,而JNB是通用的
同時在不跳轉的情況下也有不同:JNC的PC是+2而JNB的PC是+3
其他的就不補充了!
『伍』 匯編語言jnc命令有什麼用處
轉移指令。
意思是CF=0,則跳轉,表示的是AX大於或等於0的時候轉移到EXIT處,所以JNC也可以看成是加法沒有進位,減法沒有借位的時候轉移。
在匯編語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或操作數的地址。在不同的設備中,匯編語言對應著不同的機器語言指令集,通過匯編過程轉換成機器指令。特定的匯編語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。
(5)單片機jnc指令擴展閱讀:
由於匯編指令系統龐大,因而需構建指令系統體系,其指令數量龐大,格式復雜,可記憶性差等。指令中最難的是指令所支持的定址方式,其實質就是指令中操作數如何獲取。對於處理器而言,就是如何找到他所需的數據。
但對於計算機底層的匯編語言而言,這種定址方式將涉及大量的計算存儲格式,與 復雜的存儲管理方式緊密相關,因而難以理解。最後,匯編指令還關繫到如何影響標志位,但處理器標志位非常復雜,因而對其機制掌握就比較困難。
『陸』 單片機匯編語言JNC LOOP1(詳細問題在裡面,高手請進)
LOOP1是下個程序的標號,這個標號由你來給某個你想跳轉到的子程序,當程序進行編譯後,系統會自動將LOOP1轉換成一個8位的二進制地址,至於這個二進制數字是多少就由編譯系統來決定,而你決定的是程序轉向哪裡。你可以好好在想一想,相信你可以明白的
『柒』 51單片機指令問題,所下圖所示,坐等!!!
這個程序前四條是比較大小的
第一條指令:把40H地址里的內容傳遞給A
第二條指令:把Cy清零,那個C不是一個寄存器,它是A寄存器里的一個位,把C位清零,在下面一條有用
第三條指令:用A減去41H地址里的內容,注意,此處是帶借位減法,如果A>=41H里的內容,那麼,
A寄存器裡面的Cy位(第二條里的C)就不會變化,如果A<41H,那麼C就會變成1
第四條指令:如果C不等於0,也就是說,40H裡面的內容數值比41H小,那就跳轉到WAIT標識的地方,
也就是跳到程序的倒數第二行, 去執行 SJMP WAIT:這句話.如果C等於0,也就是說,
40H裡面的內容大於41H或者等於41H,那麼,就執行第五條指令
第五條指令:把41H的內容傳遞給A寄存器
第六條指令:把A寄存器里的內容與41H的內容進行交換
『捌』 請那位大哥大姐給個介紹關於單片機jb,jc,jnb,jnc等一些指令的功能介紹
http://wenku..com/view/512f80d5b9f3f90f76c61b2a.html
http://wenku..com/view/56021860ddccda38376baf24.html
單片機指令一覽表
單片機入門程序http://wenku..com/view/990b7ee2524de518964b7dd4.html
單片機原理及應用http://wenku..com/view/03171e68011ca300a6c39020.html
『玖』 單片機系統指令的位操作指令
一、數據位傳送指令
MOV C,bit
MOV bit,C
如MOV C,06H ;(20H).6→Cy
06H是內部RAM 20H位元組位6的位地址。
MOV P1.0,C ;Cy→P1.0
可定址位的具體定義:從20H單元的第一位開始一直到2FH單元的最後一位分別為00H~7FH以及特殊功能寄存器中80H~F7H。
二、位變數修改指令
CLR C ;清「0」Cy
CLR bit ;清「0」bit位
CPL C ;Cy求反
CPL bit ;bit位求反
SETB C ;置「1」 Cy
SETB bit ;置「1」bit位
三、位變數邏輯與指令
ANL C,bit ;bit ∧Cy →Cy
ANL C,/bit; ;/ bit ∧Cy →Cy
四、位變數邏輯或指令
ORL C,bit ;bit ∨ Cy →Cy
ORL C,/bit ;/ bit ∨ Cy →Cy
五、條件轉移類指令
JC rel ;如果進位位Cy=1,則轉移
JNC rel ;如果進位位Cy=0,則轉移
JB bit,rel ;如果直接定址位=1,則轉移
JNB bit,rel ;如果直接定址位=0,則轉移
JBC bit,rel ;如果直接定址位=1,則轉移,並對bit位清0