20135206于佳心【家庭作业汇总】

选题:3.63

分值:两分

作业过程:

int sum_col(int n,int A[E1(n)][E2(n)],int j)
{
    int i;
    int result = 0;
    for(i=0;i<E1(n);i++)
        result += A[i][j];
    return result;
}

上面是原来的代码

汇编代码

movl    8(%ebp),%edx                     ;edx:n
    leal    (%edx,%edx),%eax             ;eax:2n
    leal    -1(%eax),%ecx                ;ecx:2n-1
    leal    (%eax,%edx),%esi             ;esi:3n,(E1(n))
    movl    $0,%eax                      ;eax: 0(result)
    testl    %esi,%esi                   ;检验esi(正\负\0)
    jle        .L3                       ;若esi中E1(n)≤0的话,跳转
    leal    0(,%ecx,4),%ebx              ;ebx:0+4*ecx=4(2n-1)
    movl    16(%ebp),%eax                ;eax:ebp+16(j的地址)
    movl    12(%ebp),%edx                ;edx:ebp+12(A[i]的地址)
    leal    (%edx,%eax,4),%ecx           ;ecx:edx+4*eax(A[i][j])
    movl    $0,%edx                      ;edx:0
    movl    $0,%eax                      ;eax: 0
.L4                                      ;loop
    addl    (%ecx),%eax                  ;eax+=ecx((A[i][j]的地址)
    addl    $1,%edx                      ;edx:edx+1(i)
    addl    %ebx,%ecx                    ;ecx:ecx+ebx(ecx:A[i+1][j])
    cmpl    %esi,%edx                    ;比较esi与edx(E1(n)与i的比较)
    jl        .L4                        ;如果i<E1(n),跳转,回到循环
.L3                                      ;

E1(n)存储在esi中,E1(n)=3n;
E2(n)存储在ebx中,ebx=4*E2(n),所以E2(n)=2n-1.

选题:6.31

分值:一分

作业过程:

A.E=4,B=4,S=8

所以C=E*B*S=128

B.

选题:6.32

分值:两分

作业过程:

由题6.31可得:
块偏移位数量b=2 ==>CO
组索引位数量s=3 ==>CI
标记位数量t=8 ==>CT

接着把0x0718化成二进制得到0000011100011000,然后按顺序填入地址中:
索引位为6,高速缓存示记为38,所以可以看6.31的图索引位为6的那一行,有两个38的标记位,所以缓存示命中的。但是第一个的状态是0所以命中的是后面的FA

选题:6.42

分值:两分

作业过程:

读总数为2912

不命中的读总数为728

不命中率为25%

时间: 2024-12-26 08:07:27

20135206于佳心【家庭作业汇总】的相关文章

20135206于佳心-家庭作业3.63

第三章家庭作业 选题:3.63 分值:两分 作业过程: int sum_col(int n,int A[E1(n)][E2(n)],int j) { int i; int result = 0; for(i=0;i<E1(n);i++) result += A[i][j]; return result; } 上面是原来的代码 汇编代码 movl 8(%ebp),%edx ;edx:n leal (%edx,%edx),%eax ;eax:2n leal -1(%eax),%ecx ;ecx:2n

20135206于佳心-家庭作业6.31,家庭作业6.42

6.31 A.E=4,B=4,S=8 所以C=E*B*S=128 B. 6.42 读总数为2912 不命中的读总数为728 不命中率为25%

家庭作业汇总

家庭作业 8.21 首先可以看出不论是先打印子进程还是父进程都必须满足a在c的前面,b在c的前面这两种顺序. 但是由于无法判断子进程和父进程的并发序列,所以会有一下几种输出结果:acbc.abcc.bcac.bacc. 汇总 8.21 两星题 2′           共2′

20135223何伟钦—家庭作业汇总

第二章家庭作业 (当时检查的时候已有同学选了这道题,重复不算,没有登记) 第三章家庭作业 (已到老师办公室检查) 3.54解析:此题较为简单,只要对号入座,即可写出相应的C语言代码int decode2(int x,int y,int z){int r;z-=y;r=z;r<<=15;r>>=15;return r*(z^x);} 3.56解析: (1)由C代码函数的定义可先猜测得%esi=x,%ebx=n;由result.mask初始化以循环表达式的mask的使用可得%edi=r

20135327郭皓 20135329李海空家庭作业汇总

第二章: 两分题: 20135327 郭皓 :3 20135329 李海空:1 2.67 给你一个任务,编写一个过程int_size_is_32(),当在一个int是32位的机器上运行时,该程序产生1,而其他情况则产生0.不允许使用sizeof运算符.下面是开始时的尝试: /*The following code does not run properly on some machies*/ int bad_int_size_is_32(){ int set_msb = 1<<31; int

信息安全系统设计基础家庭作业

<深入理解计算机系统>家庭作业 * 8.9 答案: 进程对 是否并发 AB 否 AC 是 AD 是 BC 是 BD 是 CD 是 * 8.10 答案: A. 调用一次,返回两次: fork B. 调用一次,从不返回: execve, longjmp C. 调用一次,返回一次或者多次: setjmp * 8.11 答案: 这个程序会输出4个“hello”输出行. 因为Fork()函数的作用是调用一次返回两次.根据条件i<2,当 i = 0 时,输出2个hello,当 i = 1 时,输出2

家庭作业——第三章

第三章家庭作业    3.69和3.70 3.69 A:long trace(tree_ptr tp)    {        long ret = 0;        while(tp != NULL)        {           ret = tp->val;           tp = tp->left;        }        return ret;    } B:作用是从根一直遍历左子树,找到第一个没有左子树的节点的值. 3.70 A:long traverse(t

关于本周家庭作业

本周家庭作业 是仿照老师给的网页图片做像素级还原. 个人认为,其中涉及到的知识点有: 1. 语义化标签的用法: 2. 表单的用法以及其属性的意义: 3. 相对定位的用法: 4. 浮动的操作: 5. 浮动的清除方式: 采用overflow不等于visible的方式 采用clear方式 使用伪类:after方式 6. 无序列表的用法: 7. 二级菜单的制作:(此处不会,只好等着老师来讲解,已查过资料,主要归结为自己太笨……) 8. display各个属性的意义及用法: 9. sprinte图片切割的

20135223何伟钦—第六章家庭作业

第六章作业 一.家庭作业6.36(20135203&&20135223) (由于题6.36与6.35基本题型一样,只是高速缓存的数据字节不一样,我直接把6.35题目修改后作为6.36题目) 考虑下面的矩阵转置函数: typedef int array[4][4]; void transpose2(array dst,array src) { int i,j; for(i=0;i<4;i++) { for(j=0;j<4;j++) { dst[i][j]=src[j][i]; }