汇编基础之路-2nd

上节说到了数据宽度,例如数据宽度为一个字节,那么可表示的范围就是0~0xFF, 那下面的数据表示什么意思呢?

                                       0101 0101

 

当然不同的角度得出的答案是不同,例如假设它是表示一个二进制文件,那么01可表示一个逗号,接下来就进入今天的正题。

 

Part3

一.有符号数与无符号数

  1.无符号数:也就是正数,例如:1001 1010 (十六进制为0x9A)

    2.有符号数:储存的时候以0开头,为正数;储存的时候以1开头为负数

      【其中,有符号的正数的编码规则与无符号数一致】

二.编码规则

    1.无符号数的编码规则

   2.有符号数的编码规则:

    原码:最高位为符号位,其余各位为数值本身的绝对值

    反码:对于正数而言,反码与原码一致;对于负数,符号位为1,其余各位对源码取反。

    补码:对于正数而言,补码与原码一致;对于负数,符号位为1,其余位对原码取反后,再加1.  

   3.举例如下:

    不妨用8个字节来储存数据,以-7为例,它的原码为 1000 0111, 反码为1111 1000(注意符号位不变),补码为1111 1001

        另外负数的储存方法是补码,验证结果如下:

 

          

 

              其中,F9即为1111 1001,从而为-7的补码    

   4.正数与负数的储存

             1)假设数据宽度为1byte

        

        

        1)假设数据宽度为doubleword:

        

 

Part4

       一.位运算

      1.为何要学位运算:某些功能只能用位运算解决,例如调试器的编写

      2.位运算的分类

       1)与运算:两个为都为1时,结果才为1;可以借用物理学当中的串联电路来理解(括号内的写法为C语言的写法,以下同)

                                 

                          2)或运算:有一个位为1,结果就为1;可以借用物理学当中的并联电路来理解

                                                                            

                         3)异或运算:只有位不同时,结果为1,若相同则为0;可以借用物理学当中的交叉电路来理解

                                                                                    

 

                        4)非运算:0算出的结果为1,1算出的结果为0;

                                         

                        5)左移:各二进为全部左移若干位,高位丢弃,低位补0

                                        

                        6)右移:各二进为全部左移若干位,低位丢弃,高位补0或者补符号位

        

   二.位运算之加减乘除

       计算机其实不会做加减乘除法,都是通过位运算实现的,以下介绍通过位运算实现加减法的过程

            1.加法的实现过程:

                                         以4 + 5 =?为例

               其中4 可表示为 0000 0100, 5可表示为 0000 0101,首先进行异或运算,得到的结果为0000 0001,然后判断是否有进位的现象,

               这时可以用与运算,此时的结果为0000 0100,只要有1出现,说明需要进位,又注意到进位是进到下一位,因此与运算的结果要

    左移一位,即是0000 1000,最后用异或运算的结果和与运算的结果相加,得到0000 1001,此时,计算还未结束,还要判断这一步

    是否有进位,再一次用与运算得到的结果为0000 0000,这时已经没有1,说明没有进位,计算结束,结果为0000 1001,即为9

           2.减法:其实质还是加法,只不过要找负数的补码。

                

            

         

posted @ 2019-02-12 18:32  书画三千里  阅读(110)  评论(0)    收藏  举报