黄老师 发表于 2013-7-29 08:50:14

大工13春《汇编语言程序设计》辅导资料一

大工13春《汇编语言程序设计》辅导资料一
主    题:第一章基础知识(第1-4节)
学习时间:2013年3月30日-4月7日
内    容:
   第一章概述
   这周我们将学习第一章中的第1-4节。这章主要介绍计算机所使用的机器语言方面的知识,这部分内容虽然比较简易,但是也是学好汇编语言程序的必备知识。
   
   第一节进位记数制与不同基数的数之间的转换
   1、基本概念
    1)基数:所谓基数,就是表数的数码个数,我们熟悉的十进制数是以10为基数的。二进制数是基数为2的记数制,以1和0表示不同状态。二进制数是真正的机器数,能为计算机读懂真正的语言。
    2)权:基数的N次方就是相应数码的N阶权,如314=2+1+40,相应的10的N次幂就是314的N阶权。二进制数用2N表示N阶权。
    3)B、D、H:习惯上二进制数后跟一个字母B,十进制数后跟D,十六进制后跟字母H,用于人们区别不同进制的数。
   2、二进制数与十进制数之间的转换
   1)十进制数转换为二进制数的方法:降幂法和除法,其中降幂法需要熟悉以下几个数字,27=128,28=256,210=1024,等等;除法最常用,除法本质是基数按权展开公式的逆运用,需要注意的是:除法得到的第一个余数代表二进制的最低位数码,不要弄反,另外对于小数转换的除法实际上乘2求整的过程,第一个整数是小数点后第一位数码。
   2)二进制数转化为十进制数的方法:利用基数按权展开公式可以转换。
   3、十六进制数及其与二进制、十进制数的转换
   1)十六进制数的引进:二进制数的识记对于人们是很不方便的,因此需要一种和二进制数转换容易并且方便人们识记的进制数,这样十六进制数和八进制数就引入了。
    2)十六进制H和二进制B之间的转换方法:十六进制数的数码以4位二进制数表示,并且由于基数是16=24,可以方便的实现两种数制转换。
   HB,每位十六进制数转换为4位二进制数,并替换掉原来十六进制进制数即可,如35BFH转换成二进制数为0011010110111111B。
   BH,每4位二进制数转换为1位十六进制数,并替换掉原来二进制数即可,如二进制数1010000110011100B转换成十六进制数为A19CH。
    3)十六进制数和十进制数之间的转换方法:和二进制数和十进制数间的转换方法一致,只是把基数从2换到16.
   
   第二节二进制数和十六进制数的运算
   1、二进制数运算:
    1)加法规则:0+0=0;0+1=1;1+0=1;1+1=0(进位1)
    2)乘法规则:0 0=0;0 1=0;1 0=0;1 1=1
   2、十六进制数的运算:
    十六进制的运算可以采用先把该十六进制数转换为十进制数,经过计算后再把结果转换为十六进制的方法,但是这样做比较繁琐。其实只要按照逢十六进一的规则,直接用十六进制数来计算也是很方便的。
    1)十六进制加法:当两个一位数之和S小于16时,与十进制数同样处理,如果两个一位数之和大于或等于16时,则应该用S-16及进位1来取代S。
 例:05C3H+3D25H=42E8H
     2)十六进制的减法:也与十进制数类似,够减时可直接相减,不够减时服从向高位借1为16的规则。例:3D25H-05C3H=3762H
     3)十六进制的乘法:可用十进制数的乘法规则来计算,但结果必须用十六进制数来表示。
 
  第三节 计算机中数和字符的表示
  1、原码、反码和补码:
    1)二进制数的原码:就是二进制数本身,反码是原码按位取反的结果
    2)补码的概念的引入:计算机为什么要使用补码记数?我们知道几何上角A的补角就是(180-A),比如角A=150,那么它的补角就是30,我们记数不仅可通过通过A=150知道,而且也可以通过(180-30)知道,而且后面的表示往往是更为方便的。计算机中数码都不是用原码来表示的,而是用它的补码表示
    3)求补码的方法:数X的补码=2N-原码,其中2N就相当于上例中的三角和180,N是机器字长。或者还可以求得X的反码再加一的方法实现。
    4)求原码值:假如从计算机中得到一个二进制数,那么它一定是补码形式,可以用3)中的方法的逆过程求的这个数的原码值,即:
       2N-补码=X的原码
  或   {补码-1}反码=X的原码
    5)正数的补码=它的原码=它的反码,负数的补码使用上述方法求得
    6)符号扩展问题,计算机中常会用到符号扩展问题,比如机器字长从8位到16位,16位到32位,那么计算机符号扩展的原则是:
 正数   高位补0
 负数   高位补1
    7)补码表数的范围:N位补码范围是:
       -2N-1~2N-1-1
 对于8位补码情况,最高位0,低7位表数,最大值为:0111 1111,即27-1=127,最小数为-128,为1000 0000。
 2、补码的加减法运算法则
    1)两个公式:
      补码[-X]补码补码                           (1)
         补码=补码+补码                                                            (2)
         补码=补码+[-Y]补码
    2)区别补码和求补运算两个概念,如+5的补码就是0000 0101,但是+5的求补运算则是:0000 01011111 10101111 1011
      比如32+(-25)=7,按上面公式计算:
         补码=补码+[(-25)]补码,利用上面公式(1),可以得到[-25]补码={补码}求补,而25补码就是它本身。如果把正数求补运算还理解成正数补码就是它本身的话,就会得到[-25]补码=补码的错位结论。实际上          25的补码是:0001 1001
25补码的求补运算是:1110 01101110 0111
所以32+(-25)=0010 0000+1110 0111=0000 111=7
   3)熟悉ASCⅡ码的字符表示
 
   第四节几种基本的逻辑运算
   1、与运算
      符号及真值表:,AB只有一种情况为真,即A,B都真时为真,其他情况为假。
    2、或运运算
   符号及真值表:,AB在A.B中有一个为真时即为真,A,B都假时才为假。
    3、非运算
   符号:
   4、异或运算
    符号及真值表:,AB在A,B取值相异时为真,相同时为假。
   本周要求掌握的内容如下:
   基本概念:基数、权、数制、数码的机器表示方式、补码的加减法运算法则、逻辑运算。
   基本理论:数制间的转换方法,数码的各种码制间的转换方法,会用补码进行加减运算,熟悉四种逻辑运算真值表。
   练习:
1、用降幂法和除法将下列十进制数字转换为二进制数:
   (1)369   (2)4095    (3)2.54
2、将下列十六进制数转化为二进制数和十进制数:
   (1)FA(2)5B   (3)FFFE
3、将下列二进制数转化为十六进制数和十进制数:
   (1)101101 (2)10000000(3)11111111
4、用8位二进制补码计算下列题目,结果用十六进制数表示:
   (1)(-85)+76   (2)85+(-76)(3)85-76   
5、下列字符的ASCⅡ码是多少,A,a,回车(CR),换行(LF)?
页: [1]
查看完整版本: 大工13春《汇编语言程序设计》辅导资料一