汇编复习题Word下载.docx
《汇编复习题Word下载.docx》由会员分享,可在线阅读,更多相关《汇编复习题Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
A、MOVAX,1200H ( )( )
B、CMPWORDPRT[SI],120H ( )( )
C、ADDAX,14[BX] ( )( )
D、SUB[BX+DI],CX ( )( )
E、ANDBX,BUF ( )( )
F、LEADI,[SI] ( )( )
G、XOR[BX+SI+3],DX ( )( )
a.立即寻址;
b.寄存器寻址;
c.直接寻址;
d.寄存器间接寻址;
e.寄存器相对寻址;
f.基址变址寻址;
g.相对基址变址寻址.
19、某存储单元的地址为3A80:
13EBH,其中的3A80是______地址,13EB是______地址;
该存储单元的物理地址是______。
若段地址改变为20D4,则该存储单元的逻辑地址为______。
20、十进制数-100的8位二进制数的补码为( )。
A、11100100 B、01100100 C、10011100 D、11001110
21、下列是8位二进制数的补码,其中真值最大的是( )。
A、10001000 B、11111111 C、00000000 D、00000001
22、16位有符号数的补码所表示的十进制数的范围是( )。
A、-32767~+32768 B、-32768~+32767 C、-65535~+65536 D、0~65535
23、以下指令中,执行后AL中的数据不变的是( )。
A、ANDAL,CL B、ORAL,AL C、XORAL,AL D、CMPAL,AL
E、ADDAL,0 F、ANDAL,0FFH G、XORAL,0FFH H、ORAL,0FFH
24、下列指令中,执行后,不改变标志位CF的是( )。
A、NOTAL B、ANDAL,AL C、SALAL,1 D、MULAL
E、MOVSB F、INCAL G、POPAX H、POPF
25、下列指令中,执行后,不改变标志位ZF的是( )。
A、CMPAL,BL B、ANDAL,AL C、TESTAL,0FFH D、RORAL,CL
26、执行指令CALLSUBB时,所要保护的断点在______寄存器中,而执行指令CALLFARPTRSUBB时,所要保护的断点在____________寄存器中。
二、根据给定的条件写出指令或指令序列:
1、将一个字节的立即数送到地址为NUM的存储单元中。
2、将一个8位立即数与地址为BUF的存储单元内容相加。
3、将地址为ARRAY的存储单元中的字数据循环右移一位。
4、将16位立即数与地址为MEM的存储单元中的数比较。
5、测试地址为BUFFER的字数据的符号位。
6、将AX寄存器及CF标志位同时清零。
7、用直接寻址方式将首地址为ARRAY的字数组中第5个数送往寄存器BX中。
8、用寄存器寻址方式将首地址为ARRAY的字数组中第5个数送往寄存器BX中。
9、用相对寻址方式将首地址为ARRAY的字数组中第8个数送往寄存器BX中。
10、用基址变址寻址方式将首地址为ARRAY的字数组中第N个数送往寄存器BX中。
11、将首地址为BCD_BUF存储单元中的两个压缩BCD码相加,和送到第三个存储单元中。
三、按照给定的条件为程序定义一个数据段,并画出存储单元的示意图:
1、STR是字符串THISISADATA_SEGMENT。
2、DAT1是字节变量,初值为23,4BH,126,0D3H。
3、DAT2是16进制数字变量,初值为100,255,2DUP(3,5)
4、LEN是以上存储单元的字节数。
四、写出完成下列功能的程序段:
1、将AL中的两位BCD码分离,分别存放DL和DH中。
2、将DL中的4位二进制数转换成16进制数的ASCII码。
3、将AL中的8位二进制数高4位和低4位交换。
4、将AL和BL中的非压缩BCD码合并成一个压缩的BCD码,存在AL中。
5、将AL中的8位有符号数转换成它的绝对值。
6、用串扫描指令在一个字符串中查找字符'
*'
。
7、将输入的大写字母改变成小写输出。
8、输入一个字母,然后输出它的后续字母。
9、将DX:
AX寄存器中的32位数向右移两位。
10、完成计算7×
8。
五、分析指令和程序。
1、已知SS=2000H,SI=1000H,AX=0ABCDH,SP=0100H,BP=00FEH,给出下列指令执行后,指定寄存器中的内容,并画出指令执行中堆栈的变化示意图。
PUSHAX AX= SP=
PUSHSI SI= SP=
POP AX AX= SP=
PUSHBP BP= SP=
POP SI SI= SP=
POP BP BP= SP=
POP BX BX= SP=
2、已知CS=2300H,IP=32B4H,且在数据段中有定义:
ARYDB0AH,28H,00H,3FH
分别给出下列指令执行后的CS和IP的内容:
A、LEABX,ARY
JMPWORDPTR[BX] CS= IP=
B、MOVBX,OFFSETARY
CALLWORDPTR[BX] CS= IP=
C、MOVBX,OFFSETARY
JMPDWORDPTR[BX] CS= IP=
3、
MOVAL,0
MOVBL,0
MOVCX,10
L1:
INCBL
INCBL
ADDAL,BL
LOOPLI
HLT
程序的功能是______________________,画出程序的流程图。
4、
XDB14
YDB4DUP(?
)
MOVSI,0
MOVAH,0
MOVAL,X
MULAL
MULAX
MOVWORDPTR[SI],AX
INCSI
MOVWORDPTR[SI],DX
程序执行后X和Y的关系是_______________,画出程序的流程图。
5、
MOVAX,4BD5H
MOVDL,0
MOVCX,16
SHLAX,1
JC L2
JMPL3
L2:
INCDL
L3:
LOOPL1
程序的功能是___________,程序执行后BL=_________,DL=_________,AX=_________。
画出程序的流程图。
6、
XORDX,DX
MOVAH,1
INT21H
CMPAL,'
$'
JZ BACK
CMPAL,30H
JB L1
CMPAL,39H
JA L1
ANDAL,0FH
ADDDL,AL
ADCDH,0
JMPL1
BACK:
HLT
程序的功能是______________________________,画出程序的流程图。
六、编写汇编语言程序,要有完整的格式(要有必要的数据段和代码段)
1、在屏幕上显示两个字符串,两个字符串要在不同的行。
Thisisaprogram
Diskoperationsystem
2、用移位指令将X乘以30,结果存入Y单元。
3、设有三个数A,B和C,如果其中一个为0,将另外两个也清零,否则求它们的和,存入D单元中。
4、在一个数组中查找最大数。
5、用查表法计算Y=X*X-2*X。
6、用字符串操作指令将有符号数数组ARY中的数转换成绝对值存回原单元。
7、输入一个字符串,将其中的小写字母转换成大写字母后输出。
8、从键盘输入一个一位数,然后响铃该数的次数。
9、从键盘输入一个字符串,再将它按相反次序输出在下一行。
10、统计一个16位二进制数中1的个数,并将结果输出。
11、用字符串扫描指令查找字符串中的第3个空格,找到显示FOUND,否则显示NOTFOUND。
12、从键盘输入两个一位数,求它们的和,将结果输出,分别用子程序完成
《汇编语言程序设计》考试题型例举
一、单项选择题
1.在循环(LOOP)和串处理指令中,用作计数器的寄存器是()
A.AX
B.BX
C.CX
D.DX
2.无条件段间转移指令的执行改变()
A.SP
B.SS和SP
C.IP
D.CS和IP
3.指令MOVAX,[BX][SI]中源操作数采用的寻址方式是()
A.寄存器
B.寄存器相对
C.寄存器间接
D.基址变址
二、填空题
1.8086/8088的地址总线有_______位,其最大的内存空间是_______字节。
2.在8086/8088寄存器组中,数据寄存器包括AX,BX,_______和_______。
3.在执行串处理指令时,为了使地址自动增量,应执行指令:
_______,该指令使得方向标志位_______。
三、简答题
1.简述8086/8088对内存的分段管理技术。
2.8086/8088CPU中,有哪些可编程寄存器。
3.简述在计算机上运行汇编语言程序的基本步骤。
四、改错题
1.指出下列语句的错误,并说明原因
(1)MOVBYTEPTR[BX],1024
(2)MOV[BX],[SI]
(3)SARAL,5
(4)MUL11H
(5)JNLFARPTRNEXT
(6)POPCS
2.找出下面程序中的错误,并改正
已知附加段中字符串STRING(长度为15)定义如下:
STRINGDB‘Computer&
math’
下面程序把STRing中的“&”用空格符代替。
MOVCX,15
LEADI,STRING
MOVAL,‘&
’
CLD
NEXT:
CMPSB
JNZC1
MOVBL,20H
MOVES:
[DI],BL
C1:
DECCX
JNZNEXT
五、程序分析题
1.假设程序中数据定义如下:
ORG0028H
PARTDW?
PNAMEDWDUP(0,2DUP(0,?
),$+2)
COUNTDD?
LENGEQU$-PART
(1)问:
Leng的值是_______,其含义是_______。
(2)指令MOVAX,[PART+12]执行后,(AX)=_______。
2.分析下面程序,指出该程序的功能,并画出流程图。
LEABX,TAB
MOVAX,0?
MOVAL,N
MOVDX,AX
ADDAX,AX
ADDAX,DX
ADDBX,AX
JMPBX
TAB:
JMPNEARPTRL0
JMPNeaRPTRL1
JMPNeaRPTRL7
汇编语言模拟试题
一、填空题(每空1分,共40分)
1.设(DS)=2000H,(ES)=3000H
(SS)=4000H,(BX)=1000H
(BP)=1000H,(ST)=0001H
(DI)=0002H
(21000H)=1234H,(21002H)=5678H
(31000H)=9ABCH,(31002H)=0DEF0H
(41000H)=3456H,(41002H)=789AH
计算下列各指令中源操作数的物理地址,并指出指令执行后AX寄存器的内容。
MOVAX,ES:
[1000H]
物理地址(AX)=
MOVAX,[BX]
MOVAX,[BP+DI]
MOVAX,[DX][SI]
物理地址(AX)=
2.设(DS)=2000H
ORG2100H
TABLEDB10,3*5,10H
ADDRESSDDTABLE
ARRAYDW2DUP(3827H,?
写出下列各单元的内容:
(1)(2100H)=
(2)(2101H)=
(3)(2102H)=
(4)(2103H)=
(5)(2104H)=
(6)(2105H)=
(7)(2106H)=
(8)(2107H)=
(9)(2108H)=
(10)(2109H)=
(11)(210AH)=
(12)(210BH)=
(13)(210CH)=
(14)(210DH)=
(15)(210EH)=
3.下面的程序通过子程序调用,将数组ARRAY的COUNT个元素求和,并将结果送SUM单元,分析这段程序后,补充完整程序中的空格部分。
|
SUMDW?
ARRAYDW200DUP(?
COUNTDW200
MOVDX,OFFSETSUM
PUSHBX
MOVBX,OFFSETARRAY
MOVBX,OFFSETCOUNT
CALLSUMPRO
SUMPROPROCNEAR
PUSHAX
PUSHSI
PUSHDI
PUSHBP
MOVBP,SP
MOVSI,[BP+_____];
得到ARRAY的地址
MOVDI,[BP+_____];
得到COUNT的地址
MOVCX,[DI]
得到SUM的地址
XORAX,AX
ADDAX,[SI]
LOOPNEXT
MOV[],AX;
送求和结果
POP
POPDI
POPSI
POPAX
RET
SUMPROENDP
请填出用堆栈传送参数地址时,堆栈最满时的状态:
____________
|___________|
|___________|
二、判断题(每小题1分,共10分)[下面指令中出现的VAL为一字变量]
1.任何存储单元都只有唯一的段地址的偏移地址。
()
2.MOVCL,[BL]()
3.REPMOVSES:
WORDPTR[DI],DS:
[SI]()
4.RCR[BX+SI],CL()
5.MOVBX,VAL:
[DX]()
6.MOVDS,[BP+DI]()
7.JMPDWORDPTR[BX+SI]()
8.PUSHOFFSETVAL()
9.MOVCL,HIGHVAL()
10.TESTDL,00000100B()
三、简答题(每小题5分,共15分)
什么是中断?
什么是中断源?
什么是中断向量?
指令和伪指令的关系是什么?
I/O设备有哪几种数据传送方式?
它们各自有什么特点?
四、编程题(5分)
编写宏指令CLEARBLOCK,完成用空格符清除某一字符区的工作,字符区首地址及其长度为变元。
五、编程题(30分)
从键盘读入连续n个字符(0≤n≤150),将这串字符中的小写字母转化为大写字母后重新在屏幕上显示,然后统计这串字符中非数字字符(‘0’----‘9’以外的字符)的个数并以16进制的形式显示出来,请编制完整的汇编语言程序完成上述功能。
试题1从下列叙述中选择正确的叙述(10分)。
(1)汇编语言是用符号表示的面向机器的语言,因此它是机器语言。
(2)汇编语言是一种高级语言,其程序源代码必须编译成目标代码,程序才能执行。
(3)连接程序是把若干个模块连接起来成为可执行程序的系统程序。
(4)堆栈以先进后出的方式工作。
T
(5)零标志ZF=1,表示计算结果为0。
(6)汇编语言是最快最有效的计算机语言,在自动控制、通信与接口中是必不可少的。
(7)汇编语言与机器低层关系不大,所以它具有很好的移植性。
F
(8)8088/8086的控制寄存器有IP和PSW,它们都是16位寄存器。
(9)SP是保存当前栈顶地址的寄存器。
(10)将汇编语言源代码转换成机器目标代码的过程称为编译。
F
正确的答案:
(1)F,
(2)F,(3)T,(4)T,(5)T,(6)T,(7)F,(8)F,(9)T,(10)F
试题2选择填空题(20分)
设(DS)=2000H,(CS)=8000H,(BX)=1000H,(SI)=2000H,COUNT=3000H,
(20000H)=10H,(20001H)=0AH,(21000H)=20H,(21001H)=0BH,
(22000H)=30H,(22001H)=0CH,(23000H)=30H,(23001H)=0CH,
(24000H)=40H,(24001H)=0DH,(25000H)=50H,(25001H)=0EH,
(26000H)=60H,(26001H)=0FH,。
下列指令执行后,按要求填空。
(1)MOVAX,BX(AX)=
(2)MOVAX,[2000](AX)=
(3)MOVAX,[BX](AX)=
(4)MOVAX,COUNT[SI](AX)=
(5)MOVAX,COUNT[BX][SI](AX)=
(6)JMP[BX][SI](IP)=
(7)JMPBX(IP)=
下一条要执行指令的物理地址=
(8)JMPCOUNT[BX](IP)=
答案:
(1)1000H,(2