检测点2.1(第19页)----------------------(1)写出每条汇编指令执行后相关寄存器中的值。第一空:F4A3H第二空:31A3H第三空:3123H第四空:6246H第五空:826CH第六空:6246H第七空:826CH第八空:04D8H第九空:0482H第十空:6C82H第十一空:D882H第十二空:D888H第十三空:D810H第十四空:6246H
(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
解答如下:mov ax,2add ax,axadd ax,axadd 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