文章
6
粉丝
0
获赞
0
访问
2.8k
(1)"jmp 00401031h","jle 0040102Dh","jl 00401010h"可能会使程序发生跳转。
采用了直接寻址方式
(2) SF=0,OF=0,ZF=0
跳转的逻辑表达式:^SF+^ZF
(3)
第7条指令中操作数“(%eax)”寄存器直接寻址
计算机M按字节编址
数组元素A[0]的起始地址是080040A0h
(4)计算机M是CISC。因为RISC只能通过LOAD和STORE指令来寻址,而计算机M中指令"addl $080040A0h, %eax"采用了直接寻址的方式。
评分及理由
(1)得分及理由(满分4分)
学生正确识别了三条可能跳转的指令(jmp、jle、jl),得1分。但错误地认为采用了直接寻址方式(实际应为相对寻址),扣1分。未给出jmp指令的跳转目标地址计算过程,扣2分。本小题得1分。
(2)得分及理由(满分3分)
学生正确给出了SF=0、OF=0、ZF=0(因为sum=150>100,且未发生溢出),得1分。但跳转的逻辑表达式错误(标准答案为(SF⊕OF)|ZF,而学生给出了^SF+^ZF,这是不正确的),扣2分。本小题得1分。
(3)得分及理由(满分7分)
学生未分析指令5、6、7的功能(未说明shll实现i×4、addl计算数组元素地址、movl读取数组值),扣3分。未说明ecx存储的内容(应为A[i]的值),扣1分。错误地将“(%eax)”的寻址方式称为寄存器直接寻址(实际应为寄存器间接寻址),扣1分。正确指出计算机M按字节编址,得1分。错误计算了A[10]的地址(学生给出了A[0]的地址且数值错误,标准基址应为0804A010h,正确计算应为0804A010h + 10×4 = 0804A038h),扣1分。本小题得1分。
(4)得分及理由(满分2分)
学生正确判断计算机M为CISC,得1分。但理由错误(学生错误地认为addl指令采用了直接寻址方式,实际该指令中的立即数是直接数,但CISC的特征是指令长度可变、复杂寻址模式等,而学生给出的理由与RISC/CISC区分无关),扣1分。本小题得1分。
题目总分:1+1+1+1=4分
登录后发布评论
暂无评论,来抢沙发