汇编01-基础知识

教材: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值