欢迎来到天天文库
浏览记录
ID:39322678
大小:497.61 KB
页数:27页
时间:2019-06-30
《DJ9第3章4算术逻辑运算基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三节运算方法本节主要内容:补码加减法原码一位乘法补码一位乘法原码除法补码除法浮点运算法一.补码加减法操作数用补码表示,符号位参加运算,结果也用补码表示。采用补码的优点:实际操作只取决于操作码,与操作数的正负无关结果不需要修正加法和减法统一为加法处理3.3.1定点加减运算1.补码加减运算的基本关系式(X+Y)补=X补+Y补(1)(X-Y)补=X补+(-Y)补(2)(1)式:操作码为“加”时,两数直接相加。3)X=3Y=–2X补=00011Y补=1111000001(+1补码)2)X=–3Y
2、=–2X补=11101Y补=1111011011(–5补码)1)X=3Y=2X补=00011Y补=0001000101(+5补码)4)X=–3Y=2X补=11101Y补=0001011111(–1补码)例.求(X+Y)补(X+Y)补=X补+Y补(1)(X-Y)补=X补+(-Y)补(2)(2)式:操作码为“减”时,将减转换为加。1)X=4Y=–5X补=00100Y补=11011(-Y)补=0010101001(+9补码)2)X=–4Y=5X补=11100Y补=00101(-Y)补=1101110111(
3、–9补码)例.求(X–Y)补Y补(–Y)补:将Y补变补不管Y补为正或负,将其符号连同尾数一起各位变反,末位加1。即将减数变补后与被减数相加。X补=00100Y补=11011X补=11100Y补=00101注意:某数的补码表示与某数变补的区别。例.10101原11011补码表示10011补01101变补00101原00101补码表示符号位不变;负数尾数改变,正数尾数不变00011补11101变补符号位改变,尾数改变。补码表示:数的正负关系不变变补:数的正负关系发生改变2.算法流程操作数用补码表示,符号位
4、参加运算结果为补码表示,符号位指示结果的正负X补+Y补X补+(-Y)补ADDSUB3.补码加减运算的逻辑实现A(X补)B(Y补)+AABB+B+B+1CPA∑A(1)控制信号加法器输入端控制:+A:打开控制门,将A送∑。+B:打开控制门,将B送∑。+1:控制末位加1。+B:打开控制门,将B送∑。加法器输出端控制:∑A:打开控制门,将结果送A输入端。CPA:将结果打入A。(2)补码加减运算器粗框∑3.3.2溢出判断、移位和舍入1、溢出以及判断方法什么是溢出?在什么情况下可能产生溢出?例.数A有4位尾
5、数,1位符号SA数B有4位尾数,1位符号SB符号位参与运算结果符号Sf尾数最高位进位C符号位进位Cf正确0001100010+(1)A=3B=23+2:00101(2)A=10B=710+7:0101000111+10001正溢正确负溢(3)A=–3B=–2–3+(–2):110111110111110+(4)A=–10B=–7–10+(–7):011111011011001+正确正确(5)A=6B=–46+(–4):000100011011100+(6)A=–6B=4–6+4:11110110100
6、0100+上式中,有两种情况产生溢出:(2)A=10B=710+7:0101000111+10001正溢负溢(4)A=–10B=–7–10+(–7):011111011011001+尾数最高位进位C=1符号位进位Cf=0尾数最高位进位C=0符号位进位Cf=1①硬件判断逻辑一(SA、SB与Sf的关系)溢出=SASBSf+SASBSf②硬件判断逻辑二(Cf与C的关系)上述的溢出情况:(2)A=10B=710+7:0101000111+10001正溢负溢(4)A=–10B=–7–10+(–7):011111
7、011011001+尾数最高位进位C=1符号位进位Cf=0尾数最高位进位C=0符号位进位Cf=1溢出=CfC③硬件判断逻辑三(双符号位Sf1、Sf2)采用单符号位,在溢出时结果的符号发生错误;若采用双符号位,在溢出时,仍然能够判断结果的正确符号位;采用双符号位的计算例:正确(1)3+2:000011000010+000101(2)10+7:001010000111+010001正溢第一符号位Sf1第二符号位Sf2负溢正确正确正确(3)–3+(–2):111011111101111110+(4)–
8、10+(–7):101111110110111001+(5)6+(–4):000010000110111100+(6)–6+4:111110111010000100+溢出=Sf1Sf2由此可得:溢出判断的三种方式:溢出=SASBSf+SASBSf溢出=CfC溢出=Sf1Sf2(对双符号位)2、移位操作逻辑移位:①移位类型10001111循环左移:纯粹逻辑数码位置的移动,无数值含义。000111111算术移位:数码位置变化,有数值和符号的区别。移
此文档下载收益归作者所有