文章
92
粉丝
68
获赞
0
访问
11.3k
(1) 第20条指令的虚拟地址是 0040 10B9H
(2) 寄存器相对寻址,第2条指令jmp的跳转目标地址计算过程: 0040 1079 H + 02H+09H.
(3) 已知第19条mov指令的功能是“a[i][j]←10”,其中ecx和edx为寄存器名,0042 2000H是数组a的首地址,指令中源操作数采用 寄存器基址变址寻址方式,
ecx中存放的是i,
小端方式。
(4) 第一次执行第19条指令时,取指令过程中不会发生缺页异常,因为004010AEH 地址和上一条0040108AH属于同一页面。
评分及理由
(1)得分及理由(满分3分)
学生答案“0040 10B9H”与标准答案“004010B9H”完全一致(空格不影响)。得3分。
(2)得分及理由(满分3分)
第一问:学生答“寄存器相对寻址”是错误的。标准答案为“相对寻址”。相对寻址的偏移量是相对于下一条指令地址,而“寄存器相对寻址”通常指基址寄存器加偏移量的寻址方式,与本题不符。此处存在逻辑错误,扣1分。
第二问:学生给出的计算过程“0040 1079 H + 02H+09H”与标准答案的计算思路一致,且结果正确。此部分不扣分。
本小题第一问扣1分,第二问不扣分,得2分。
(3)得分及理由(满分3分)
第一问:学生答“寄存器基址变址寻址方式”是错误的。题目问的是“源操作数”的寻址方式,源操作数是“0Ah”,这是一个立即数,应采用“立即寻址”方式。学生描述的是目的操作数“[ecx+edx*4+00422000h]”的寻址方式。此处存在逻辑错误,扣1分。
第二问:学生答“ecx中存放的是i”是错误的。根据指令“[ecx+edx*4+00422000h]”,edx存放j,ecx存放的应是“i*数组一行的字节数”。数组a定义为`a[24][64]`,且每个元素为int型(根据偏移量edx*4推断),所以一行有64*4=256字节,ecx中应为i*256。此处存在逻辑错误,扣1分。
第三问:学生答“小端方式”正确。因为机器码中立即数“0A 00 00 00”的低字节“0A”在前(低地址),高字节“00”在后,符合小端模式。得1分。
本小题共得1分。
(4)得分及理由(满分0分)
本题未给出满分分值,从上下文推断...
登录后发布评论
暂无评论,来抢沙发