试卷三
  一、 依据下面程序段:
ADD AL,BL
JO L1
JC L2
CMP AH,BH
JG L3
JB L4
JMP L5
给定AX、BX值如下,说明程序转向。

  AX BX   转向
1 14C8 808D
2 D082 9F70
3 427B 60DC
4 3F23 50D0
5 0042 FF3D

二、 假设X和X+2单元的内容为双精度数P,Y和Y+2单元的内容为双精度数Q,X、Y为低位字。下列程序段使2P>Q时(AX)=1,2P<=Q时(AX)=2。请将程序段填写完整。

MOV DX,X+2
MOV AX,X
ADD AX,X
ADC DX,X+2
CMP DX,Y+2
L2
L1
CMP AX,Y
L2
L1: MOV AX,1
JMP EXIT
L2: MOV AX,2
EXIT:

三、 假设(CS)=1000H,(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1,(20200H)=400H,(30200H)=1400H,(20202H)=4,(20203H)=0,(20204H)=202H,(21405H)=1234H,(21400H)=4321H。
执行下面程序段,填空回答问题:

MOV BP,256
PUSH ES:[ BX ] ;源操作数有效地址= H
MOV DI,3[ BX ][ SI ]
DEC SI
INC BYTE PTR [ DI ] ;目的操作数有效地址= H
MOV AX,[ DI ]
ADD -2[ BP ],AX ;目的操作数物理地址= H
POP BX
MOV AX,[ BX ][ SI ] ;执行完此句后,(AX)= H

四、填空。
DATA SEGMENT
DW 10 DUP(0)
ARRAY DW 50 DUP(?)
DW 0FFFFH
BUFFER DW 10 DUP(?)
DATA ENDS
;初始化略
;ARRAY数组输入数据,均为无符号数,并依从小到大排好序。程序段略
;BUFFER区输入无序无符号数10个。程序段略
;下面程序段将BUFFER中10个数依次插入ARRAY数组中,完毕后全体
;数据依然按从小到大的顺序排列。
LEA BX,BUFFER
LEA SI, ARRAY
MOV CX,10

MOV AX,[ BX ]
CMP AX,[ SI ]

NEXT: MOV DX,[ SI ]
MOV -2[ SI ],DX

CMP AX,[ SI ]

ANOTHER: MOV -2[ SI ],AX
MOV SI,DI

ADD BX,2
LOOP ROTATE
RET
;程序尾,略
  

五、现有
DATA SEGMENT
ARRAY DW 64 DUP(?)
   DW 5  DUP(?)
DATA ENDS
试编制一程序段,要求在ARRAY+8到ARRAY+10(两者都包括在内)单元中插入5个0。应充分利用数据段中的数据定义。