宁夏大学汇编复习题

发布时间:2020-07-07   来源:文档文库   
字号:
一、单项选择题(本大题共20小题,每小题1分,共20
1.设A=B=C=D=,它们之间的关系是 A. C+D=B




B. A+D=B C. B=D




D. A>C>D
2 OFSF IFTF CFPF



OFSF
38088/8086存储器分段,每个段不超过 个字


个字节 兆个字节



个字节
4AL中已有压缩型BCD码,为实现对AL的减1操作,可选用的指令序列是 AL AL0
AAS

DAS AL1 AL1
AAS




DAS
5.要输入端口1234H中的8位数据,其指令应是( DX1234H DX1234H OUT DXAL

1N ALDX
AX1234H


DX
1234H
6.若AX=-15要得到AX=15应执行的指令是( AX AX AX



AX 78086/8088系统执行传送指令MOV
1 v1.0 可编辑可修改
A.不影响标志位
B.影响DF方向标志
C.影响SF符号标志 D.CF进位标志 8MOV AL79 ADD AL0B1H
上面指令执行后,设置的标志位CFOF的值是( =0OF=1 =1OF=1 =0OF=0



=1OF=0
9.已知AXBX中均为带符号数,当进行字相除时,下面指令或指令序列正确的是 BX







IDIV BX DXDX DIV BX


IDIV

BX
10.下列指令中操作数在代码段中的是 AL42H ALBL [BX]DI


[DI]
11REPE SCASB指令对字符串进行扫描,CX0时,扫描结束,那么表示
A.在字符串中遇上第一个AL中指定的字
B.在字符串中有一个AL中指定的字符 C.在字符串中有一个不是AL中指定的字
D.在字符串中遇上第一个不是AL中指令的字符
12下列指令执行后对源和目的操作数均无影响的是( [BX+2]AX

AX2467H

[SI]BX AXBX 13表示过程定义结束的伪指令是








14.下列有语法错误的语句是(
12H

4567H ˋBCDˊ


ˋCDˊ
15DB1 DB 8 DUP2 DUP33 DUP2


MOV AXWORD PTR DB1 [04H]

上面指令执行后,AX的内容是






16BUF1 DB 3 DUP02 DUP 123

COUNT EQU $ -BUF1

符号COUNT等价的值是(







17DA1 DW 2A05H DA2 DB 0FAH



MOV ALBYTE PTR DA1 SUB DA2AL
DA2



C.0F5H





18SS=338AHSP=450H执行PUSH BXPUSHF两条指令后,堆栈顶部的物理地址是(







19SP=0028H执行段内返回指令RET 6后,SP的内容是(



2 v1.0 可编辑可修改


20.条件转移指令JNBE产生转移的条件是 A. CF=0 AND ZF=0


B. CF=0 AND ZF=1 C. CF=1 AND ZF=0


D. CF=1 AND ZF=1
21.MOV BX0FFSET VAR指令完全等效的指令是(
MOV BXVAR LDS BXVAR LES BXVAR LEA BXVAR 22.在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是 .
WORD PAGE BYTE PARA
23.在汇编语言程序的开发过程中使用宏功能的顺序是(
②宏定义,宏展开
③宏定义,宏调用,宏展开 宏定义,宏展开,宏调用
24.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省 略的项是(
③操作数项 ④注释项13. MOV SP3210H PUSH AX
执行上述指令序列后,SP寄存器的值是
3211H 320EH 320FH 3212H
DW 10H DUP3 DUP210H35

v1.0 可编辑可修改
上述语句汇编后,为变量BUF分配的存储单元字节数是(
NEC AH
NOT AL 80H 100H 124 192 二、简答题(本大题共3小题,每小题2分,AH= ,AL= 6分)
1假设DS=2000HCOUNT=0100HSI=0030H指令MOV AXCOUNT[ST]

①写出源操作数的物理地址
MOV AX[COUNT+SI]
2.下面指令有无错误若有错,是什么错误
MOV AX[SI][DI] CMP [SI][BX]
3条件转移指令的判断条件除标志位PF还有哪几个标志位
三、程序分析题(每小题6分,共36分) l.已知 AX=0FF60HCF=1 MOV DX96 XOR DH0FFH SBB AXDX
AX= ,CF 2.设寄存器ALBLCL中内容均为76H XOR AL0FH AND BL0FH OR CL0FH
AL= BL= CL= 3.已知AX=0A33AHDX=0F0F0H AND AHDL XOR ALDH
3 4. DATA SEGMENT
S9








DB 0,1,2,3,4,5,6,7,8,9 DATA ENDS :
LEA SIS9 LEA DIS9+1 MOV CX5
LOP MOV AL[SI] XCHC AL[DI] MOV [SI]AL ADD SI2 ADD DI2 LOOP LOP
上述程序段运行后,S9开始的10个字节存储单元内容是什么 5. MOV AL38H MOV BL49H CALL SUB0 INC AL DEC CL ......... SUB0 PROC ADD ALBL

v1.0 可编辑可修改
MOV CLAL DAA RET SUB0 ENDP
LOPSHL AX1
RCL DX1 LOOP LOP
上述程序段执行后,DX= AX= 10.已知DX=0A476HCX=0302HCF=1
OR DXDX AL= CL= 6ADR DW 1234H5678H

LEA SIADR LDS BXADR
设变量ADR的偏移地址是100H上述两条指令执行后:SI= BX= 7.已知DSES指向同一个段,且当前数据段从0000H00FFH单元内容分别为010203,…,0FF00H。问下列程序段执行后,0000~0009H的内容是些什么值。 MOV SI0000H MOV DI0001H MOV CX0080H CLD REP MOVSW
8STR1 DB ˋCOMPUTERNDPASCALˊ SCA DB ˋNˊ



LEA DISTR1 MOV ALSCA MOV CX10H CLD
REPNE SCASB NEXT:……
程序运行到NEXTCX= ZF= 9.已知AX=0FFFFHDX=0001H
MOV CX2
4 RCR DXCL XCHG CHCL

RCL DXCL
上述程序段执行后,DX= CF=

11MOV AX10
SHL AX1 SHL AX1 MOV BXAX MOV CL2 SHL AXCL ADD AXBX
上述程序段执行后,BX= AX= 12.已知AX=78HBX=0804H
SHR BX1 AND BX0F0FH MOV CX4 LOPXCHG BHBL
DIV BL SAL AX1 LOOP LOP
上述程序段执行后,AX= BX= .改错. 阅读下列数据传送程序段,改正使用不当的语句
A DB 35,47,2AH,'XYZ' B DB N DUP(0 N EQU $-A MOV SI, A

v1.0 可编辑可修改
MOV DI, B
MOV CX, LENGTH A LP: MOV AX, [SI] MOV [DI], AX PUSH AX MOV DS ,AX MOV CX , N
INC SI INC DI DEC CX LOOP LP
.程序填空题(每空3,18 1.下面是程序段是判断寄存器AHAL中第3位是否相同,如相同,AH0,否则AH置全1.试把空白处填上适当指令.
AND AH , 08H
MOV AH , 0FFH JMP NEXT ZERO: MOV AH, 0 NEXT : ........
2.有一个首址为A的字数组,完成从大到小的排序.
DATAREA SEGMENT A DW N DUP( DATAREA ENDS PROGRAM SEGMENT MAIN PROC FAR START :
PUSH DS SUB AX, AX
5 LOOP1: MOV DI ,CX MOV BX ,0 LOOP2: MOV AX ,A[BX]
CMP JGE CONTINE
XCHG AX , MOV A[BX] , AX CONTINE: ADD BX
LOOP LOOP2

LOOP LOOP1 RET MAIN ENDP END START
3.该程序段的功能是求出存放在DXAX的双精度数的绝对值,并将结果保存在AA2单元中,请在空白处填写指令。 [1] JNS RESULT NOT AX NOT DX INC AX [2] RESULT:
MOV A , AX

MOV A+2 , DX
4 下面程序执行后,AL的内容为ARRAY数组中的最小数,请在空白处各填上一条指令。
ARRAY DB 35-3-245-86


MOV CX7 MOV DI0 MOV ALARRAY
A1 INC DI
JLE A2
MOV ALARRAY [DI]
A2

5.下面程序段是判断两个存储单元是否同为正数,如是,则AX置全0,否则AX置非0。试在空白处各填上适当的一条条件转移指令(两空白处要利用不同的标志位选用不同的条件转移指令) VAR1 DW ×××× VAR2 DW ××××

MOV AXVAR1 MOV BXVAR2 XOR AXBX



TEST BX8000H

MOV AX0
NEXT:……
6.BUFF为首地址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中.
BUF
DB
6 v1.0 可编辑可修改
5,6,7,58H,62,45H,127,....... COUNT EQU $-BUF MAX DB . .
MOV BX ,OFFSET BUF
MOV CX ,COUNT -1
MOV AL ,[BX] NXET: INC CX
JAE NEXT MOV AL, [BX] NEXT: DEC CX
MOV MAX , AL

六、编制程序题(第1小题8分共16分) l.现有 data segment
array dw 64 dup( dw 5 dup(
data ends
,array+8array+10(两者都包括在内单元中插入50.(提示:先把从array+8单元开始的数据后5个单元,然后再在规定位置插入0
2.从键盘上输入来宾的姓名Mr.×××或Mrs.×××,当按动任意键时,屏幕上显示


:
"Welcome Mr.×××".
3.定义宏指令并展开宏调用:
宏指令JOE把一串信息MESSAGE ”存入数据区XK. 宏调用I=0
JOE TEXT I JOE TEXT I JOE TEXT I
4.BUF1BUF2两个数据区中,各定义有10个带符号字数据,试编制一个完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首的数据区中。 DATA SECMENT
BUF1 DW 562454 189 8…… BUF2 DW 45 23124 345 265,……
SUM DW 10 DUP0 DATA ENDS
5. 改错. 阅读下列数据传送程序段,改正使用不当的语句
A DB 35,47,2AH,'XYZ' B DB N DUP(0 N EQU $-A MOV SI, A MOV DI, B
MOV CX, LENGTH A LP: MOV AX, [SI]
7 v1.0 可编辑可修改
MOV [DI], AX INC SI INC DI DEC CX
LOOP LP
6.内存中由SOURCE指示的个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数 组的数据个数,结果存放在RESULT指示的内存区域。存放形式为正数个数在前,其后跟正数组元素,然后是负数个数及负数数组元素.
7从键盘输入一系列字符,以字符’$’为结束符,然后对其中的非数字字符计数,并显示出计数结果

8.STRINGSTRING+99单元中存放着一个字符串,并编写一个程序,测试该字符串中是否存在数字.如有数字则把DL的第51,否则将该位置0
9.统计串中的空格个数和逗号的个数. 11. . 用地址表转移表实现下列C语句,中变量AB是有符号的整型变量: switch(a%8
{ case 0 :b=32 ; break; case 1:
case2: b=b+43; break; case3: b=b*a; break; case4: b-- ; break; case5:

case6:
case7: printf("Function 5_6_7 "; break; } }

汇编语言考试复习答案
一、单项选择题(本大题共20小题,每小题1分,20
1 C 2. B 3 D 4D 6 A 7 A 8. D. 9 B 11 D 12 D 13A 14C 16 B 17. C 18 A 19C 21. D 22. D 二、简答题
1 ①物理地址:20130H(1 ②可以(1
2. ①错,不能同时出现[SI][DI](1 ②错,存储单元之间不能直接比较(1 3. OFZFSF,和CF的标志位(2

三、程序分析题
1.执行上述指令序列后,AX= 0 ,CF0 2.执行上述指令序列后,AL= 79H BL= 06H CL= 7FH
3执行上述指令序列后,AH=60H ,AL= 35H 4. S9 DB 1,0,3,2,5,4,7,6,9,8
5.上述程序段运行后,AL= 88H CL= 80H
8 v1.0 可编辑可修改
6.上述程序段运行后, CX= 44AAH DX= 44D5H SI= 100H BX= 1234H
7(0单元开始的内容是01010202040406060808
8. 程序运行到NEXTCX=7 ZF= 1 9. 上述程序段执行后,DX=0007H AX=0FFFCH 10. 上述程序段执行后,DX=48ECH CF=1 11. (1BX=4028H (2AX=20000C8H(
12. (1BX=4028H (2AX=20000C8H(
.程序填空题(每空3,18
1. XOR AH,AL JE ZERO
2. DEC CX AX,A[BX+2] A[BX+2] MOV CX,DI
3.
4. CMPAL,ARRAY[DI] LOOP Al 5. JS NEXT JNE NEXT
6. CMP AL ,[BX] JNZ LOP1

v1.0 可编辑可修改
六、编制程序题(第1小题8分共16分)
1. CODE SEGMENT
ASSUME ,DS:DATA ,ES:DATA START: PUSH XOR AX,AX PUAH AX MV AX,DATA MOV DS ,AX
MOV ES,AX
MOV SI,OFFSET ARRAY+7EH MOV DI,OFFSET ARRAY+88H STD MOV CX,60 REP MOVSW
MOV BX,OFFSET ARRAY+8H MOV CX,5
NEXT: MOV WORD PTR[BX],0
ADD LOOP NEXT RET
CODE ENDS END STARAT 2. SEGMENT MAXLEN DB 16 ACTLEN DB
NAMES DB 16 DUP( MESS1 DB WELCOME MESS2 DB 16 DUP( CRLF DB 0DH,0AH,$ DSEG ENDS CSEG SEGMENT MAIN PROC FAR
ASSUME CS:CSEG,DS:DSEG,ES:DSEG PUSH DS SUB AX,AX PUSH AX


v1.0 可编辑可修改
MOV AX,DSEG MOV DS,AX MOV ES ,AX CLD
BEGIN:MOV CX,16
MOV AL,20H LEA DI,MESS2 REP STOSB LEA DX,MAXLEN MOV AH,0AH INT 21H MOV AH,7 INT 21H CMP AL, 3 JE EXIT
DISPLAY: MOV CH,0 MOV CL,ACTLEN LEA SI,NAMES LEA DI,MESS2 REP MOVSB MOV AH,09H LEA DX,MESS1 INT 21H EXIT:RET MAIN ENDP CSEG ENDS END MAIN MACRO A,J
MARY A,%J J=J+1 ENDM
MARY MACRO X,K
X&K DB MESSAGE NO.&K ENDM 宏展开:I=0
JOE TEXT I


v1.0 可编辑可修改
+ TEXT0 DB MESSAGE NO.0 JOE TEXT I
+ TEXT1 DB MESSAGE NO.1 JOE TEXT I
+ TEXT2 DB MESSAGE NO.2

SEGMENT PATA STACK
DW 20H DUP(0
STACK1 ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START: MOV AX,DATA MOV CX,10 LEA SI,BUF1 LEA DI,BUF2 LEA BX,SUM NXET: MOV AX,[SI] MOV DX,[DI] TEXT AX,8000H JE TDX NEG DX TDX:TEST DX,8000H
NEG DX
ADDS:ADD AX,DX
MOV [BX],AX ADD SI,2 ADD DI,2 ADD BX,2 LOOP NEXT MOV AH,4CH INT 21H
CODE ENDS

END START

7. DSEG SEGMENT BUFF DB 50 DUP(


v1.0 可编辑可修改
COUNT DW 0 DSEG ENDS ..
BEGIN:LEA BX,BUFF
MOV COUNT , 0
INPUT:MOV AH,01
INT 21H MOV [BX] ,AL INC BX
CMP AL ,$ JNZ INPUT LEA BX ,BUFF
NEXT: MOV CL ,$
JZ DISP CMP CL,[BX] JZ DISP CMP CL,30H JB CONT CMP CL,39H JBE NXET
CONT:INC COUNT
JMP NEXT
DISP: ……..

SEGMENT
STRING DB 100 DUP( DSEG ENDS CSEG SEGMENT MAIN PROC FAR
ASSUME CS:CSEG,DS:DSEG,ES:DSEG START: PUSH DS SUB AX,AX PUSH AX
MOV AX,DSEG MOV DS,AX MOV ES,AX


BEGIN: MOV CX,100 MOV SI ,0 REPEAT: MOV AL,STRING[SI] CMP AL,30H JB GOON CMP AL,39H JA GOON OR DL,20H JMP EXIT
GOON:INC SI LOOP REPEAT AND DL,0DFH EXIT: RET MAIN ENDP CSEG ENDS END START SEGMENT
STRN DB Aabcd BE,RES,…’ SPCLN DB DELILN DB DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DSAX MOV OFFSETG STRN MOV DX,0 AGAIN:MOV AL,[SI] CMP AL,$ JE DONE CMP AL,20H JNE NEXT INC DH JMP CONTI NXET:CMP AL,2CH JNE CONTI

v1.0 可编辑可修改
.$
v1.0 可编辑可修改
INC DL COUNTI: INC SI JMP AGAIN DONE: MOV SPCLN ,DH MOV DELILN,DL MOV AH,4CH INT 21H CODE ENDS END START
10.编一程序段将BUF字节单元中的数折成高低四位,并且将分离出的高四位和低四位分别放于BUF+1BUF+2字节单元的低四位上。 MOV ALBUF MOV BUF+2,AL AND BUF+20FH MOV CL4 SHR ALCL
M0V BUF+1AL SEGMENT A DW B DW
Table DW case0,case12,case12,case3 DW case4,case567,case567,case567, MSG DB Function 5_6_7$ DATA ENDS CODE SEGMENT ... MOV AX,A MOV BX,AX AND BX,7 SHL BX,1 JMP Table[BX] Case0: MOV B,32D JMP NEXT CASE12: ADD AX,43D MOV B,AX


v1.0 可编辑可修改
JMP NWXT
CASE3: SHL AX,1 MOV B,AX JMP NEXT CASE4: DEC B JMP NEXT CASE567:LEA DX,MSG MOV AH,9
INT 21H
JMP NEXT NEXT:... CODE ENDS






本文来源:https://www.2haoxitong.net/k/doc/623d0c56690203d8ce2f0066f5335a8103d266e8.html

《宁夏大学汇编复习题.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式