美文网首页
初学汇编

初学汇编

作者: 木子李_af14 | 来源:发表于2017-07-22 23:59 被阅读13次

    今天第一次接触汇编,从进制转换开始复习。
    其实这些东西在大学的时候就应该打好基础。

    常见的进制

    • 二进制,由0、1组成,逢二进一
    • 八进制,由0-7八个数字组成,逢八进一
    • 十进制,由0-9十个数字组成,逢十进一
    • 十六进制,由0-9,A-F十六个字符组成逢十六进一

    只要理解每个进制的进一规则,那运算起来就了如指掌。
    以八进制举例:
    逢八进一,当数字大于等于8时,进一位,如果10进制的逢十进一。
    以下均为八进制数:
    4 + 6 = 12
    6 + 6 = 14
    277 + 333 = 632

    位、字节、原码、反码、补码:

    计算机最小运算单位是bit,位。
    byte表示一个字节,1byte = 8bit
    Java中是以补码来表示二进制
    Java中声明一个byte类型的变量,其大小范围是-128 ~ 127

    byte b = 127;   // ok
    byte c = 128;   // error
    

    原因是byte类变量只有一个字节,即上面声明的b变量,只在内存中占用8位,并且最高位是符号位。即:

    //最高位符号位: 0表示整数,1表示负数
    //最大正数
    byte max = 127;  //内存:0111 1111(补码)
    
    //最小负数
    byte min = -128; //内存:1000 0000(补码)
    
    //有一点需要注意的是,该二进制表示的是补码
    //介绍一下原码、反码、补码
    //原码:二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小
    //反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外
    //补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1,另外计算一个数的补码,可取其绝对值的原码,每一位取反并加1。
    

    通用寄存机

    编译器在运行过程中,生成的变量会存在三个地方:CPU(寄存器位于其中),内存,硬盘

    32位CPU中(05年以后的电脑,大多都64位的)有3种寄存器:

    • 8位
    • 16位
    • 32位(包含8种通用寄存器,EIP不是通用寄存器
      1. EAX
      2. ECX
      3. EDX
      4. EBX
      5. ESP
      6. EBP
      7. ESI
      8. EDI

    指令学习

    MOV EAX,1 //将立即数(1)存到指定的寄存器(EAX)
    

    相关文章

      网友评论

          本文标题:初学汇编

          本文链接:https://www.haomeiwen.com/subject/dxpukxtx.html