单项选择题
已知变量y和数组a都是int型,a的首地址为0x8049b00。假设编译器将a的首地址分配在ECX中,数组的下标变量i分配在EDX中,y分配在EAX中,C语言赋值语句“y=a[i];”被编译为指令“movl (%ecx,%edx,4),%eax”。在IA-32/Linux环境下执行该指令,则当i=150时,得到的存储器操作数的线性地址是()。
A.0x804a100
B.0x8049b9a
C.0x8049b00
D.0x8049d58
点击查看答案
相关考题
-
单项选择题
以下是有关IA-32/Linux系统分段机制的叙述,其中错误的是()。
A.将用户代码段和用户数据段的段基址都设为0
B.将内核代码段和内核数据段的段基址都设为0
C.段描述符中段存在位P为1,故不以段为单位分配内存
D.内核段描述符在GDT中,而用户段描述符在LDT中 -
单项选择题
以下是有关IA-32中逻辑地址向线性地址转换的叙述,其中错误的是()。
A.GTD和LDT在内存的起始地址分别存放在CPU内不同的地方
B.系统启动时操作系统先对GDT和LDT进行初始化
C.每次逻辑地址向线性地址转换都要访问内存中的GDT或LDT
D.从对应段描述符中取出段基址与段内偏移量相加可得到线性地址 -
单项选择题
以下有关IA-32段描述符和段描述符表的叙述中,错误的是()。
A.段描述符分普通段描述符和系统控制段描述符两类
B.段基址低12位总是0,因此段描述符中的段基址字段占20位
C.段描述符表分GDT(全局)、LDT(局部)和IDT(中断)三类
D.段描述符表就是段表,段描述符就是其中的段表项
