以下是学习计算机系统基础课程的一些练习题记录,重在理解的过程,因为本身学习这门课程的目的就在于更好的理解“计算机组成原理”。
1. 假设 R[ax]=FFE8H,R[bx]=7FE6H,执行指令“subw %bx, %ax”后,寄存器的内容和各标志的变化为( )。
- A.R[bx]=8002H,OF=1,SF=1,CF=0,ZF=0
- B. R[ax]=8002H,OF=0,SF=1,CF=0,ZF=0
- C.R[bx]=8002H,OF=0,SF=1,CF=0,ZF=0
- D.R[ax]=8002H,OF=1,SF=1,CF=0,ZF=0
注:subw %bx, %ax 表示R[ax] - R[bx] → R[ax]
2. 假设R[eax]=0000B160H,R[ebx]=00FF0110H,执行指令“imulw %bx”后,通用寄存器的内容变化为( )。
得分/总分
-
A.R[eax]=00007600H,R[dx]=FFACH
-
B.R[eax]=00007600H,R[dx]=00BCH
-
C.R[eax]=00BC7600,其余不变
-
D.R[eax]=FFAC7600H,其余不变
注:w表示一个字,16bit,IA-32指令中,若只有一个操作数,则另一个操作数隐藏在AL/AX/EAX中,将两者相乘后(转换成加法,用ALU的加法部件),16bit时存在AX,32bit时存在DX-AX,64bit存在EDX-EAX中。这里是16bit*16bit,结果是32bit。
补充:IA-32架构是由8086的16位架构发展而来的,所以一个