教材:80X86汇编语言程序设计教程 杨季文、钱培德等编著 清华大学出版社
参考书:IBM-PC 汇编语言程序设计 沈美明、温冬婵编者 清华大学出版社
第一章 基础知识
掌握的两个要点:一是各进制的转换,而是数据、非数据的表示和数据的类型
一、各进制的转换
1、二进制数和十六进制数
在计算机里,通常用数字后面跟一个英文字母表示该数的数字
十进制数一般用D,二进制数用B,八进制数用O,十六进制数用H来表示,例如:1010B,1115D,058AH等
2,十六进制数及其与二进制、十进制数之间的转换
(1)十进制数转换为二进制数或十六进制数
用除以2或16取余法
(2)二进制数或十六进制数转换为十进制数
各位二进制数码或十六进制数码乘以与其对应的权之和<=权展开
例:11001B=1*2^4+1*2^3+0*2^2+0*2^1+1*2^0=25D
(3)十六进制数和二进制数之间的转换
一个二进制数,把它从低位到高位每4位组成一组,直接用十六进制数来表示
例:0011010110111111B转换为十六进制数
0011 0101 1011 1111
3 5 B F
所以转换为十六进制数的结果为 35BFH
二、数据的表示
计算机中存储信息的最小单位称为 位 ,在绝大数系统中他只能表示两种状态,这两种状态分别代表0和1.
计算机系统内部采用二进制表示数值数据,也采用二进制编码表示非数值数据和指令
1、数的补码表示(有符号数)
把一个数连同其符号在内 在机器中的表示加以数值化,这种数称为 机器数
一般用最高有效位来表示数的符号: 正数用 0 表示,负数用 1 表示
机器数可以用不用的码制来表示,常用的有原码、补码和反吗表示法
补码表示法中,正数采用符号+绝对值表示:
例:假设机器字长为8位,则[+1]补=00000001,[+127]补=01111111,[+0]补=00000000
当用补码表示法来表示负数时:负数X用2^n-[X]表示,其中n为机器的字长
例:当n=8时,[-1]补=2^8-1=11111111,[-127]补=2^8-127=10000001
在补码表示法中0只有一种表示,即00000000.
对于10000000这个数,在补码表示法中被定义为-128
采用补码形式表示的有符号数,那么n位二进制数能够表示:有符号整数的范围为: -2^(n-1)<=N<=+2^(n-1)-1
8位表示数的有符号整数的范围为-128~+127即(10000000~01111111)
16位表示的有符号整数的范围是: -32768~+32767
1'1补充----补码
1,在计算机系统中,数值的一律用补码表示(存储):使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果符号位有进位,则进位被舍弃。
2,补码与原码的转换过程几乎是相同的:
求给定数值的补码表示分以下两种情况:
(1)正数的补码:与原码相同。
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1
2,、无符号整数
在某些情况下,要处理的数全是正数,此时再保留符号位就没意义了。
因此,n位二进制数能够表示的无符号整数的范围是:0<=N<=2^n-1
8位无符号数表示的范围是0<=N<=255
16位无符号数表示的范围是0<=N<=65535
3,符号扩展
把n位二进制数扩展成m为二进制数(m>n)
当要扩展的数是无符号数时,只要在最高位前扩展(m-n)个0
如果要扩展的数是有符号数,并且采用补码形式表示,进行符号扩展
例:-3的8位二进制补码和16位二进制补码如下:
11111101 8位
1111111111111101 16位
4,补码的加法和减法
对于一个正数的补码表示 ,按位求反后再在末位加 1 ,可以得到与此正数相应的负数的补码表示
把这种对一个二进制数按位求反后在末位加 1 的运算称为 求补运算。
因此可以得到以下特性:
补码的加法规则: [X+Y]补=[X]补+[Y]补
补码的减法规则: [X-Y]补=[X]补+[-Y]补
例:用8位二进制补码计算:25+(-32)
25 00011001
+(-32) + 11100000
-7 11111001
三、非数值数据的表示
计算机除了处理数值数据外,还要处理大量的非数值数据,如文字信息和图表信息等。为此必须对非数值数据进行编码。这样不仅计算机能够方便地处理和存储它们,而且还可以赋予它们数值数据的某些属性
1、ASCⅡ 码
是目前国际上比较通用的字符二进制编码,微型计算机也普遍采用它作为字符的编码。扩展的ASCⅡ码使用8位二进制进行编码,可以表示256个字符
例:键盘上的空格符16位ASCⅡ码表示是:20H
数字0的16位ASCⅡ码是:30H
英文小写字母a的16位ASCⅡ码是:61H
英文大写字母A的16位ASCⅡ码是:41H
2、变形国际码
为使计算机能处理汉字信息,就必须对汉字进行编码
国际码是16位编码,高8位表示汉字符的区号,低8位表示汉字符的位号
变形的国际码的第7位和第15位给赋值为1.
在国标码上加8080H就形成了变形的国标码
四、基本数据类型
计算机存取的以二进制表示的信息位数一般是8的倍数,它们有如下专门的名称:
1,、字节
一个字节由8个二进制位组成
字节的最低位一般称为第0位,最高位称为第7位,如下: 7 6 5 4 3 2 1 0 <=一个字节
通常,硬件存储器的每一存储单元就由8个二进制位组成,即可用于存储一个字节的信息
一个字节足以表示一个ASCⅡ字符,也可以表示一个扩展的ASCⅡ字符。
一个字节可分成2个4位的位组,称为 半字节
2、字
2个字节(即16个二进制位)组成一个字,字的最低位称为0位,最高位称为第15位。
字的低位称为低字节,高位称为高字节
3、双字
双字由2个字组成,即包含32个二进制位
低16位称为低字,高16位称为高字
双字能表示的数据的范围更大
4,、四字
四字就是由四个字组成,包含64个二进制位
5,、十字节
由10个字节组成,含80个二进制位,可用于存储非常大的数或表示较多的信息
6、字符串
字符串是指由字符构成的一个线性数组。通常每个字符用一个字节表示,有时每个字符也可以用一个字或双字来表示
以上内容来源于:http://video.1kejian.com/video/?25319-0-1.html