欢迎来到天天文库
浏览记录
ID:44102476
大小:902.25 KB
页数:18页
时间:2019-10-18
《系统级编程总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、复习提纲第一章概念、选择题第二章Datalab(lab2)10个函数+注释位相关内容1•位,字节,字,进制相关内容(常识)2.%X16进制形式输出整数,忽略03.大端小端:例如0x9A0477F3小端从低地址到高地址存储依次是(F377049A)4.6种位操作运算符:〜1补码,vv>>移位,&与,I或,八异或数据的表示1•整数:__原码10010010反码(l's):01101101补码(2,s反码+1):01101110负数等于正数的2,s(记住这句,就记住了整数表达方式,符号位只是标记)C语言是算数右移,保留符号位数据类型转换:大->小会丢失一部分,从而也可能引起符
2、号的转变,小-〉大符号位会延展从而保留溢出overflow:危害是不会被检测,处理方法:判断sum是否小于其中某个值2.非整数:定点数(fixedpoint):用小数点分割二进制数,小数点的位置决定数大小BCD:十进制数用二进制表示IEEEFloatingpoint:(-l)AsM2AES:符号竖M:小数点移动至最左的1后面的位置后的小数部分E(真值)=Exp(机器表示(移码))-Bias(偏移量)Bias=2A(e-l)・1,whereeisnumberofexponentbits在floatbe是8,即1位S,8位EXP,23位M•IEEEfloatingpoint
3、expression—1bitsignbit,8bitexponent#and23bitcoefficientsexpfrac(-1)s结构,算sizeof活动记录(codeo画图,填空)stackpointerR—espframepointerR・-ebp(1+frac*2-23)*2©p127)Determinethevaluesof101111010100000000000000000000002—Sign=1,negative-Exp=011110102=1221O=12210-12710=-Frac=100000000000000=1.100000000000
4、000笫三章编译器(记录员)与汇编器(翻译)的异同相同:将一种语言翻译成另一种不同:编译器是将高级语言翻译成机器语言,在此过程中需要分析和选择,高级语言往往和机器语言不是一一对应的,一条高级语言可能被翻译成多条低级语言而汇编器仅仅是将汇编语言翻译成机器语言,汇编语言往往和机器语言是一一对应的对齐(Alignment)(解释为什么?什么是?/给一段代码让你对齐)什么是:为了使CPU能够对变量进行快速的访问,变量的起始地址应该貝有某些特性,即所谓的”对齐”.比如4字节的int型,其起始地址应该位于4字节的边界上,即起始地址能够被4整除.一RULE1:•Thealignmen
5、tofastructisthesameasthelargestalignmentofitselements一RULE2:•Thesizeofastructisamultipleofitsalignment为什么:字节对齐的作用不仅是便于cpu快速访问,同时合理的利用字节对齐可以有效地节省存储空间。0X23456X80-01234S6T-890X234/X1XX1XXXX122222对齐的例子:•ExampleStructMemoryLayoutstructmystruct{chara,b;doubled;inti;•Youcanseeafewbytesaremissin
6、gbetweenbandd/什么是活动记录:Thechunkofmemoryallocatedforeachfunctioninvocation活动记录创建过程:Whenafunctioniscalled,thecompilerandhardware:caller:savecontextpushparametersandthereturnaddressintothestackcallee:constructownStackFramepushtheframepointerintothestacksettheframepointerequaltothestackpointe
7、rAllocateachunkofmemorytostorethelocalstatebydecrementthestackpointerwithanuncertaininteger(Estimatedbycompileraccordingtothefunctioncontent)1.FunctionCal—CallerResponsibilities•Savecallerregisters(ifnecessary)一eax,ecXpedx•Arguments(push)—Pushedontostack-Inwhatorder?Local
此文档下载收益归作者所有