文章
149
粉丝
195
获赞
0
访问
19.0k
(1)
跳转指令:3(jmp)、10(jle)、14(jl)
寻址方式:相对寻址
jmp 目标地址计算:00401008 + 2 + 21h = 0040102Bh(若按机器码)
(2)
SF=0, OF=0, ZF=0
逻辑表达式:jle → ZF=1 or SF≠OF
(3)
shll:i 乘以 4(字节偏移)
addl:加数组基地址,得 &A[i]
movl:取 A[i] 值到 ecx
cx 内容:A[i] 的低 16 位
寻址方式:寄存器间接寻址
编址方式:按字节编址
A[10] 地址:0x0804A038
(4)
CISC,因为变长指令,支持复杂内存寻址。
评分及理由
(1)得分及理由(满分4分)
得分:2分
理由:
①正确识别了三条跳转指令(jmp、jle、jl),得1分。
②正确指出采用相对寻址方式,得1分。
③jmp目标地址计算过程有误:学生计算为00401008+2+21h=0040102Bh,但正确计算应为当前指令地址00401008+指令长度2+偏移量21h=0040102Bh,而标准答案为00401031h。这里学生计算错误,可能是对偏移量的理解有误(偏移量21h应为33,但学生直接加21h),且未正确说明PC更新过程,扣2分。
(2)得分及理由(满分3分)
得分:2分
理由:
①正确给出标志位SF=0、OF=0、ZF=0,得1分。
②逻辑表达式写为"ZF=1 or SF≠OF",这与标准答案"(SF ⊕ OF)| ZF = 1"等价,表达正确,得1分。
③无扣分项。
(3)得分及理由(满分7分)
得分:6分
理由:
①正确分析三条指令功能:shll实现i×4、addl计算A[i]地址、movl读取A[i]值,得3分。
②ecx内容回答为"A[i]的低16位"错误,应为完整的A[i]值(32位),扣1分。
③正确指出寄存器间接寻址方式,得1分。
④正确指出按字节编址,得1分。
⑤正确计算A[10]地址为0x0804A038,得1分。
(4)得分及理由(满分2分)
得分:2分
理由:
正确判断为CISC,并给出合理理由(变长指令、复杂内存寻址),得2分。
题目总分:2+2+6+2=12分
登录后发布评论
暂无评论,来抢沙发