- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.2.3.1 原码 用原码表示带符号数,首先要确定用以表示数据的二进制位数,一般是用8位或16位,把其中的最高位用来表示数据的正负符号,剩余位表示该数据的绝对值。比如,用8位二进制表示+12就,表示-12则;用16 位二进制表示+1024是0000010000000000B,表示-1024则是1000010000000000B。 原码表示法的特点是简便、直观,懂得数制转换的人可以很快计算出其表示的数在十进制中究竟是多少,它的缺点之一是0的表示有两种,即+0和-0,这对计算机来说可不是件好事。另一缺点是运算比较麻烦。比如两个原码表示的数据相加,首先需要判断两数的符号位,以决定到底是做加法还是做减法,然后用它们的绝对值进行计算;还需要判断计算结果的正负情况,最后在最高位上填上正确的符号。这种做法尽管在计算机上可以实现,但还有更好的方法。 1.2.3.2 补码 补码是在原码的基础之上,为简化运算而发展出来的另一种表示带符号二进制数的方法,具体做法是: (1) 确定表示数据的二进制位数,通常是8位、16位或32位; (2) 如果被表示的数据是非负的,则用其原码表示; (3) 如果被表示的数据是负数,则把该数的绝对值表示成二进制数,然后对每一位取反(即原位上是0就改写成1,原位上是1则改写成0),再把取反后的结果加1。 【例1.6】 把15和-27转换成8位补码表示,把345和-32768转换成16位补码表示。 【解】 按照上述补码转换规则,有: (1) 因为150,所以直接用8位原码表示,即 15=0FH (2) 因为-270,所以先把其绝对值27转换成8位二进制数,再取反加1,即 -27 → 27的8位二进制表 → 各位取反, → 再加1=0E5H (3) 因为3450,所以直接用16位原码表示,即 345=0000000101011001B=0159H (4) 因为-327680,所以先把其绝对值32768转换成16位二进制数,再取反加1,即 -32768 → 32768的16位二进制表示1000000000000000B → 各位取反,得0111111111111111B → 再加1,得1000000000000000B=8000H 用补码表示二进制数的好处在于,对于两个带符号数进行加法或减法运算时,符号位直接参与运算,不需要判断符号,而计算结果的最高位仍然表示符号。现在的电子计算机中都使用补码表示带符号数,8086/8088当然也不例外。 【例1.7】 用8位补码表示15和-27,并计算两数的和与差。 【解】 利用例1.6的结果,有: 那么,用补码计算得到的两个数的又是如何还原成十进制的-12的呢?这也不难,从最高位的1可知结果是负数,然后对每一位取反,,再加1,,这就是计算结果的绝对值,转换成十进制就是12,不要忘记原数据最高位的1表示它是负的,所以结果是-12。当然,如果一个补码表示的数最高位是0,就如同例1.7中两数相减的结果,这表示结果是非负数,则直接转换成相应的十进制数即可得42。 第1章 概 述 第1章 概 述 1.1 计算机语言是人机交流工具 1.2 预备知识 习 题 一 操作码 操作数 1.1.1 机器语言 计算机的所有操作都是在指令的控制下进行的。能够直接控制计算机完成指定动作的是机器指令。一条机器指令是一个由0和1组成的二进制代码序列,不同的机器指令对应的二进制代码序列也各不相同。一条机器指令通常由操作码和操作数两部分构成,操作码在前,操作数在后。 1.1 计算机语言是人机交流工具 操作码部分用来指出这条指令要求计算机做什么样的操作,是做加法,做减法,还是完成数据传送,亦或是其它的操作;操作数部分给出参与操作的数据值,或者指出操作对象在什么地方。下面的二进制代码序列就是一条8086/8088的机器指令: 这条指令的前16位是操作码部分,含义是要求计算机做两个数的加法操作;后24位是操作数部分,第17位至第32位指出第一个加数在内部存储器的编号为100的那个字节中,最后8位指出另一个加数就在指令
文档评论(0)