汇编课件第01章 数和编码.ppt_第1页
汇编课件第01章 数和编码.ppt_第2页
汇编课件第01章 数和编码.ppt_第3页
汇编课件第01章 数和编码.ppt_第4页
汇编课件第01章 数和编码.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8086汇编语言程序设计,1,进制计数制; 各种数制数间的转换举例; 带符号数和补码; 字符和编码; 计算机的逻辑运算。 开关状态和二进制数,从位到字节,计算机的“分子”模型。 十六进制数:二进制数的“压缩”模式。 和十进制数之间转换的必要性和转换方法。,本节内容提要,8086汇编语言程序设计,2,1.1 进位计数制 从我们熟悉的十进制数来了解位权和基数。如: 999.99 虽然这五个数都是“9”,但由于它们各自的位置不同,所代表的分量是很不一样的。这“分量”就是“位权”:个、拾、百、千、万等。,第一章 数与编码,8086汇编语言程序设计,3,基数是指某种进制数的每个数位上使用的数码的个数。我

2、们最熟悉的十进制数每个数位使用的数码是 0 到 9 共十个。 了解数字计算机原理就应该知道,计算机处理二进制数是最方便的(和开关对应)。二进制数的基数是 2,各位使用的数码是 0 和 1 ;各位的位权是 2n(其中n是十进制整数)。如二进制数的 101 是: 122021120 5,8086汇编语言程序设计,4,常用进位计数制所用的数码如下: 十进制数的系数:09 二进制数的系数:0,1 八进制数的系数:07 十六进制的系数:09,AF 为避免混淆,不同进制的数在书写时后缀一个字母,二进制数用B,八进制用O,十六进制数用H(关于计算机的数和汇编语言的数)。,8086汇编语言程序设计,5,二、八

3、和十六进制数间的转换是非常自然、直接的;人类习惯使用十进制数,而计算机只能识别二进制数,所以不同数制数间的转换的重点是二进制数和十进制数间的转换。 1.2.1 十进制整数转换为二进整数 十进制整数转换为二进整数的方法很多,下面仅以“减权定位法”和“除基取余法”举实例说明。,1.2 各种数制数间的相互转换,8086汇编语言程序设计,6, 减权定位法 325 256 = 691 69 1280 69 64 = 51 5 320 5 160 5 80 5 4 = 11 1 20 1 1 = 01 转换结果:325 = 101000101B,8086汇编语言程序设计,7, 除基取余法 325/2 16

4、2 /21 81/20 40/21 20/20 10/20 5/20 2/21 1/20 01 转换结果:325 = 101000101B,8086汇编语言程序设计,8,1.2.2 十进制小数转换为二进整小数 减权定位法 和整数转换类似,但须注意二进制小数各位的权值依次是:0.5,0.25,0.125,0.0625. 乘基取整(以转换 0.8125 为例) 0.81252= 1.6251 0.6252= 1.251 0.252= 0.50 0.52= 11 转换结果: 0.8125=0.1101B,8086汇编语言程序设计,9,1.2.3 二进制数转换为十进数 下面仅以整数和小数各一例,介绍“

5、按权相加”转换法: 101000101B = 128 + 126 + 122 + 1 = 256 + 64 + 4 + 1 = 325D 0.101001B = 10.5 + 10.125 + 0.012625 = 0.64625,8086汇编语言程序设计,10,用“除基取余法”将 101000101B 转换成十进制数: 101000101B /10 001000000B /105 000000011B /102 000000000B 3 转换结果:101000101B = 325,8086汇编语言程序设计,11,1.3 带符号数及补码,在计算机里用二进制数的最高位来表示数的正负已为我们大家所

6、熟知:0 表正而 1 表负。因数值部分的表示方法不同分原码和补码两种表示方式。 2.3.1 原码表示 最高位为 0 表正而 1 表负,数值部分和真值相同。 如: +110 1010B 表示成 - 110 1010B 表示成,8086汇编语言程序设计,12,尽管原码表示法很直观,但在做加减运算时是比较麻烦的:加减指令只有在操作同符号数时才做的是真正意义的加减运算,而异号数相加时作的是减法运算,相减时做的是加法运算; 同号数相减和异号相加后,结果的符号位还得根据运算结果再做判断来确定。显然,用原码直接进行运算会增加计算机硬件的复杂程度或降低执行效率。幸好,采用补码表示就不存在上述问题。,8086汇

