第二章检测习题
检测点1
(1)写出每条汇编指令执行后相关寄存器中的值。
mov ax,62627 | AX= |
---|---|
mov ah,31H | AX= |
mov al,23H | AX= |
add ax,ax | AX= |
mov bx,826CH | BX= |
mov cx,ax | CX= |
mov ax,bx | AX= |
add ax,bx | AX= |
mov al,bh | AX= |
mov ah,bl | AX= |
add ah,ah | AX= |
add al,6 | AX= |
add al,al | AX= |
mov ax,cx | AX= |
(2)只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
检测点2
(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为_____到_____。
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻 到此单元。则SA应满足的条件是:最小为_____,最大为_____。
提示,反过来思考一下,当段地址给定为多少,CPU无论怎么变化偏移地址都无法寻到20000H单元?
检测点3
下面的3条指令执行后,CPU 几次修改IP? 都是在什么时候?最后IP中的值是多少?
mov ax,bx
sub ax,ax
jmp ax
习题答案
检测点一
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=6246H |
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 |
只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
mov ax,2
add ax,ax
add ax,ax
add ax,ax
检测点二
(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为__00010H_到1000FH__。
(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻 到此单元。则SA应满足的条件是:最小为1001H,最大为2000H___。
提示,反过来思考一下,当段地址给定为多少,CPU无论怎么变化偏移地址都无法寻到20000H单元?
SA<=1000H 或 SA>2000H
检测点三
下面的3条指令执行后,CPU 几次修改IP? 都是在什么时候?最后IP中的值是多少?
mov ax,bx
sub ax,ax
jmp ax
四次;分别在:
- 读取mov ax,bx后
- 读取sub ax,ax后
- 读取jmp ax后
- 执行jmp ax后