作业
文章平均质量分 58
5分钟前
这个作者很懒,什么都没留下…
展开
-
程序控制过程机器级表示(访问条件码)-《深入理解计算机系统》笔记
笔记(程序控制过程机器级表示):粤语残片上面的字幕是要从右往左读的,跟现代的书写习惯不一致,因此看起来很不习惯。其实很多事物都有类似的情况,之所以不习惯是因为你把它读反了。就像用条件码去判断两个数(a和b)的大小,为什么是用(SF^OF)去判断?为什么不是用(SF&OF)不是(SF|OF)等?从因为“(SF^OF)”所以是“a条件码:除了整数寄存器外,C原创 2017-08-15 01:08:45 · 836 阅读 · 0 评论 -
《深入理解计算机系统》(原书第三版)家庭作业第三章(3.59)解答
**3.59 下面代码计算两个64位有符号值x和y的128位乘积,并将结果存储在内存中; typedef __int128 int128_t; void store_prod(int128_t *dest, int64_t x, int64_t y{ *dest = x *(int128_t)y; }解析:y in %rdx原创 2017-08-26 21:47:16 · 2029 阅读 · 6 评论 -
《深入理解计算机系统》(原书第三版)家庭作业第三章(3.68)解答
A和B是通过#define 定义的常数,求A和B的值从setVal的C代码和汇编代码对比可知:t 在str2 的偏移量为8 , u在str2 的偏移量为32 , y 在 str1的偏移量为 184 结构体str2 和 str1 类型的最长单位是long ,因此它们都是 8位对齐。有下列的结构图和分析:最原创 2017-08-28 01:37:59 · 574 阅读 · 0 评论 -
《深入理解计算机系统》(原书第三版)家庭作业第三章(3.69)解答
根据c代码和对应生成的汇编代码推断:A.CNT的值。B.结构a_struct的完整声明,假设这个结构只有字段idx和x,并且都为有符号值。typedef struct{int first; //0+4a_struct a[CNT]; //8+280int last; //288+4}b_structvoid test(long i,b_struct *bp){原创 2017-08-30 14:41:25 · 2746 阅读 · 0 评论 -
《深入理解计算机系统》(原书第三版)家庭作业第三章(3.63)解答
原题目:**3.63 伪代码分析:x rdi ;n rsin=n-0x3c(60);if(n>5){-->4005c3}else{goto:*(8n+0x4006f8)n=0 : 0x4006f8 -->0x4005a1n=1 : 0x400700 -->0x4005c3n=2 : 0x400708 -->0x4005a1n=3 : 0x40071原创 2017-08-27 11:57:50 · 3678 阅读 · 0 评论