7、编语言程序设计,13,1.3.1 补码 先看十进制数“变减为加”的例子: 68 47 =68 (47 100 + 100) =68 +(100 47) 100 =68 + 53 100 =121 100 =21 如果我们能高效地计算出补码并减去“模”,则“变减为加”将是可行的。,8086汇编语言程序设计,14, 补码的定义 X补= M + X (mod M) 这里的M是模数,大小和计算机的位数有关。对于 8 位运算来讲,M = 28 = 256, 正好是无符号数产生的进位。补码运算正是利用这个进位的自动丢失“无代价”地完成了“ M”(减模)操作。我们先看看当X 0 和X0 时X补的情况;在这里

8、我们假定:M = 28 = 256 = 100000000B。,8086汇编语言程序设计,15,当X = 0111011B (即小于0 时): X补= 100000000B + X = 100000000B 0111011B(不做减法) = 11111111B 0111011B + 1 = 11000101B 对二进制数而言,负数求补可以用“逐位求反,末位加一”来实现,这对数字计算机来说,易如反掌。,8086汇编语言程序设计,16,当X 大等于0 时: X补= 100000000B + X = X 这说明,按照补码的定义,正数的补码就是其本身。,8086汇编语言程序设计,17, 补码表示法中数

9、的范围 在汇编语言中,常用到n为8和16时的数值范围。当 n = 8 时: 无符号整数的范围:0255; 有符号整数的范围:-128127; 当 n = 16 时: 无符号整数的范围:065535; 有符号整数的范围:-3276832767。,8086汇编语言程序设计,18, 补码变换小结 求补变换只涉及负数; 求补的方法是“逐位取反,末位加一”(正变换和逆变换都一样); 真值的符号位(0)参与取反而原码的符号位保持不变。,8086汇编语言程序设计,19, 补码的加减运算 X补+ Y补= X + Y补 当 X 0 和 Y 0 时,上式显然是成立的。 当X 0 和 Y 0 时: X补+ Y补 =

10、 M + X + M + Y = M + X + Y + M = M + X + Y = X + Y补,8086汇编语言程序设计,20,当X 0 和 Y 0 时: X补+ Y补= X + M + Y = M + X + Y = X + Y补 如果X |Y|, M会因自动进位而被舍去,得到一正的结果;如果X |Y|, 将得到 X |Y| 这一负数的补码。,8086汇编语言程序设计,21,例:求 X =74, Y =41 之和 先求两数的补码: X补 = 10110110B Y补 = 11010111B 然后求和: 1 0 1 1 0 1 1 0 + 1 1 0 1 0 1 1 1 1 1 0 0

11、 0 1 1 0 1 1 1 1 1 0 0 1 1 = -115,原码,舍去,8086汇编语言程序设计,22,溢出的概念和补码溢出的判断 如 X=74, Y=56,则X+Y=130。作为8位二进制数补码写成: 01001010 +00111000 10000010 两数之和超过了 8 位二进制数的表示范围,产生了溢出;显然,只有同号数相加或异号数相减(即实际意义上的相加)才可能产生溢出。,8086汇编语言程序设计,23,回头观察前面所述两负数相加的示例来讨论补码溢出的判断: X=74, Y=41 X补=10110110B Y补=11010111B 1 0 1 1 0 1 1 0 + 1 1

12、0 1 0 1 1 1 1 1 0 0 0 1 1 0 1 这里我们注意两个问题: 两负数的符号位相加必然为 0 ; 来自数字部分的进位意味着什么?,注意数字部分的进位,8086汇编语言程序设计,24, 四项相加如下图。容易看出:如果 X+Y127,意味着溢出,这时补码之和X+Y不会向符号位进位;反之,如果X+Y127,显然没有溢出,而X+Y必然会向符号位进位,使计算结果依然为负。,八位补码溢出判断图示, 两数原码数值部分用下图示意, 原码和补码数值部分之和均应为128,8086汇编语言程序设计,25,二进制世界内都是二进制数吗? 二进制位串可以是指令、数字和字符(如 16 进制 30H,看作数字是 48,看作字符是“0”); 处理字符是计算机应用发展的需要; ASC 码是最常用的字符编码;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论