检测点 2.1
(1)写出每条汇编指令执行后相关寄存器中的值。
mov ax,62627 ;AX= F4A3H
mov ah,31H ;AX= 31A3H
mov al,23H ;AX= 3123H
add ax,ax ;AX= 6246H
mov bx,826CH ;BX= 826CH
mov cx,ax ;CX= 6264H
mov ax,bx ;AX= 826CH
add ax,bx ;AX= 04D8H
mov al,bh ;AX= 0482H
mov ah,bl ;AX= 6C82H
add ah,ah ;AX= D882H
add al,6 ;AX= D888H
add al,al ;AX= D810H
mov ax,cx ;AX= 6246H
(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
mov al,2
add al,al
add al,al
add al,al
检测点 2.2
(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00100H到1000FH。
因物理地址=基础地址(段地址×16)+偏移地址
则基础地址:0001H × 16 = 0010H 偏移地址:0000H~FFFFH
故寻址范围为00100H~1000FH
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为1001H,最大为2000H。
因物理地址=基础地址(段地址×16)+偏移地址 偏移地址的范围为0000H~FFFFH
若要使SA的值最小,则应尽可能地使段地址小。
当段地址为1000H时,此时可寻址的范围是10000H~1FFFFH。
可以看出其最大寻址地址小于20000H,所以最小应为1001H。
而当段地址为2000H时,此时可寻址的范围是20000H~2FFFFH。
故最大应为2000H
检测点 2.3
下面的3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?
mov ax,bx
sub ax,ax
jmp ax ;CPU修改IP,IP的值为0000H