1U钽电容
我用swap指令做实验,结果如下图片,疑惑,不是高低字节互换吗?怎么会这样?
1:赋值d8 为1218
2:x1触发,结果d8的值为-15868!?!?!怎么这样?请教大家
yuanle
换成二进制不就知道了么。
1218 二进制 10011000010
经过Swap,然后高低字节对换:1100 0010 0000 0100
最高位为1,代表负数,保留符号位,就成了100 0010 0000 0100
反码加1,就成了011 1101 1111 1100,也就是15868,因为最高位是负数,所以
就成了-15868
哦 原来如此。。感谢指导
ljbcompany
swap指令就是把16位拆成高8位和低8位,默认的次序:b15......b0;执行后次序:b7......b0 b15......b8。
该指令功能比较简单,它将数值转换成BCD码;然后交换一下高8位和低8位的次序而已。如果需要灵活地调整4组BCD码值,推荐smov指令。