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 要求:写出有关指令语句。
11
参考答案: 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 SAR AX,1 D.以上都不是
4.下列指令执行后,ZF=1的指令是(A)。 A.MOV AX,0 B.OR AX,0
12
C.XOR AX,AX D.CMP AX,0
5.对寄存器AX的内容乘以4的正确指令序列是(B)。 A.SHR AX,1 SHR AX,1 B.SHL AX,1 SHL,AX,1 C.ROL AX,1 ROL AX,1 D.RCR AX,1 RCR AX,1
6.下面指令执行后,改变AL寄存器内容的指令是(D)。 A.TEST AL,02H B.OR AL,AL C.CMP AL,BL D.AND AL,BL
二、程序分析题(共40分,每题10分) 1.已知(AX)=3200H,(DX)=0A000H,执行下列程序段: NOT AX NOT DX ADD AX,1 ADC DX,0 问题:
(1)程序执行后,(AX)=( )(DX)=( ) (2)程序功能是什么? 答: (1)(AX)=(0CE00H) (DX)=(5FFFH) (2)双字长数DX,AX求补
2.设(DX)=1234H MOV CL,8 ROR DX,CL AND DX,0FFH CMP DX,12H
上述程序段运行后,(Dx)=( ),ZF=( ) 答:
(DX)=(12H),ZF=(1)
3.已知(AX)=0FF60H,CF=1 MOV DX,96 XOR DH,0FFH SBB AX,DX
执行上述指令序列后(AX)=( ),CF=( ) 答:
(AX)=965FH,CF=(0)
13
4.有下列程序段 MOV AX,10 ADD AX,AX MOV BX,AX MOV CL,2 SHL AX,CL ADD AX,BX
上述程序段执行后(AX)=( ),(BX)=( ) 答:
(AX)=00A0H,(BX)=(0020H)
三、程序填空(共10分,每题5分)
1.下列程序段将AX中值乘以9,请将程序填写完整 (1)__________ MOV CL,3
(2)____________ POP BX
ADD AX,BX 答:
(1)PUSH AX (2)SHL AX,CL
2.下列程序段求数组ARRAY的累加和。请将程序填写完整。 ARY DW 45H,68H,????,0ABC1H,9600H;共10项 COUNT DW 10 (1)__________ MOV CX,COUNT XOR AX,AX
AGAIN:ADD AX,[SI] ADD SI,2
(2)____________ 答:
(1)LEA SI,AKY (2)LOOP AGAIN
四、按要求编程(10分)
测试AL寄存器的D5和D0位,若同时为0,程序转向ZERO,执行AX减去BX;否则将AL清0,同时清CF和OF标志。写出程序段。 解:
TEST AL,00100001B JZ ZERO
SUB AX,AX JMP STOP
ZERO:SUB AX,BX STOP:
14
五、执行下列指令语句,把执行结果填在空格中(10分)
已知(DS)=2500H (SI)=00A0H (250A0H)=01H (250A1H)=96H 执行ROL WORD PTR[SI],1则 (250A0H)=( ),(250A1H)=( ),CF=( ) 答:
(250A0H)=(03H) (250A1H)=(2CH) CF=(1)
第九章 分支程序 一、单项选择题(共20分,每题5分)
1.段内直接转移指令采用的寻址方式是(B) A.直接寻址 B.相对寻址 C.绝对寻址 D.间接寻址 2.下列指令中不等价的是(C)
A.JA和JNBE B.JG和JNLE C.JL和JNG D.JBE和JNA 3.下列指令中等价的是(C)
A.JC和JO B.JNC和JNO C.JP和JPE D.JA和JG 4.条件转移指令的转移范围(A)
A.-128 -- +127 B.-32768 -- +32767 C.0 -- +255 D.0 -- +65535
二、判断题(正确的画,错误的画)(共15分,每题5分)
1.无条件转移指令对标志位无影响,而条件转移指令对标志位有影响。(×) 2.间接转移指令都可以通过寄存器来寻址。(×)
3.段间间接转移指令中,低地址的字送IP,高地址的字送CS。(√)
三、程序分析题(共10分,每题5分) 1.执行下列程序: MOV AX,9B47H MOV BX,0B568H ADD AX,BX JNO L1 JNC L2
SUB AX,BX JNC L3 JNO L4
JMP SHORT L5 问:
(1)程序执行后,(AX)= ? (2)程序转向哪个标号? 答:(1)9B47H (2)L5
15