检测点2.1(第19页) ---------------------- (1)写出每条汇编指令执行后相关寄存器中的值。 第一空:F4A3H 第二空:31A3H 第三空:3123H 第四空:6246H 第五空:826CH 第六空:6246H 第七空:826CH 第八空:04D8H 第九空:0482H 第十空:6C82H 第十一空:D882H 第十二空:D888H 第十三空:D810H 第十四空:6246H (2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。 解答如下: mov ax,2 add ax,ax add ax,ax add ax,ax 检测点2.2(第25页) ---------------------- (1)00010H,1000FH 过程: 0001H X 16 = 00010H ; +0 位 0001H X 16+ FFFFH = 00010H + FFFFH = 1000FH (2)1001H,2000H 过程: SA X 16 + EA = 20000H EA最小为0时 2000 x 16 + 0 = 20000H 如果为2001 x 16 的话会超出20000H,所以最大为2000以内 EA最大为FFFF时 SA x 16 + FFFF = 20000H 20000H - FFFFH = 10001H 如果设SA为1000 的话,加0 为10000H + FFFFH = 1FFFFH < 20000H FFFF不能再大,只能SA增加, 所以1001H x 16 + FFFFH = 10010H + FFFFH = 2000FH > 20000H 而偏移量FFFFH却是可以减小的,所以 1001H x 16 + FFF0H = 20000H 而低于1001H是不行的,所以最小范围是 1001H以上 第2题说明: 因为段的起始地址要为16的倍数。所以当段地址小于1001H或大于2000H时CPU都无法寻到。 检测点2.3(第35页) ---------------------- 答:CPU修改了4次IP的值。 情况如下: 第1次:执行完mov ax,bx后 第2次:执行完sub ax,ax后 第3次:读入jmp ax后 第4次:执行完jmp ax后 最后IP的值为0 |