初学汇编

2017-07-22  本文已影响13人  木子李_af14

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

常见的进制

只要理解每个进制的进一规则,那运算起来就了如指掌。
以八进制举例:
逢八进一,当数字大于等于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种寄存器:

指令学习

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

猜你喜欢

热点阅读