6.MOV SP,3210H
PUSH AX执行上述指令序理后,SP寄存器的值是(B)。 A.3211H B.320EH C.320FH D.3212H
7.执行指令PUCH CX后堆栈指针SP自动(C) A.+1 B.不操作 C.-2 D.-1
三、简答题 (30分) 已知数据段定义如下: DATA SEGMENT VA DB 10H
VB DW 3*20
MSG DB ‘HELLO!’
COUNT EQU 15
BUF DW COUNT DUP(5,3 DUP(1,2),0) DATA ENDS 问题:
(1)执行MOV BX,0FFSET VA后,(BX)= (2)执行MOV CX,TYPE BUF后,(CX)= (3)用一条指令将字母‘O’取到AL中. (4)经汇编后,BUF占有的存储空间是字节 答:
(1)0
(2)2
(3)MOV AL, MSG+4 (4)240
四、执行下列指令语句,把执行结果填在空格中(20分) 已知(SS)=3000H (SP)=200H (AX)=785AH 先执行PUSH AX,再执行PUSH BX,此时 (SS)= ( )
(SP)= ( )
数12H存放的物理地址是( ) 答:
(SS)= (3000H) (SP)= (1FCH)
数12H存放的物理地址是(1FDH)
第七章 算术运算程序
一、单项选择题(共24分,每题2分)
1.十进制数运算调整指令AAS可以紧跟在(A)之后: BX)=1234H,
(
A.SBB B.DEC
C.CMP D.NEG
2.除法调整指令AAD是对(C)调整:
A.AX中组合的十进制被除数 B.AL中组合的十进制的商数 C.AX中未组合的十进制被除数 D.AL中未组合的十进制的商数
3.在多字节加减运算时,特别要注意标志(B)对运算的影响: A.AF B.CF
C.SF D.OF
4.设(DS)=8260H (DI)=3500H,指令DEC WORD PTR[DI]操作数的物理地址是(B) A.11760H B.85B00H C.86100H D.以上都不时 5.指令ADD ES:[DI],AX和存放在(B) A.寄存器 B.附加段 C.堆栈段 D.代码段
6.设VAR是数据段中定义的字节变量,指令MUL VAR乘积存放在(A) A.AX B.BX
C.CX D.DX
7.设(DH)=20H,执行NEG DH指令后,正确的结果是(C) A.(DH)=20H CF=1 B.(DH)=20H CF=0
C.(DH)=0E0H CF=0
D.(DH)=0E0H CF=1
8.设DS=8225H,DI=3942H,指令NEG BYTE PTR [DI]操作数的物理地址是(A)
A.85B92H B.86192H C.BB690H D.12169H
9.执行INC指令除对于SF.ZF有影响外,还要影响的标志位是(A) A.OF,AF,PF B.OF,AF,CF
C.OF,PF,CF D.AF,PF,CF
10.设DH=10H,执行NEG DH指令后,正确的结果是(D) A.DH=10H CF=1 B.DH=10H CF=0 C.DH=10H CF=0 D.DH=0F0H
11.执行除法指令后,影响的标志位是(D)
A.CF,OF B.SF,ZF
C.CF,OF,SF D.AF,CF,OF,PF,SF,ZF都不确定 12.执行下面指令序列后,结果是(A) MOV AL,82H CBW
A.AX=0FF82H B.AX=8082H C.AX=0082H D.AX=0F82H
二、判断题(正确的画,错误的画)(共6分,每题2分) 1.指令AAA必须紧跟在加法指令之后使用。(√) 2.INC指令之后可以使用加法调整指令。(×) 3.AAD指令放在除法指令之后。(×)
三、程序分析题(10分)
MOV AX,0 MOV BX,1 MOV CX,5
LOP:ADD AX,BX
ADD BX,2 LOOP LOP 问题:
(1)程序的功能是什么(可用算式表示)? (2)运行后,(AX)=? 答:
(1)1+3+5+7+9 (2)25
四、按要求编程(共40分,每题10分) 1.设 X.Y.Z.W为十六位有符号数编程计算: W←((X+Y*Z)/8)-Y除法余数丢弃 若ZF=1,程序转EQ;否则转NOT_EQ。 参考答案: MOV AX,Y
IMUL Z
MOV BX,DX MOV CX,AX MOV AX,X
CBW
ADD AX, CX ADC DX, BX MOV CX,8 IDIV CX SUB AX,Y MOV W,AX JZ EQ NOT_EQ:
2.编写一程序段,计算x2+y-5多项式的值。 说明:多项式存于AX中,x.y是无符号数。
数据说明:x DB 0CH y DB 06H 参考答案: MOV AL,x
MUL x
ADD AL,y ADC AH,0
SUB AX,5
3.设X,Y,Z,W存放16位带符号数,编程计算X*Y-Z的值并送到W 要求:写出有关指令语句。 参考答案: MOV AX,X IMUL Y SUB AX,Z SBB DX,0 MOV W,AX
五、执行下列指令语句,把执行结果填在空格中(共20分,每题10分) 1.已知(AL)=0FFH, (BL)=10H。执行MUL BL则 (AH)=( ) (AL)=( ) 答:
(AH)=(0FH) (AL)=(0F0H)
2.执行下列指令语句,把执行结果填在空格中。 已知(DS)=5000H,(BX)=0100H,(DI)=0002H,(50100H)=45H,(50101H)=68H,(50102H)=0A1H,(50103H)=14H
先执行MOV AX,[100H](AX)=( ); 再执行ADD AX,[BX+DI](AX)=( ),CF=( ),OF=( ) 答:
(AX)=(6845H)
(AX)=(7CE6H),CF=(0),OF=(0)
第八章 逻辑运算
一、单项选择题(共30分,每题5分)
1.下列指令执行后,不影响标志位的指令是(A) A.PUSH AX B.ADD DX,CX C.XOR AX,AX D.CMP AX,5
2.下列指令执行后,一定能使CF=0的指令是(B) A.NOT AX B.OR AX,AX
C.SUB BX,SI D.ROL AX,1
3.对寄存器AX中的值除以2正确的指令序列是(C) A.MOV AX,-51 SHR AX,1 B.MOV AX,-51 ROR AX,1 C.MOV AX,-51