题目内容 (请给出正确答案)
[主观题]

某程序中有如下一段循环代码段 P: for (i = 0; i <...

某程序中有如下一段循环代码段 P: for (i = 0; i < N; i++) sum += A[ i ]; 假设编译时变量 sum 和 i 分别分配在寄存器 R1 和 R2 中,常量 N 在寄存器 R6 中,数组 A 的首地址在寄存器 R3 中,程序段 P 的起始地址为 08048100H,对应的汇编码和机器代码如下所示: 指令序号 指令地址 机器代码 汇编码 操作注释 1 08048100H 00022080H loop: sll R4, R2, 2 (R2)<<2→r4 1 2 3 4 5 6 32 08048104h 00083020h add r4, r3 (r4)+(r3)→r4 08048108h 8c850000h load r5, 0(r4) ((r4)+0)→r5 0804810ch 00250820h r1, r5 (r1)+(r5)→r1 08048110h 20420001h addi r2, (r2)+1→r2 08048114h 1446fffah bne r6, loop if (r2)≠(r6) goto 执行上述代码的计算机中,存储器 m 采用 位定长指令字,其中分支指令 采用如下格式: 31:26 25:21 20:16 15:0 op rs rd offset 指令格式中的 代表操作码字段, 和 都代表寄存器编号, 为偏移量常数(用补码表示), 请回答下列问题,并说明理由: (1)存储器 的编址单位是什么? (2)已知 sll 指令实现左移功能,数组 a 中每个元素占多少位? (3)上表中 指令的 字段的值是多少?已知 指令采用相对寻址方式, pc 的当前内容为指令bne 的地址,通过分析表中指令地址和 指令内容,推断>

暂无答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“某程序中有如下一段循环代码段 P: for (i = 0; …”相关的问题

第1题

有如下程序

main()

{ char ch[2][5]={"6937","8254"},*p[2];

int i,j,s=0;

for(i=0;i<2;i++)p[i]=ch[i];

for(i=0;i<2;i++)

for(j=0;p[i][j]>′\0′;j+=2)

s=10*s+p[i][j]-′0′;

printf("%d\n",s);}

该程序的输出结果是

A.69825

B.63825

C.6385

D.693825

点击查看答案

第2题

有以下程序: main() { int a[3][3],*P,i, p=&a[0][0]; for(i=0,i<9;i++)P[i]=i; for(i=0;i<3;i++)printf(“%d”,a[1][i]); } 程序运行后的输出结果是( )。

A.0 1 2

B.1 2 3

C.2 3 4

D.3 4 5

点击查看答案

第3题

有下列程序: main { char*p[]={"3697","2584"}; int i,j;long num=0; for(i=0;i<2:i++) { j=0; while(p[i][j]!=\0) { if((p[i][j]-\0 )%2)num=1O*num+p [j][j]-0; j+=2; } } printf("%d\n",num); } 程序执行后的输m结果是( )。

A.35

B.37

C.39

D.3975

点击查看答案

第4题

有以下程序:main(){ char *p[]={"3697","2584"}; int i,j; long num=0; for(i=0;i<2;i++) {j=0;while(p[i][j]!=’\0’){ if((p[i][j]-’0’)%2= =0)num=10*num+p[i][j]-’0’; j+=2;} } printf("%d\n",num);}程序执行后的输出结果是( )。A.35 B.37C.39 D.28

点击查看答案

第5题

若有下面的程序片段:

int[12]={0},*p[3],**pp,i;

for(i=0;i<3;i)

p[i]=&a[i*4];

pp=p;

则对数组元素的错误引用是

A.pp[0][1]

B.a[10]

C.p[3][1]

D.*(*(p+2)+2)

点击查看答案

第6题

有以下程序

main( )

{ int a[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++) p[i]=i+1;

printf("%d \n",a[1][2]);

}

程序运行后的输出结果是

A.3

B.6

C.9

D.2

点击查看答案

第7题

若有下面的程序片段:

int[12]={0},*p[3],**pp,i;

for(i=0;i<3;i)

p[i]=&a[i*4];

pp=p;

则对数组元素的错误引用是

A.pp[0][1]

B.a[10]

C.p[3][1]

D.*(*(p+2)+2)

点击查看答案

第8题

若有下面的程序片段:

int[12]={0},*p[3],**pp,i;

for(i=0;i<3;i)

p[i]=&a[i*4];

pp=p;

则对数组元素的错误引用是

A.pp[0][1]

B.a[10]

C.p[3][1]

D.*(*(p+2)+2)

点击查看答案

第9题

有以下程序

fun(char p[][10])

{ int n=0,i;

for(i=0;i<7;i++)

if(p[i][0]=='T')n++;

return n;

}

main()

{ char str[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};

printf(" % d\n",fun(str));

}

程序执行后的输出结果是

A)1

B)2

C)3

D)0

点击查看答案

第10题

程序中有语句:for(inti=0;i<5;i++)cout<<*(p+i)<<",";能够依次输出int型一维数组a的前5个元素。由此可知,变量P的定义及初始化语句是( )。

A.int*p=a;

B.intp=a;

C."p=a;

D.p=a;

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信