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就是正数