汇编语言学习(一) 数据基础
数据在内存中以二进制的方式存放,一段内存中存放的内容只能为0和1,那么如何才能知道一段0、1表示的究竟是什么内容呢?
一、数据的表示:
1、数值-------如十进制、十六进制的数值,均转化为二进制进行存放(熟练掌握二、十、十六进制之间转换)
2、非数值--------如图像、图标、指令等,通过二进制编码的形式进行存放(ASCII码、变形国标码用于储存中文)
这就是我们经常说的一段内存地址只有明确了它的类型才有意义。
机器码(机器数):把一个数据连同其符号在内在机器中的表示加以数值化被称为机器数(书本中的定义)。
这段话告诉我们:无论是数值(无符号、带符号)还是非数值均被加以数值化,最终被转化成0、1。使用0、1进行编程的方法就叫机器码编程。
二、数据的表现形式
补码,原码、反码,均被称之为数据的表现形式,也就是说一个数据可以通过以上三种不同的表示方法进行表示(只是展示的形态不同而已),但最终数值仍然是一样的。
补码中规定最高位为符号位。
正数的补码:符号位(0)+ 绝对值;
负数的补码:X = 2的n次方 - |X|;
+0/-0只有一个补码为0。
8位中,signed int范围: -128 ~ 127
计算方法:符号位用于表示正、负,最高位不可用于计数,因此只有7个位可用,正数最大范围是(2的n-1次方-1),而表示负数时最高位为1(疑问)
8位中,unsigned int范围:0 ~ 255
计算方法:8个位全部可用,因此正数最大值为(2的n次方-1)
三、ASCII码与变形国标码
ASCII码中需记住:美国标准信息交换码
空格--20H ; 1--30H ; A--41H ; a--61H
变形国标码:将16位中的第7、15位设为1,相当于在国标码上加上8080H。