王爽 《汇编语言》学习笔记 (一)

时间:2022-01-08 00:41:55

检测点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