- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.硬件的判断逻辑
通过符号位的关系,相加的溢出判断 :通过符号位的与或门
1)如正数+正数=正数,负数+负数=负数
2)溢出=sasbsf+sasbsf
3)双符号位来判断,第一位与第二位的符号不同时发生溢出
2.移位操作
逻辑移位:数码的位置发生变化,但数值不变 如循环左移
算数移位:数码的位子变化,数值变化,但符号位不变,绝对值变为两倍
正数补码移位规则
单符号:不能超出表示范围,左移会超出,右移无所谓,会有误差,如四位只能表示0~15,超出则溢出
双符号:可以将计算过程中产生的进位保存在第二符号位中,但是计算结束后要恢复
总结:数符不变(单符号为符号位不变,双符号位为第一符号位不变)
空高位补0(右移是第二符号位移至尾数最高位)
2)负数补码移位规则
单符号:1表示负数,不能超出数值的表示范围,左移低位补0,右移高位补1
双符号:第二符号位同样可以用来存储计算过程进位,
总结:数符不变
左移空位补0,右移空位补1,第二符号位移至尾数最高位
3.右移时产生误差舍入方法
1)0舍1入法
如舍去最低位为0,则舍去,如舍去的为1,则舍去后+1
2)末尾恒置1
定点乘法运算
将乘法转化为部分积的累加,移位
原码一位乘法:每次用一位乘数去乘被乘数,得到部分积进行相加
设置寄存器A来保存每次的部分积之和,用寄存器B来保存被乘数,
寄存器C来保存乘数,c要么为0,要么为1,所以要么+B,要么+0,将用来中转的A寄存器中的值右移来解决累加和位数增多的问题,右移的数保存到C中,因为c寄存器需要用到的位数每算一次少一位,正好用来保存
补码一位乘法:通过乘数小数点后的权值与数值相乘,列出表达式,提取,变换后得到
相当于用相邻两位乘数比较的结果来决定
原码恢复余数法
被除数的绝对值小于除数为前提
比较两数大小可用减法试探
4原码不恢复余数法
基于恢复余数法的改进
5.补码不恢复余数法
浮点四则运算
浮点加减运算 都是补码运算
1)加减前应该进行对阶操作,通过对尾数的右移,阶数+1,尾数左移,阶数—1,来调整,一般都是将小阶调到大阶,这样低位去掉,如果左移去掉高位误差太大。最后将结果进行规格化,判断标准为尾数值|w|应该在1/2~1之间,如尾数|w|1/2,则左移进行规格话,大于1/2,则右移规格话。
2)我们也可以通过符号位+尾数最高位的异或关系,来判断。(没看懂)
2.浮点乘法运算
阶码相加,尾数相乘,转化为浮点加减运算
步骤:1)检查操作数是否为0
2)阶码相加
3)尾数相乘,不需要像加减法一样对阶
4)结果规格化。一般左规
3.浮点除法运算
原理:阶码相减,尾数相除
步骤:1)检查操作数是否为0
2)要保证尾数相除的结果为小数,所以AWBW,如果不是则通过调整AW的左移u右移
3)阶码相减
4)尾数相除,同理不需要对阶
5)通常结果在1/2到1,之间,所以不需要规格化。
第三章 指令系统
主要讨论:一般指令格式;常用寻址方式;面向用户指令类型
第一节 指令格式
操作码格式
定长操作码
各指令操作码的位置,位数固定相同
扩展操作码
各指令操作码的位置,位数不固定,根据需要变化
区分以上两者的不同,关键是要设置扩展标志
每个操作码为四位,总共能表示16种状态,我们只能用15中,剩下1111作为扩展标志,将下一位地址码扩展为操作码,同理,下一个四位也能这样操作,这样下去,能分为三地址指令,二地址指令,一地址指令,各有15条,零地址指令16条,不在需要扩展标志。
操作码采用方式码编码
地址结构
指令中提供的地址数采用两种方式呈现:存储单元地址码或者存储起编号
要知道指令中提供的地址数与实际中需要的地址数不一定相同,因为对地址的数量进行了简化,
指令提供地址的方式:1)显地址方式:寄存器,存储单元,包括直接与间接
2)隐地址方式:地址隐含约定,不出现在指令中
所以采用隐地址才能简化地址数,从而简化地址结构
四地址——三地址——二地址——一地址
四地址指令结构:
1)四地址到三地
文档评论(0)