【笔记】汇编的基础知识~ 算是 第一章

进制转换:
H=>十六进制   D=>十进制   O=>八进制  B=>二进制
    将二进制转换为十进制
        1011100B=(1*2^6)+(0*2^5)+(1*2^4)+(1*2^3)+(1*2^2)+(0*2^1)+(0*2^0)=92D
    将十六进制转换为十进制
        3A4H=(4*16^0)+(10*16^1)+(3*16^2)=932D
    十六进制和二进制
        0011 0101 1011 1111
        0011 0101 1011 1111
         ↓    ↓       ↓    ↓
         3      5    B    F    //    直接转换 为十进制 然后转换为十六进制  二进制4位是十六进制的一位
                                //    Eg:   Fh=15d=1111b    以此类推
    十六进制->十进制    
        注意:用取余法    //算完全部的数字后再写余数和除数~
    

有符号数和无符号数
    1.八位        有符号
        10000000 => -128
        01111111 =>  127//第一个位是符号
    2.十六位    有符号
        1000000000000000~0111111111111111 ==(-32768~32767)
//那个‘1 ’既代表符号位,也代表数字位  还没有学补码和反码~~
    1.八位        无符号
        11111111==255
    2.十六位    无符号
        1111111111111111==65535
3.扩展?    
        常常需要把一个n位扩展成m位二进制数(m>n)
        当扩展的数是无符号数时,只要在最高位前扩展(m-n)个0
        例如:21的8位二进制和16位的二进制补码如下:(补码?   好像还没讲)
                    00010101     8位
            0000000000010101    16位

4.补码的加法和减法
    对一个整数的补码表示按位求反后再在末尾加1,可以得到与此正数相应的负数的补码表示。
    把这种对一个二进制按位求反后在末尾加1的运算称为求补运算;
        可以证明补码表示的数具有以下特征:
            [X]=>[-X]//取反 末尾加一就是取反 正反的都可以取反
            
            
            
补码的加减法 【很重要】
    [-117]补=FF8Bh  对[-117]补作求补运算:
    [-117]补为:    1111 1111 1000 1011
    按位求反:        0000 0000 0111 0100
    末尾加一:        0000 0000 0111 0101
        这个数就是:[+117]补=0075H
    这个特性在补码的加、减中很有用(看出来了!!!)
            补码的加法规则是:    [X+Y]补=[X]补+[Y]补
            补码的加减法规则是:[X-Y]补=[X]补+[-Y]补
    例子:25+(-32)
        25                    00011001
    + (-32)                +  11100000
    ---------              -------------
       -7                    11111001
       /*就是32的求补然后再计算  结果11111001是7的补码所以是-7*/
       
       
非数据的表示:
    除了数值(比如ABC和图表),为了处理要进行编码!!这样才可方便存储~而且还可赋予他们数值的数据操作属性【没什么用,说的都是废话!】
    当然典型的就是ASCII码了~(用的7位二进制编码)
        比较常用的:
            空格    20H        
            0~9        30H=0....
             A        41H...
             a        61H...

字节~
    一个字节是8个位
    7  6  5  4  3  2  1  0(图)
    
    
    分开两半就是半个字节
    两个字节是一个字就是16个;
    15  14  13  12  11  10  9  8  7  6  5  4  3  2  1  0(图)
    
    双字节
    里面有32个位,高位就是高字,低的就是低位
    
    四字
    里面有64个!!!
    
    TM还有十字!!!
    80个位(WCL)
    
//终于没了
下面字符串~
    一个线性的字符数组,一个字符是个字或者双字~~
    
    
收货会了就过~!!!
收货:
        
    1.一个进制转换~O D H B
    2.一个数据和非数据的表示~
    3.补码~ 加减法不容易
    4.十六进制转二进制,直接看
    
    
    
~~还有题~??
    1.
        32767D=>为??H
        255D=>为??H
    
    2.补码表示,还有带符号数和无符号数时,他们表示的十进制是什么
    
        Eg:补码    
            D8H->11011000B
            无符号:(1*2^7)+(1*2^6)+(0*2^5)+(1*2^4)+(1*2^3)+(0*2^2)+(0*2^1)+(0*2^0)=216D
            有符号:把11011000按位取反末尾加一
                      00101000    为:-40D
                
        FFH是什么???
    
    
    

哇哈哈哈  计算补码的时候出错了~
  32是100000 但是怎么也算不出来他的补码是11100000
          最后 才知道...我忘记了加前面的000 要按照8位或者16位计算才可~【加个重】
原文地址:https://www.cnblogs.com/xiguayizu/p/3340148.html