检测点1.1
1、 13
2、 1024、0到1023
3、 8192、1024
4、 2的30次方、2的20次方、2的10次方
5、 64、1、16、4
6、 1、1、2、2、4
7、 512、256
8、 二进制
检测点2.1
1、
AX= F4A3H
AX= 31A3H
AX= 3123H
AX= 6246H
BX= 826CH
CX= 6246H
AX= 826CH
AX= 04D8H
AX= 0482H
AX= 6C82H
AX= D882H
AX= D888H
AX= D810H
AX= 6246H
2、
mov al,2
add al,al
add al,al
add al,al
检测点2.2
1、00010H-1000FH
2、1001H、2000H
检测点2.3
4次
第一次是读取指令'mov ax,bx'
第二次是读取指令'sub ax,ax'
第三次是读取指令'jmp ax'
第四次是执行指令'jmp ax'后转移到偏移地址0处
IP=0
检测点3.1
1、
AX= 2662H
BX= E626H
AX= E626H
AX= 2662H
BX= D6E6H
AX= FD48H
AX= 2C14H
AX= 0
AX= 00E6H
BX= 0
BX= 0026H
AX= 000CH
2、
1.
MOV AX,6622H
JMP 0FF0:0100
MOV AX,2000H
MOV DS,AX
MOV AX,[0008]
MOV AX,[0002]
2.
CS = 2000H
IP = 0
AX = 6622H
CS= 0FF0H
IP= 0100H
AX= 2000H
DS= 2000H
AX= C389H
AX= EA66H
3.
数据和程序在内存中没有区别
CS:IP指向的信息是程序,被传送、运算等指令操作的是数据
检测点3.2
1、
MOV AX,2000H
MOV SS,AX
MOV SP,0010H
2、
MOV AX,1000H
MOV SS,AX
MOV SP,0
检测点6.1
1、
MOV CS:[BX],AX
2、
MOV AX,CS
MOV SP,36
POP CS:[BX]
检测点9.1
1、
DW 0,0
2、
BX
CS
3、
CS= 0006
IP= 00BE
检测点9.2
MOV CH,0
MOV CL,[BX]
JCXZ ok
INC BX
检测点9.3
INC CX
检测点10.1
1000H
0
检测点10.2
AX= 0006
检测点10.3
AX= 1010H
检测点10.4
AX= 11
检测点10.5
1、
AX= 3
2、
AX= 1
BX= 0
检测点11.1
ZF=1 PF=1 SF=0
ZF=1 PF=1 SF=0
ZF=1 PF=1 SF=0
ZF=1 PF=1 SF=0
ZF=0 PF=0 SF=0
ZF=0 PF=1 SF=0
ZF=0 PF=1 SF=0
检测点11.2
CF OF SF ZF PF
0 0 0 1 1
0 0 0 1 1
0 0 1 0 1
0 0 1 0 1
1 1 0 1 1
1 1 0 1 1
1 0 0 0 0
1 0 0 0 0
0 1 1 0 1
检测点11.3
1、
jb s0
ja s0
2、
jna s0
jnb s0
检测点11.4
AX=45H
检测点12.1
1、
0070:018B
2、
N*4
N*4+2
检测点13.1
1、
-32768~32767
2、
DISPLAY: PUSH BP
MOV BP,SP
ADD [BP+2],BX
POP BP
IRET
DISPLAYEND:NOP
检测点13.2
1、
错误 ROM是只读属性,无法写入
2、
错误 DOS是由INT 19H引导的,在DOS之前执行由BIOS提供的
检测点14.1
1、
MOV AL,2
OUT 70H,AL
IN AL,71H
2、
MOV AL,2
OUT 70H,AL
MOV AL,0
OUT 71H,AL
检测点14.2
SHL AX,1
MOV DX,AX
SHL AX,1
ADD AX,DX
检测点15.1
1、
PUSHF
CALL DWORD PTR DS:[0]
2、
CLI
MOV WORD PTR ES:[9*4],OFFSET INT9
MOV ES:[9*4+2],CS
STI
检测点16.1
A[SI]
B
B[2]
ADD SI,2
检测点16.2
MOV AX,DATA
MOV ES,AX
检测点17.1
正确
如果INT 16H中断例程中没有设置IF=1的指令将不会引发INT 9中断例程,INT 16H将会死循环
通过debug可以验证INT 16H中断例程中有设置IF=1