微型计算机原理与汇编语言第2章-2补码的加减运算.ppt
《微型计算机原理与汇编语言第2章-2补码的加减运算.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理与汇编语言第2章-2补码的加减运算.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2.2.42.2.4 补码的加减运算补码的加减运算 1.1.补码加法补码加法 在在计计算算机机中中,凡凡是是带带符符号号数数一一律律用用补补码码表表示示,运运算算结结果果自自然然也也是是补补码码。其其运运算算特特点点是是:符符号号位位和和数数值值位位一一起起参参加加运运算算,并且自动获得结果(包括符号位与数值位)。并且自动获得结果(包括符号位与数值位)。补码加法的运算规则为:补码加法的运算规则为:即:两数补码的和等于两数和的补码。即:两数补码的和等于两数和的补码。(2.2.5)例例2.11 已知已知+51补补=0011 0011B,+66补补=0100 0010B,-51补补=1100 110
2、1B,-66补补=1011 1110B 求求 +66补补+51补补=?+66补补+-51补补=?-66补补+-51补补=?由于由于 +66补补+51补补=(+66)+(+55)补补=01110101B结果为正,因此结果为正,因此(+66)+(+55)原原=(+66)+(+55)补补=01110101B其真值为其真值为+117,计算结果正确。,计算结果正确。二进制二进制(补码补码)加法加法 十进制加法十进制加法 0100 0010 +66补补 +66+)0011 0011 +51补补 +)+51 0111 0101 +117补补 +117 解:解:由于由于 +66补补+51补补=(+66)+(5
3、5)补补=0000111B结果为正,因此结果为正,因此(+66)+(55)原原=(+66)+(55)补补=00001111其真值为其真值为+15,计算结果正确。,计算结果正确。二进制二进制(补码补码)加法加法 十进制加法十进制加法 0100 0010 +66补补 +66+)1100 1101 -51补补 +)-51 0000 1111 +15补补 +151自动丢失自动丢失由于由于 -66补补+-51补补=10001011B=(-66)+(-55)补补 结果为负,因此结果为负,因此(-66)+(-55)原原=(-66)+(-55)补补补补=11110101B其真值为其真值为-117,计算结果正确
4、。,计算结果正确。二进制二进制(补码补码)加法加法 十进制加法十进制加法 1011 1110 -66补补 -66+)1100 1101 -51补补 +)-51 1000 1011 -117补补 -1171自动丢失自动丢失 2.2.补码减法补码减法补码减法补码减法补码减法的运算规则为:补码减法的运算规则为:变补:连同符号位在内,各位取反,末位变补:连同符号位在内,各位取反,末位+1 (2.2.6)即:即:例例2.12 已知已知+51补补=0011 0011B,+66补补=0100 0010B51补补=1100 1101B,66补补=1011 1110B 求求+66补补+51补补=?-66补补-5
5、1补补=?解解 +66补补-+51补补=+66补补+-51补补 -66补补-51补补=-66补补+51补补 二进制二进制(补码补码)减法减法 十进制减法十进制减法 1011 1110 -66补补 -66+)0011 0011 +51补补 -)-51 1111 0001 -15补补 -15 二进制二进制(补码补码)减法减法 十进制减法十进制减法 0100 0010 +66补补 +66+)1100 1101 -51补补 -)+51 0000 1111 +15补补 +151自动丢失自动丢失 可可以以看看出出,无无论论被被减减数数、减减数数是是正正数数还还是是负负数数,上上述述补补码码减减法法的的规规
6、则则都都是是正正确确的的。同同样样,由由最最高高位位向向更更高高位位的的进进位位会会自自动动丢丢失而不影响运算结果的正确性。失而不影响运算结果的正确性。计算机中带符号数用补码表示时有如下优点:计算机中带符号数用补码表示时有如下优点:可以将减法运算变为加法运算,因此可使用同一个运算器可以将减法运算变为加法运算,因此可使用同一个运算器可以将减法运算变为加法运算,因此可使用同一个运算器可以将减法运算变为加法运算,因此可使用同一个运算器实现加法和减法运算,简化了电路实现加法和减法运算,简化了电路实现加法和减法运算,简化了电路实现加法和减法运算,简化了电路。无符号数和带符号数的加法运算可以用同一个加法器
7、实无符号数和带符号数的加法运算可以用同一个加法器实无符号数和带符号数的加法运算可以用同一个加法器实无符号数和带符号数的加法运算可以用同一个加法器实现,结果都是正确的。例如:现,结果都是正确的。例如:现,结果都是正确的。例如:现,结果都是正确的。例如:无符号数无符号数 带符号数带符号数 11100001 225 -31补补+)00001101 +)13 +)+13补补 11101110 238 -18补补 若若两两操操作作数数为为无无符符号号数数时时,计计算算结结果果为为无无符符号号数数11101110B,其其真真值值为为238,结结果果正正确确;若若两两操操作作数数为为补补码码形形式式,计计算
8、算结结果果也也为补码形式,为补码形式,11101110B为为18的补码,结果也是正确的。的补码,结果也是正确的。练习:1、x=+1011010,y=+1010000,求,求x+y补补=?2、x=-1011010,y=-1010000,求,求x+y补补=?3、x=+1011010,y=-1010000,求,求x-y补补=?4、x=-1011010,y=+1010000,求,求x-y补补=?2.2.5 溢出及其判断方法溢出及其判断方法 1.进位与溢出进位与溢出 所所谓谓进进位位,是是指指运运算算结结果果的的最最高高位位向向更更高高位位的的进进位位,用用来来判判断断无无符符号号数数运运算算结结果果是
9、是否否超超出出了了计计算算机机所所能能表表示示的的最最大大无无符符号号数的范围。数的范围。溢出溢出是指带符号数的补码运算溢出,用来判断带符号数补是指带符号数的补码运算溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。例如,字长为码运算结果是否超出了补码所能表示的范围。例如,字长为n位位的带符号数,它能表示的补码范围为的带符号数,它能表示的补码范围为-2n-1+2n-1-1,如果运算结,如果运算结果超出此范围,就叫补码溢出,简称溢出。果超出此范围,就叫补码溢出,简称溢出。可能出现溢出的情况:可能出现溢出的情况:(1)两正数相加结果超出范围,结果变成负数。)两正数相加结果超出范围,结
10、果变成负数。现象:次高位向最高位有进位,最高位相加(连同次现象:次高位向最高位有进位,最高位相加(连同次高位进位)无进位。(上溢)高位进位)无进位。(上溢)(2)两负数相加结果超出范围,结果变成正数。)两负数相加结果超出范围,结果变成正数。现象:次高位向最高位无进位,最高位相加(连同次现象:次高位向最高位无进位,最高位相加(连同次高位进位)有进位。(下溢)高位进位)有进位。(下溢)(3)两异号数相减)两异号数相减 正数减负数结果超出范围:同(正数减负数结果超出范围:同(1)负数减正数结果超出范围:同(负数减正数结果超出范围:同(2)2.溢出的判断方法溢出的判断方法 判判断断溢溢出出的的方方法法
11、很很多多,常常见见的的有有:观观观观察察察察法法法法。通通过过参参加加运运算算的的两两个个数数的的符符号号及及运运算算结结果果的的符符号号进进行行判判断断。单单单单符符符符号号号号位位位位法法法法。该该方方法法通通过过符符号号位位和和数数值值部部分分最最高高位位的的进进位位状状态态来来判判断断结结果果是是否否溢溢出出。双双双双符符符符号号号号位位位位法法法法,又又称称为为变变形形补补码码法法。它它是是通通过过运运算算结结果的两个符号位的状态来判断结果是否溢出。果的两个符号位的状态来判断结果是否溢出。上述三种方法中,第一种方法仅适用于手工运算时对结果上述三种方法中,第一种方法仅适用于手工运算时对
12、结果是否溢出的判断,其他两种方法在计算机中都有使用。限于篇是否溢出的判断,其他两种方法在计算机中都有使用。限于篇幅,本节仅通过具体例子对第幅,本节仅通过具体例子对第种方法做简要介绍。种方法做简要介绍。若若符符号号位位进进位位状状态态用用CF来来表表示示,当当符符号号位位向向前前有有进进位位时时,CF=1,否否则则,CF=0;数数值值部部分分最最高高位位的的进进位位状状态态用用DF来来表表示示,当当该该位位向向前前有有进进位位时时,DF=1,否否则则,DF=0。单单符符号号位位法法就就是是通过该两位进位状态的异或结果来判断是否溢出的。通过该两位进位状态的异或结果来判断是否溢出的。(2.2.7)若
13、若OF=1,说明结果溢出;若,说明结果溢出;若OF=0,则结果未溢出。也就,则结果未溢出。也就是说,当符号位和数值部分最高位同时有进位或同时没有进位是说,当符号位和数值部分最高位同时有进位或同时没有进位时,结果没有溢出,否则,结果溢出。时,结果没有溢出,否则,结果溢出。例例2.13 设有两个操作数设有两个操作数x=01000100B,y=01001000B,将这两,将这两个操作数送运算器做加法运算,试问:个操作数送运算器做加法运算,试问:若为无符号数,计算结若为无符号数,计算结果是否正确?果是否正确?若为带符号补码数,计算结果是否溢出?若为带符号补码数,计算结果是否溢出?解解 无符号数无符号数
14、 带符号数带符号数 01000100 68 +68补补+)01001000 +)72 +)+72补补 10001100 140 +140补补DF=1CF=0 若若为为无无符符号号数数,由由于于CF=0,说说明明结结果果未未超超出出8位位无无符符号号数数所所能能表表达达的的数数值值范范围围(0 255),计计算算结结果果10001100B为为无无符符号号数数,其其真值为真值为140,计算结果正确。,计算结果正确。若为带符号数补码,由于若为带符号数补码,由于OF=1,结果溢出;这里也可通过,结果溢出;这里也可通过参加运算的两个数的符号及运算结果的符号进行判断,由于两操参加运算的两个数的符号及运算结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 汇编语言 补码 加减 运算
限制150内