4.3.6【2023统考真题】


好的,这道2023年的真题非常精彩,是一道典型的**“代码逆向工程”**题。它要求我们从C代码片段和其对应的机器码,反向推导出指令的寻址方式、地址计算过程、数据存储方式(大/小端)以及与虚拟存储系统的交互。
我们来深入地、全方位地解析这道题。
题目原文 (整理后)
(4)【2023统考真题】已知计算机M的字长为32位,按字节编址,采用请求调页策略的虚拟存储管理方式,虚拟地址为32位,页大小为4KB。某C语言程序段在计算机M上的部分机器级代码如下,数组a的定义为“int a[24][64];”,每个机器级代码行中依次包含指令序号、虚拟地址、机器指令和汇编指令。
// C Code Snippet
for(i=0; i<24; i++)for(j=0; j<64; j++)a[i][j] = 10;
``````assembly
// Machine Code Snippet
1 00401072 C7 45 F8 00 00 00 00 mov [ebp-8], 0 // i=0
2 00401079 EB 09 jmp 00401084H
3 0040107B 8B 55 F8 mov eax, [ebp-8