第三章 运算方法和运算部件

第三章 运算方法和运算部件

ID:40223117

大小:2.27 MB

页数:114页

时间:2019-07-27

第三章 运算方法和运算部件_第1页
第三章 运算方法和运算部件_第2页
第三章 运算方法和运算部件_第3页
第三章 运算方法和运算部件_第4页
第三章 运算方法和运算部件_第5页
资源描述:

《第三章 运算方法和运算部件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第一讲不同层次程序员看到的运算及ALU第二讲定点数运算及其运算部件 第三讲浮点数运算及其运算部件Ch3:ArithmeticandLogicOperateandALU运算方法和运算部件第一讲:不同层次程序员看到的运算及ALU主要内容C语言程序中涉及的运算整数算术运、浮点数算术运算按位、逻辑、移位、位扩展和位截断指令集中与运算相关的指令(以MIPS为参考)涉及到的定点数运算算术运算带符号整数运算:取负/符号扩展/加/减/乘/除/算术移位无符号整数运算:0扩展/加/减/乘/除逻辑运算逻辑操作:与/或/非/…移位操作:

2、逻辑左移/逻辑右移涉及到的浮点数运算:加、减、乘、除基本运算部件ALU的设计C语言程序中涉及的运算算术运算(最基本的运算)无符号数、带符号整数、浮点数的运算按位运算用途对位串实现“掩码”(mask)操作或相应的其他处理(主要用于对多媒体数据或控制信息进行处理)操作按位或:“

3、”按位与:“&”按位取反:“~”按位异或:“^”问题:如何从一个16位采样数据y中提取高位字节,并使低字节为0?可用“&”实现“掩码”操作:y&0xFF00例如,当y=0x2C0B时,通过掩码操作得到结果为:0x2C00C语言程序中涉及的运算

4、逻辑运算用途用于关系表达式的运算例如,if(x>yandi<100)then……中的“and”运算操作“‖”表示“OR”运算“&&”表示“AND”运算例如,if((x>y)&&(i<100))then……“!”表示“NOT”运算与按位运算的差别符号表示不同:&~&&;

5、~‖;……运算过程不同:按位~整体结果类型不同:位串~逻辑值C语言程序中涉及的运算移位运算用途提取部分信息扩大或缩小数值的2、4、8…倍操作左移::x<>k不区分是逻辑移位还是算术移位,由x的类型确定无符号数:逻辑左移、逻辑右移高(

6、低)位移出,低(高)位补0,可能溢出!问题:何时可能发生溢出?如何判断溢出?若高位移出的是1,则左移时发生溢出带符号整数:算术左移、算术右移左移:高位移出,低位补0。可能溢出!溢出判断:若移出的位不等于新的符号位,则溢出。右移:低位移出,高位补符,可能发生数据丢失。C语言程序中涉及的运算位扩展和位截断运算用途类型转换时可能需要数据扩展或截断操作没有专门操作运算符,根据类型转换前后数据长短确定是扩展还是截断扩展:短转长无符号数:0扩展,前面补0带符号整数:符号扩展,前面补符截断:长转短强行将高位丢弃,故可能发生“溢

7、出”例1:在大端机上输出si,usi,i,ui的十进制和十六进制值是什么?shortsi=-12345;unsignedshortusi=si;inti=si;unsingnedui=usi;si=-12345CFC7usi=53191CFC7i=-12345FFFFCFC7ui=531910000CFC7例2:i和j是否相等?inti=53191;shortsi=(short)i;intj=si;不相等!i=531910000CFC7si=-12345CFC7j=-12345FFFFCFC7原因:对i截断时发生

8、了“溢出”,即:53191截断为16位数时,有效数据丢失,无法被正确表示!MIPS定点算术运算指令InstructionExampleMeaningCommentsaddadd$1,$2,$3$1=$2+$33operands;exceptionpossiblesubtractsub$1,$2,$3$1=$2–$33operands;exceptionpossibleaddimmediateaddi$1,$2,100$1=$2+100+constant;exceptionpossibleaddunsignedad

9、du$1,$2,$3$1=$2+$33operands;noexceptionssubtractunsignedsubu$1,$2,$3$1=$2–$33operands;noexceptionsaddimm.unsign.addiu$1,$2,100$1=$2+100+constant;noexceptionsmultiplymult$2,$3Hi,Lo=$2x$364-bitsignedproductmultiplyunsignedmultu$2,$3Hi,Lo=$2x$364-bitunsignedprod

10、uctdividediv$2,$3Lo=$2÷$3,Lo=quotient,Hi=remainderHi=$2mod$3divideunsigneddivu$2,$3Lo=$2÷$3,Unsignedquotient&remainderHi=$2mod$3涉及到的操作数:32/16位无符号数,32/16位带符号数涉及到的操作:加/减/乘/除(有符号/无符号)MIPS逻辑运

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。