有一段10字节的数据储存在以30H为初始地址的单元内,要求从30H单元开始,把正数储存到40H单元,负数储存到50H单元,请问该怎么编程?还有JB 20H.7,LOOP什么意思?
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就是正数