针对如下在IA-32+Linux+GCC平台上编译运行的C语言程序: struct Record { ...
单项选择题针对如下在IA-32+Linux+GCC平台上编译运行的C语言程序:
struct Record {
char name[7];
short grade;
int id;
...其他结构成员...
};
char init_name[] = "AaBbCcDdEeFfGg"; // 字符串中没有空格
void init( struct Record rec_list[], int rec_num )
{
char *p1, *p2;
for ( struct Record *pr = rec_list; pr < rec_list + rec_num; pr ++ )
{
pr->grade = -1;
...其他程序语句(不修改pr->grade的值)...
for ( p1 = init_name, p2 = pr->name; *p1; p1++, p2++ )
*p2 = *p1;
}
}
假设init过程在寄存器edx中保存了局部变量pr的值,则下列哪条指令可实现“pr->id = -1”?()
A、movl
0xffffffff, 9(%edx)
C、movl
0xffffffff, 12(%edx)