1樓:生活如歌
51微控制器彙編指令:jnb(不為了則轉,也就是說非負則轉),jb(為1則轉,也就是說為負數則轉)
,jbc(同上一條,只是在轉移前將這一位清零),jc(c為1則轉,判斷前要將符號位傳送到c),jnc,(c為0則轉,判斷前要將符號位傳送到c)
2樓:張斯堯
jnb(不為了則轉,也就是說非負則轉)
,jb(為1則轉,也就是說為負數則轉)
,jbc(同上一條,只是在轉移前將這一位清零),jc(c為1則轉,判斷前要將符號位傳送到c),jnc,(c為0則轉,判斷前要將符號位傳送到c)
3樓:匿名使用者
一般的微控制器中會有狀態標誌位,以表徵每次運算得到結果的特徵。一般的,其中會有n標誌位,表徵計算結果為負數。以430微控制器為例,事實上,當執行cmp r4,#0時,如果r4中儲存的值是正數,那麼n標誌位為0,反之n標誌位為1。
然後我們對n標誌位的不同狀態進行相應的跳轉,可以用jn語句。
這是用組合語言所舉的例子,如果是c語言程式設計則可直接判斷。例如if(n>0)...即可。
歡迎追問~
51微控制器組合語言如何判斷數的正負
4樓:
根據符號位判定數的正負。
好好學習天天向上
用微控制器組合語言求:1、統計一串資料中正數負數的個數(不包括零)
5樓:
不想寫程式,給你個提示,用cmp指令,檢視a暫存器中的c位
6樓:墨白
org 0000h
ljmp 0100h
org 0100h
mov r7,#06h
mov r0,#30h
mov r1,#00h;存放小於0的個數
mov r2,#00h;存放等於0的個數
mov r3,#00h;存放大於0的個數
start:mov a,@r0
cjne a,#00h,loop
sjmp sloop1
loop:jc sloop0
jnc sloop2
sloop0:inc r1
sjmp next
sloop1:inc r2
sjmp next
sloop2:inc r3
sjmp next
next:inc r0
djnz r7,start
mov 22h,r3
mov 21h,r1
mov 20h,r2
end你要傳必須有地址,這是我做的
片內ram 30h-35h單元中存放了一組8位有符號數,統計出大於0,小於0和等於0的單元數目,結果分別存入片外20h、21h和22h單元中。
你改一下就可以用了,會改吧,不會再問我
微控制器指令判斷正誤,微控制器的指令判斷正誤
1 clr a 對 2 mul r0,r1 錯,只有mul a,b 3 mov dptr,1050h 錯,猜測該題意圖應該是mov dptr,1050h,並且dptr除了立即數賦值外只能用movx dptr,a來為其賦值 4 mov a,r7 錯,只有r0與r1可以間址 5 add 30h,20h ...
微控制器指令的合法性如何判斷
微控制器的指令系統和定址方式 微控制器要正常運作,事先需編制程式,再把程式放入存貯器中,然後由cpu執行該程式。程式是由指令組成的,指令的基本組成是操作碼和運算元。微控制器的品種很多,設計時怎樣表示操作碼和運算元,都有各自的規定,再有指令 也各不相同,因此,必須對所選微控制器的全部指令,也就是所謂 ...
微控制器的flash中存放的是指令還是資料?
可以存資料也可以存程式,flash也就是快閃記憶體是可以電擦寫的,因此可以存資料,但因為寫入速度較慢,因此不適合存速度要求變化較快的資料。一般而言,flash以存程式較多。是程式。資料要儲存到eeprom的。其實程式和資料都可以存放的。你程式設計序的時候不是經常在裡面帶著需要顯示的資料什麼的嗎?微控...