计算机汇编语言期末复习题完整含答案版.docx
- 文档编号:6277778
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:19
- 大小:44.28KB
计算机汇编语言期末复习题完整含答案版.docx
《计算机汇编语言期末复习题完整含答案版.docx》由会员分享,可在线阅读,更多相关《计算机汇编语言期末复习题完整含答案版.docx(19页珍藏版)》请在冰豆网上搜索。
计算机汇编语言期末复习题完整含答案版
一、问答题
1、写出8086操作数的寻址方式。
8086的存储器寻址方式有哪些?
答:
操作数的寻址方式有:
立即(数)寻址。
②寄存器寻址。
③存储器寻址。
存储器寻址方式有:
①立即寻址。
②寄存器寻址。
③直接寻址。
④寄存器间接。
⑤寄存器相对。
⑥基址变址。
⑦相对基址变址。
2、何谓中断向量,何谓中断号?
答:
中断向量即中断服务程序的入口地址。
中断类型号是系统分配给每个中断源的代号。
3、试写出由逻辑地址计算物理地址的计算公式。
写出8086在存储器寻址下,存储单元的逻辑地址的表示形式。
答:
PA=段基址*16+偏移量LA=段基址:
偏移量
4、在内存物理地址为00002H起的字单元内存放7856H,请用图表示出它们在存储器里存放的情况。
5、在物理内存地址为00002H起的字单元内存放3412H,请用图表示出它们在存储器里存放的情况。
6、8088的寻址空间有多大?
要寻址全部内存空间必须采用什么技术措施?
答:
1MB,分段寻址
7、寄存器间接寻址方式可使用哪些寄存器?
答:
在8086中:
BX/BP/SI/DI
8、在分断技术中,寄存器BX和BP默认对应的段寄存器是哪些?
答:
BX对应的是DS,BP对应的是SS。
9、寄存器相对寻址方式中的位移量可以用什么形式表达?
答:
位移量=EA—基址—(变址*比例因子)
10、微机的内存的最小编址单位是什么?
字型数据在内存的中的存放原则是什么?
答:
最小编址单位是B,存放原则是先低字节,后高字节。
11、基址变址寻址方式的可用寄存器有哪些?
答:
[BX][SI]/[BX][DI]
12、写出相对基址变址寻址方式的偏移地址EA的计算公式。
答:
EA=位移量+基址+变址
13、在内存物理地址为30476H起的连续地址空间内存放了一个值为90634511H的双字型数据,请用图表示出它们在存储器里存放的情况。
14、在内存物理地址为65780H起的连续地址空间内存放了一个值为12345678H的双字型数据,请用图表示出它们在存储器里存放的情况。
15、条件转移指令的转移范围是多少?
答:
—128~127
16、LOOP指令使用的循环计数器是什么?
答:
CX.
17、设有变量ABCD,要取它的偏移地址送到寄存器AX中,可用哪两种方法?
用指令表达出来。
答:
①LEAAX,ABCD②MOVAX,ABCD
18、子程序调用时传递参数的三种基本方法是什么?
答:
①通过寄存器传送。
②通过堆栈传送。
③通过变量传送。
19、串操作指令在使用前应做哪些准备工作?
答:
①把存放在数据段中的源串首地址(如反向传送则应是末地址)放入源变址寄存器中。
②把将要存放数据串的附加段中的目的串首地址(或反向传送时的末地址)放入目的变址寄存器中。
③把数据串长度放入计数寄存器。
④建立方向标志。
二、简答题
写出下列各指令的源操作数的寻址方式。
(1)MOVAX,0AH立即寻址(21)SUBCX,0CFH立即寻址
(2)MOVBX,12H立即寻址(22)MOVDX,49H立即寻址
(3)MOV[BX],CL寄存器寻址(23)ADDC[BP],DL寄存器寻址
(4)MOV[BX],CX寄存器寻址(24)ACHG[BX],AH寄存器寻址
(5)MOVAX,[200H]直接寻址(25)ANDAX,ES:
[buf]直接寻址
(6)MOVAX,[100H]直接寻址(26)MOVCX,SS:
[buf]直接寻址
(7)MOVBX,[BX]寄存器间接寻址(27)XORAX,[DI]寄存器间接寻址
(8)MOVAX,[BX]寄存器间接寻址(28)MOVCX,[BX]寄存器间接寻址
(9)MOVAX,[BP]寄存器间接寻址(29)ORDX,[BP]寄存器间接寻址
(10)MOVDX,[BP]寄存器间接寻址(30)MOVCX,[BP]寄存器间接寻址
(11)MOVAX,[SI][BX]基址变址寻址(31)ANDDL,[BP+DI]基址变址寻址
(12)MOVCX,[BX][SI]基址变址寻址(32)MOVBX,[SI+BP]基址变址寻址
(13)MOVDI,[BX+20]相对基址寻址(33)XORSI,56[BX]相对基址寻址
(14)MOVDI,20[BX]相对基址寻址(34)MOVDI,[BX+30]相对基址寻址
(15)MOVDH,VAL[BX]相对基址寻址(35)ADDDL,buf[BX]相对基址寻址
(16)MOVDH,ARRY[BX]相对基址寻址(36)MOVAL,[buf+BP]相对基址寻址
(17)MOVDS,VAL直接寻址(37)MOVDS,[BX+DI]基址变址寻址
(18)MOVDS,ARRY直接寻址(38)MOVDS,[BX+SI]基址变址寻址
(19)MOVBX,VAL[BX][SI]相对基址变址寻址(39)MOVAH,[buf+BP+DI]相对基址变址寻址
(20)MOVBX,ARRY[BX][DI]相对基址变址寻址(40)ADDAL,[buf+BX+SI]相对基址变址寻址
三、判断题
对者在题号前的括号中打“√”,错的打“×”
(×)1.SBBAL,DX(√)1.XCHGBX,AX
(√)2.MOVCX,DX(×)2.XORBL,CX
(√)3.CMPBX,[DI](√)3.CMPAX,[SI]
(×)4.CMP[BP],[BX](√)4.POPDI
(√)5.POPDI(√)5.POPAX
(√)6.POPSI(×)6.PUSHCL堆栈操作以字为单位
(×)7.PUSHAL堆栈操作以字为单位(×)7.PUSHAL堆栈操作以字为单位
(×)8.PUSHDL堆栈操作以字为单位(√)8.ORBYTEPTR[BP],98
(√)9.MOVBYTEPTR[BP],124(√)9.AND[BX],255
(√)10.MOVBYTEPTR[BX],100(√)10.SUB[SI],BYTEPTR35
(√)11.ADD[DI],BYTEPTR24(√)11.MOV[BP],10
(√)12.SUB[BP],BYTEPTR10(×)12.DEC[CX]CX不能间接寻址
(×)13.DEC[DX]DX不能间接寻址(√)13.INC8[BX]
(√)14.INC2[BX](√)14.SHLAL,1
(√)15.RORBL,1(×)15.MOVBX,[DX]DX不能间接寻址
(×)16.MOVCX,[DX]DX不能间接寻址(√)16.MOVbuf[BP][SI],CL
(√)17.MOVDAT[BP][DI],AL(√)17.MOVbuf[BX][DI],CX
(√)18.MOVDAT[BX][SI],AX(√)18.ADDCAL,BYTEPTRAC(AC为字变量)
(√)19.SUBAL,BYTEPTRAC(AC为字变量)(√)19.CMPCX,WORDPTRWL(WL为字节变量)
(√)20.ADDCX,WORDPTRWL(WL为字节变量)(√)20.ADDBX,[DI]
四、程序填空题
1、要求用移位指令实现(BX)<—(BX)*9
MOVAX,BX
MOVCL,3
SHLAX,CL
ADDBX,AX
2、要求用移位指令实现(BX)<—(BX)*5
MOVAX,BX
MOVCL,2
SHLAX,CL
ADDBX,AX
3、假设程序中数据定义如下:
ASDDB3
要求把变量ASD的值在显示器上显示出来。
MOVDL,ASD
ADDDL,30H
MOVAH,2
INT21H
4、假设程序中数据定义如下:
XDB3
要求把变量X的值在显示器上显示出来。
MOVDL,X
ADDDL,30H
MOVAH,3
INT21H
5、假设程序中字符串MESS定义如下:
MESSDB’ABCDEF’
要求把字符串MESS送到显示器上显示出来。
LEADX,MESS
MOVAH,9
INT21H
6、假设程序中字符串BUF定义如下:
BUFDB‘ABCDEF’
MOVAH,9
INT21H
7、假设程序中数据定义如下:
BUFDB32DUP(?
)
要求在BUF中查找第一个’B’.
CLD
MOVCX,32
MOVAL,’B’
LEADI,BUF
REPENSCASB
8、假设程序中数据定义如下:
BUFDB38DUP(?
)
要求在BUF中查找第一个’M’
CLD
MOVCX,38
MOVAL,‘M’
LEADI,BUF
REPENSCASB
9、比较两个字符串B1和B2,其长度为20个字节,找出它们相匹配的位置。
LEASI,B1
LEADI,B2
CLD
MOVCX,0014H
REPNECMPSB
10、比较两个字符串STR1和STR2,其长度为45个字节,找出它们不相匹配的位置。
LEASI,STR1
LEADI,STR2
CLD
MOVCX,002DH
REPECMPSB
五、写出下列程序(段)的执行结果。
1、CODE1SEGMENT
ASSUMECS:
CODE1
MAINPROCFAR
START:
PUSHDS
XORAX,AX
PUSHAX
MOVCH,4
MOVBX,1100010010001111B
ROT1:
MOVCL,4
ROLBX,CL
MOVDL,BL
ANDDL,0FH
ADDDL,30H
CMPDL,3AH
JBOUT1
ADDDL,7H
OUT1:
MOVAH,2
INT21H
DECCH
JNZROT1
RET
MAINENDP
CODE1ENDS
ENDMAIN
此程序执行后,屏幕上显示的内容为:
C48F
2、DATASEGMENT
BUFDB7,9,6
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
BEGIN:
MOVAX,DATA
MOVDS,AX
MOVCX,2
MOVBX,OFFSETBUF
MOVSI,1
MOVAL,BUF
AAA:
CMPAL,[BX+SI]
JLNEXT
MOVAL,[BX+SI]
NEXT:
INCSI
LOOPAAA
MOVDL,AL
ADDDL,30H
MOVAH,2
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDBEGIN
执行此程序后,屏幕上显示的内容为:
6(此程序功能是将串中小于7的数字屏显出来)
3、MOVAL,03H
MOVCL,2
SHLAL,CL
此指令段执行后,AL中的值为:
0CH(即3*2*2=12)
4、MOVAL,40H
MOVCL,2
SHRAL,CL
此程序段执行后,AL中的值为:
10H(即64/2/2=16)
5、CODESEGMENT
ASSUMECS:
CODE
MAIN:
MOVAH,1
INT21H
MOVAH,2
MOVDL,AL
ADDDL,30H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDMAIN
设输入数字7,其输出结果是多少?
7
6、CODESEGMENT
ASSUMECS:
CODE
MAIN:
MOVAH,1
INT21H
ADDAL,2
MOVAH,2
MOVDL,AL
ADDAL,30H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDMAIN
设输入数字3,其输出结果是多少?
5
六、程序设计
1、求两个字节数X和Y的2倍放到Z单元中。
设X与Y的和是字节数。
DATASEGMENT
XDB2
YDB2
ZDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBL,X
MOVCL,Y
ADDBL,CL
MOVCL,BL
ADDCL,BL
MOVZ,CL
MOVDL,Z
ADDDL,30H
MOVAH,02H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
2、求两个字节数X和Y的平均数放到Z单元中。
DATASEGMENT
XDB7
YDB8
ZDB?
//商
WDB?
//余数
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBL,X
MOVCL,Y
ADDBL,CL
CBW
MOVAX,BX
MOVCL,2
DIVCL
MOVZ,AL
MOVW,AH
MOVDL,Z
ADDDL,30H
MOVAH,02H
INT21H
MOVDL,W
ADDDL,30H
MOVAH,02H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3、编写程序,把从键盘读入的一个小写字母转换成相应的大写字母,并输出。
(注:
对应大小写字母之间的ASCII码值相差20H)
PROGNAMSEGMENT
MAINPROCFAR
ASSUMECS:
PROGNAM
START:
PUSHDS
SUBAX,AX
PUSHAX
NEXT:
MOVAH,1
INT21H
CMPAL,'A'
JBEXIT
CMPAL,'Z'
JAEXIT
SUBAL,20H
MOVDL,AL
MOVAH,2
INT21H
MOVDL,0AH
MOVAH,2
INT21H
JMPNEXT
EXIT:
RET
MAINENDP
PROGNAMENDS
ENDSTART
4、编写程序,把从键盘读入的一个大写字母转换成相应的小写字母,并输出。
(注:
对应大小写字母之间的ASCII码值相差20H)
PROGNAMSEGMENT
MAINPROCFAR
ASSUMECS:
PROGNAM
START:
PUSHDS
SUBAX,AX
PUSHAX
NEXT:
MOVAH,1
INT21H
CMPAL,'A'
JBEXIT
CMPAL,'Z'
JAEXIT
ADDAL,20H
MOVDL,AL
MOVAH,2
INT21H
MOVDL,0AH
MOVAH,2
INT21H
JMPNEXT
EXIT:
RET
MAINENDP
PROGNAMENDS
ENDSTART
5、已知数组X包含有8个无符号整数,编写对其中的每个奇数计算1+2+…+N,并把它们顺序存入内存字单元SUM开始的存储区中,要求1+2+…+N用子程序实现。
不考虑溢出。
DATASEGMENT
XDW2,3,4,5,6,7,8,9
SUMDW8DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAIN:
MOVAX,DATA
MOVDS,AX
LEABX,X
LEADI,SUM
MOVCX,8
NEXT:
MOVDX,[BX]
MOVAX,DX
SHRAX,1
JNCN1
CALLSUB1
MOV[DI],AX
ADDDI,2
N1:
ADDBX,2
LOOPNEXT
MOVAH,4CH
INT21H
SUB1PROCNEAR
PUSHCX
XORAX,AX
MOVCX,DX
AGAIN:
ADDAX,CX
LOOPAGAIN
POPCX
RET
SUB1ENDP
CODEENDS
ENDMAIN
6、已知数组X包含有8个无符号整数,编写对其中的每个偶数计算1+2+…+N,并把它们顺序存入内存字单元SUM开始的存储区中,要求1+2+…+N用子程序实现。
不考虑溢出。
DATASEGMENT
XDW2,3,4,5,6,7,8,9
SUMDW8DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAIN:
MOVAX,DATA
MOVDS,AX
LEABX,X
LEADI,SUM
MOVCX,8
NEXT:
MOVDX,[BX]
MOVAX,DX
SHRAX,1
JCN1
CALLSUB1
MOV[DI],AX
ADDDI,2
N1:
ADDBX,2
LOOPNEXT
MOVAH,4CH
INT21H
SUB1PROCNEAR
PUSHCX
XORAX,AX
MOVCX,DX
AGAIN:
ADDAX,CX
LOOPAGAIN
POPCX
RET
SUB1ENDP
CODEENDS
ENDMAIN
注:
编者水平有限,不能保证所有答案都正确,如发现错误之处,请指出。
卷上部分答案来源于互联网,不代表标准答案,此卷仅供参考。
最后两个编程题中有一道考试必考!
我只能帮你们到这里了!
呵呵
汇编语言习题
1、BIOS和DOS提供的中断例程,都用寄存器()来传递内部子程序的编号
A、axB、alC、ahD、cx
2、执行以下指令序列后,sp的值是多少?
movsp,3210h
pushax
A、320ehB、3212hC、3211hD、320fh
3、执行指令
cmpax,bx;(ax)=A,(bx)=B
比较两个无符号数A、B,当A>B时转移的测试条件是
A、SF=0B、CF=0且ZF=0C、OF=0D、ZF=0
4、jnz指令的测试条件是
A、zf=1B、zf=0C、相等D、不相等
5、下列程序段可以等效为一下哪条指令?
again:
moval,[si]
moves:
[di],al
incsi
incdi
loopagain
A、repmovsbB、repmovswC、repmovssD、repmovsd
6、(ax)=10,执行一下指令后,下列标志位正确的是
addax,0f510h
A、of=1B、cf=1C、sf=1D、zf=1
7、对伪指令end叙述正确的是
A、end是一条可执行的语句B、end表示程序执行到此结束
C、end表示源程序到此结束D、end在汇编后产生机器码
8、cpu执行算术运算指令,不会影响的标志位是
A、ofB、sfC、dfD、zf
9、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符,每个字的第一个字节为显示字符的(),第二个字节为显示字符的()。
10、8086cpu的系统总线按功能分为三类:
()、()和()
11、()指令时机器指令的助记符,与机器指令一一对应,每一种()都有自己的汇编指令集。
12、(ss)=1000h,(sp)=10h,(ax)=(bx)=5678h,执行下列指令序列后,以上寄存器的值分别是多少?
pushax
pushbx
13、(cs)=1a45h,(ip)=2b40h,物理地址为多少?
14、中断类型号为3ch的中断向量存储在()至()的内存单元中
15、将al高四位清0,应执行的指令是()。
A、andal,0f0hB、andal,0fhC、oral,0fhD、testal,0f0h
16、执行指令addax,bx后,若ax的值为2ba0h,PF=1,则
A、表示结果中含1的个数为偶数B、表示结果中含1的个数为奇数
C、表示结果为偶数D、表示结果中低八位中含1的个数为偶数
17、下面的指令序列执行后,al和CF的值分别是()、()。
moval,8dh
movcl,5
shral,cl
A、04h,0B、04h,1C、0a0h,0D、0a0h,1
18、向comsram的47号单元写入数据29h的程序段为
Amoval,29hout47h,al
Cmoval,47
inal,71h
out70h,al
Bmoval,29inal,47h
Dmoval,47
out70h,al
moval,29h
out71h,al
19、下列指令执行后,ZFPFSFCFOF的值分别是()
moval,58h
addal,74h
A、0,1,1,0,0B、0,1,1,0,1C、0,0,1,0,1D、0,0,0,0,1
20、axbxcxdx的值分别为15,16,17,18,执行下列指令序列后cx和dx的值分别为多少?
pushax
pushbx
popdx
popcx
A15,16B16,15C17,18D18,17
1.已知中断类型号为0bh,编程设置该中断类型号对应的中断向量58e3h:
3920h
2.求某数组元素(字节型)的和,结果存入字单元中。
3.把一个数组M分为两个数组:
正数组P和负数组N,并求这两个数组中的元素个数。
自定义数据并编程。
4.如何读取COMSRAM的82号单元的内容?
写出程序段
5.debug不同命令的作用分别是什么?
6.子程序的功能为求某字节型数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 汇编语言 期末 复习题 完整 答案