1. 單片機中能判斷正負數的指令有哪些
一般的單片機中會有狀態標志位,以表徵每次運算得到結果的特徵。一般的,其中會有N標志位,表徵計算結果為負數。以430單片機為例,事實上,當執行CMP R4,#0時,如果R4中儲存的值是正數,那麼N標志位為0,反之N標志位為1。然後我們對N標志位的不同狀態進行相應的跳轉,可以用JN語句。
這是用匯編語言所舉的例子,如果是C語言編程則可直接判斷。例如if(n>0)...即可。
歡迎追問~
2. 單片機判斷正負數的辦法
JB 20H.7,LOOP ;JB Jmp Bit ,就是判斷單個位,JB 20H.7 就是判斷 20H這個內存地址存的數據的第7為,為1則跳轉,Loop是循環在這里應該是一個標記,在前面或者後面找下這個LOOP,估計能找到 LOOP:開始的一行,就是跳到那裡
判斷正負首先要搞清楚你的數據類型,對於匯編是沒有正負之分的,只有在C語言或者其他高級語言才有正負數。匯編中只有內存和數據、寄存器的概念,都沒有數據類型的概念,所以不可能有正負之分,你說第一位為0是負數,那就是負數。
C語言中的存儲方式決定數據在內存中的存放方式,C語言中約定負數的最高位即第7位為1, char 是1位元組,int是2位元組,對於你這10個自己數據類型不同,處理方法就不同了。對於char,判斷每個位元組的第7位為1就是負數,為0就是正數