判断下述指令的正误。正确的打“√”,错误的打“×”。
1.MOV ES, 20H (X)
2.SHL BX, 4 (X)
3.PUSH 1122H (X)
4.DIV 1000 (X)
5.CMP AX, [SI][DI] (X)
6.SHR BX,CL ()
7.MOV DX,100H ()
8.MOVSW ()
9.ADD AX,BYTE PTR [SI] (X)
10.RCL AL,1 ()
11.MOV 300, ES:[BX+SI+100] (X)
12.POP IP (X)
13.SUB AX,BL (X)
14.MOV IP,BX (X)
15.ADD [SI],[BP] (X)
16.MOV AX,A[BX] ;A是一个已定义的数组名 ()有误
17.MOV AX,[BX+100] ()
18.MUL BX ()
19.REPE SCASW ()
20.LOOP LP1 ;LP1是一个已定义的标号 ()得分
阅卷人
二、填空题 1.XOR AX,BX,若运算结果( 非零 ),那么AX、BX内容必定不同。 2.某指令存放地址是3000:0056H,则物理地址是( 30056H )。 3.-17H的8位原码是( 10010001 )、反码是( 11101110 )、补码是( 11101111 )(用二进制形式填空)。 4.PC机中,有符号数都是用( 补 )码存储的。 5.指出下面指令源操作数的寻址方式 MOV AX,100 ( 立即寻址 ) MOV AX,[SI] ( 寄存器寻址) MOV AX,[SI+100] ( 寄存器相对寻址) MOV AX,[BX+SI] ( 基址+复址寻址) MOV AX,[BX+SI+100] ( 基址+复址相对寻址) 6.已知DS=1000H,SI=0200H,BX=0100H,[10100H]=11H,[10101H]=22H [10600H]=33H,[10601H]=44H,[10300H]=55H,[10301H]=66H [10302H]=77H,[10303H]=88H,下面每条指令执行后,AX=? MOV AX,1000H ( 1000H ) MOV AX,[BX+500H] ( 4433H ) MOV AX,[300H] ( 6655H ) MOV AX,[BX] ( 2211H ) MOV AX,[BX][SI] ( 6655H ) MOV AX,[BX+SI+2] ( 8877H ) 7.有一数据段定义如下: DATA SEGMENT X DB 15 DUP(?) L EQU $-X DATA ENDS 符号名L的含义是(数组x的元素个数 ///数组x数 ),它的值是( 15 ),EQU可以写成“=”吗?( 可以 )。三、分析题
1.PUSH BX PUSH DX POP BX POP DX 这段程序的功能是什么?
交换BX与DX的内容
2.MOV AX,-100 SAR AX,1 这段程序执行后AX的值是多少?
AX=-50
3.CMP AL,0 JGE K NEG AL K: .......... 这段程序的功能是什么?
求AL的绝对值,送到AL
4.MOV AX,100 PUSH AX POP BX 这段程序执行后BX的值是什么?
BX=100
四、编程序段
1.把AX中的有符号数乘以8(假定积不溢出)。
MOV CL,3
SAL DX,CL
或者
MOV BX,8
IMUT BX(不建议)
2.已知第一个32位数存放在CX,AX中,其中CX中是高16位,AX是低16位,第二个32位数存放在DX,BX中,DX是高16位,BX是低16位,编写程序段求这两个32位数的和,存放在CX,AX中,其中CX中是高16位,AX是低16位。
ADD AX,BX
ADC CX,DX
3.统计AX中二进制位为0的个数,结果存入BX。
MOV BX,0
MOV CX,16
K:LOOP LP
LP:
SHE AX 1
JC K
INC BX
得分
阅卷人
五、编程题
1.求一个字型数组X元素之和存入SUM单元(不考虑溢出)。
DATAS SEGMENT
X DW 3,8,6,4,5
N=($-X)/2
SUM DW ?
DATAS ENDS
2.X是一个字符串,编制一个完整程序,查找其中是否存在字符“A”,若存在,显示“YES”,否则显示“NO”。
6.SHR BX,CL ()
7.MOV DX,100H ()
8.MOVSW ()
10.RCL AL,1 ()
16.MOV AX,A[BX] ;A是一个已定义的数组名 ()有误
17.MOV AX,[BX+100] ()
18.MUL BX ()
19.REPE SCASW ()