大工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]