复旦大学计算机体系结构考试,复旦大学计算机体系结构期末考试B卷.doc

(1)考虑下面这个for循环的汇编代码

looper:

pushl%ebp

movl%esp, %ebp

subl$16, %esp

movl$0, -8(%ebp)

movl$0, -4(%ebp)

jmp.L2

.L4:

movl-4(%ebp), %eax

sall$2, %eax

addl12(%ebp), %eax

movl(%eax), %eax

cmpl-8(%ebp), %eax

jle.L3

movl-4(%ebp), %eax

sall$2, %eax

addl12(%ebp), %eax

movl(%eax), %eax

movl%eax, -8(%ebp)

.L3:

addl$1, -8(%ebp)

addl$2, -4(%ebp)

.L2:

movl-4(%ebp), %eax

cmpl8(%ebp), %eax

jl.L4

movl-8(%ebp), %eax

leave

ret

根据以上的汇编代码,完成相应的for循环C程序代码(注意该程序有返回值)。

int looper(int n, int *a)

{

int i;

int x=0;

for(i= 0 ; i

{______________________________________

if(a[i]>x)//2分

x=a[i];// 2分

x++;//1分

}______________________________________

return x;// 1分

}

(2)

根据已有的结构(structure)和联合(union)的声明以及C函数void test(int i, s2 *bp)的IA32 汇编代码,推断出结构s1的完整声明和s2中CNT的值;之后再根据推断结果以及IA32汇编代码,推断补齐相应的C程序代码。

下面是要使用到的结构和联合的声明,函数void test(int i, s2 *bp)及其IA32 汇编代码。

struct s1 { struct s2 { union u1 {

int left; struct s1 *h;

s1 a[CNT]; struct s2 *i;

int right; char j;

}; union u1 b;};

char c;

};

void test(int i, s2 *bp)

{

int n=bp->left+bp->right;

s1 *ap=&bp->a[i];

ap->x[ap->idx]=n;

}

其IA32汇编代码为:

test:

pushl%ebp

movl%esp, %ebp

subl$16, %esp

movl12(%ebp), %eax

movl(%eax), %edx

movl12(%ebp), %eax

movl184(%eax), %eax

leal(%edx,%eax), %eax

movl%eax, -4(%ebp)

movl12(%ebp), %eax

leal4(%eax), %ecx

movl8(%ebp), %edx

movl%edx, %eax

sall$2, %eax

addl%edx, %eax

sall$2, %eax

leal(%ecx,%eax), %eax

movl%eax, -8(%ebp)

movl-8(%ebp), %eax

movl(%eax), %edx

movl-8(%ebp), %eax

movl-4(%ebp), %ecx

movl%ecx, 4(%eax,%edx,4)

leave

ret

1. CNT=___9_____//2分

2. 写出s1的完整声明。

____struct s1{

int idx;//2分

int x[4];//2分

___}____________________________________

____________________

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机系统结构大学期末复习资料题库含答案 1.看下述程序段:( C ) k: R5=R2 k+1: R0=R1×R4 k+2: R2=R5+1 k+3: R4=R0×R3 k+4: R3=R4-1 K+5: …… k和k+2之间发生的是什么数据相关 I. 先写后读相关 II.写-写相关 III. 先读后写相关 A.只有I B.只有I、II C.只有I、III D.以上都不对 2.开发并行的途径有( D ),资源重复和资源共享。 A、多计算机系统 B、多道分时 C、分布式处理系统 D、时间重叠 3.在计算机系统设计中,比较好的方法是(D )。 A、从上向下设计 B、从下向上设计 C、从两头向中间设计 D、从中间开始向上、向下设计 4.执行微指令的是(C) a.汇编程序 b.编译程序 c.硬件 d.微指令程序 5. 软件和硬件在(B)意义上是等效的。 A. 系统结构 B.功能 C. 性能 D. 价格 6. 实现汇编语言源程序变换成机器语言目标程序是由(D ) A.编译程序解释 B.编译程序翻译 C.汇编程序解释 D.汇编程序翻译 7. 按照计算机系统层次结构,算术运算、逻辑运算和移位等指令应属于(A)级机器语言。 A. 传统机器语言机器 B.操作系统机器 C. 汇编语言机器 D.高级语言机器 8.对汇编语言程序员,下列(A)不是透明的。 A. 中断字寄存器 B.乘法器 C. 移位器 D.指令缓冲器 9.在采用基准测试程序来测试评价机器的性能时,下列方法按照评价准确性递增的顺序排列是(B )。(1)实际的应用程序方法 (2)核心程序方法 (3)玩具基准测试程序(小测试程序) (4)综合基准测试程序 A.(1)(2)(3)(4) B.(2)(3)(4)(1) C.(3)(4)(1)(2) D.(4)(3)(2)(1) 10. 下列体系结构中,最适合多个任务并行执行的体系结构是( D) A、流水线的向量机结构 B、堆栈处理结构 C、共享存储多处理机结构 D、分布存储多计算机结构 11. 从用户的观点看,评价计算机系统性能的综合参数是( B ): A、指令系统 B、吞吐率 C、主存容量 D、主频率 12. 设指令由取指、分析、执行 3 个子部件完成,每个子部件的工作周期均为△t,采用常规标量单流水线处理机。若连续执行 10 条指令, 则共需时间 ( C )△t。 A.8 B.10 C. 12 D. 14 13. 系统响应时间和作业吞吐量是衡量计算机系统性能的重要指标。对于一个持续处理 业务的系统而言, ( C ) ,表明其性能越好。 A. 响应时间越短,作业吞吐量越小 B. 响应时间越短,作业吞吐量越大 C. 响应时间越长,作业吞吐量越大 D. 响应时间不会影响作业吞吐量 14. 若每一条指令都可以分解为取指、分析和执行三步。已知取指时间t 取指=4△t,分 析时间t 分析=3△t,执行时间t 执行=5△t。如果按串行方式执行完100 条指令需要( C )△t。 A. 1190 B. 1195 C. 1200 D. 1205 15. 如果按照流水线方式执行,执行完100 条指令需要 (B)△t。 A. 504 B. 507 C. 508 D. 510 16. 并行访问存储器最大的问题就是访问冲突大,下面不属于并行访问存储器的缺点的是:( D ) A、取指令冲突 B、读操作数冲突 C、写数据冲突 D、译码冲突 17. 一条4段流水线,每段执行时间为1ns,求该流水线执行100条指令最大效率为(C) A.100% B.96.2% C.97.1% D.388% 18. 假设一条指令的执行过程可以分为“取指令”、“分析”和“执行”三段,每一段的执行时间均为 ,连续执行n条指令所需要花费的最短时间约为(B)(假设仅有“取指令”和“分析”可重叠并假设n足够大): A. B. C. D. 19. MISD是指(C) A.单指令流单数据流 B.单指令流多数据流 C.多指令流单数据流 D.多指令流多数据流 20. 星形网络的网络直径和链路数分别为(A)和(D)。 A.N-1 B.N/2 C.2 D.N(N-1)/2 21. 软件和硬件在(B)意义上是等效的。 A.系统结构 B.功能 C.性能 D.价格

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值