东南大学微机原理与接口技术期终考试复习资料汇总.docx
《东南大学微机原理与接口技术期终考试复习资料汇总.docx》由会员分享,可在线阅读,更多相关《东南大学微机原理与接口技术期终考试复习资料汇总.docx(14页珍藏版)》请在冰豆网上搜索。
东南大学微机原理与接口技术期终考试复习资料汇总
1.设置CX=0,则LOOP指令将执行多少次?
例如:
movcx,0
delay:
loopdelay
A.0B.1
C.65535D.65536
正确答案是:
D
2.REPZCMPSB这条指令结束的时候,如果比较的串相等,则________。
A.SF=1B.ZF=1
C.ZF=0D.CX不为0
正确答案是:
B
3.在取指令CMPBX,100H的源操作数的时候使用的逻辑地址最可能的是________。
A.DS:
100HB.CS:
IP
C.ES:
100HD.SS:
IP
正确答案是:
B
4.在一个字符串中查找一个字符,使用REPNZSCASB指令,执行完后,如果______表示没有找到。
A.ZF=1B.CX=0且ZF=0
C.CX=0,且ZF=1D.OF=1
正确答案是:
B
5.指令RET8是FAR过程的返回语句,执行之后,SP的值会______。
A.+8B.-8
C.+10D.+12
正确答案是:
D
6.REPZ重复前缀重复的条件是________
A.CX<>0且ZF=1B.CX=0,或ZF=0
C.CX=0,且ZF=0D.CX<>0或ZF=1
正确答案是:
A
12.下面的指令,对CF会产生影响的指令是_____。
A.INCAXB.DECAX
C.NEGAXD.NOTAX
正确答案是:
C
15.JMPWORDPTR[SI]这条指令的最大跳转范围是________。
A.-32768字节至+32767字节B.-128字节至+127字节
C.-32768字节至+32768字节D.-512KB至+512KB
正确答案是:
A
19.16位汇编的寻址方式中,能作为基址变址寻址方式的寄存器是_____。
A.SI,DI,SS,DSB.AX,BX,CX,DX
C.BX,SP,SI,DID.BX,BP,SI,DI
正确答案是:
D
23.如果(AL)=83H,则执行CBW之后,AX的值为_______。
A.0FF83HB.8883FH
C.8003FHD.0083FH
正确答案是:
A
25.以下的公式中,_________的结果是下一条指令的物理地址。
A.CS*16+IPB.CS*16+IP+本条指令的字节数
C.SS*16+IPD.CS*10+IP
正确答案是:
A
1.在内存中从Table开始的10个单元中连续存放0到9的平方值,任给一个0到9的数X,该数存放在内存单元XX中,查表求X的平方值,并将结果存于内存YY单元中。
编写程序,并在DEBUG中进行调试和验证结果。
(提示:
考虑平方表的每一项需要什么数据类型才合适,XLAT指令是否合适?
应该如何查表?
)
.8086
.MODELSMALL
.DATA
ORG10H
TABLEBYTE0,1,4,9,16,25,36,49,64,81
XBYTE7
YBYTE?
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVBX,OFFSETTABLE
MOVAL,X
XLAT
MOVY,AL
ENDSTART
2.假设CX:
BX中放了4位非压缩的BCD码表示的十进制数4386,请编写完整程序将这个数转成2进制数放到DI寄存器中,并用DEBUG调试和验证之
.8086
.MODELSMALL
.DATA
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVCX,0403H
MOVBX,0806H
MOVDI,0
MOVAX,0
ADDAL,BL
ADDDI,AX
MOVAL,10
MULBH
ADDDI,AX
MOVAX,100
MULCL
ADDDI,AX
MOVAX,1000
XCHGCH,CL
ANDCX,0FH
MULCX
ADDDI,AX
ENDSTART
3.利用跳转表技术实现根据用户输入的星期几的数字代号在屏幕上显示星期几的英文名称的功能。
(提示:
1)键盘输入的是数字的ASCII码,需要转换成数字。
2)建立一张跳转表,表中存放打印每个星期的程序段的入口地址。
3)考虑怎么使程序代码量最小。
)
.8086
.MODELSMALL
.DATA
TABLEBYTE'Monday$$$$',
'Tuesday$$$',
'Wednesday$',
'Thursday$$',
'Friday$$$$',
'Saturday$$',
'Sunday$$$$'
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MOVAH,01H
INT21H
CMPAL,30H
JBEEXIT
CMPAL,38H
JAEEXIT
ANDAX,0FH
SUBAL,30H
DECAL
MOVCL,10
MULCL
LEADX,TABLE
ADDDX,AX
MOVAH,9
INT21H
EXIT:
MOVAH,4CH
INT21H
ENDSTART
4.已知数据段有以下定义:
NUMDW3570
STRINGDB5DUP(20H),’$’;20H为空格的ASCII码
请编写完整程序,在屏幕上以十进制的形式将NUM这个数打印出来,可以借助STRING这个字符串。
(NUM这个数可以定义为一个任意字型数)。
.8086
.MODELSMALL
.DATA
ORG100H
NUMWORD3570
STRINGBYTE4DUP(20H),'$'
.CODE
START:
MOVAX,@DATA
MOVDS,AX
LEADI,STRING
MOVAX,NUM
MOVCX,4
;每次循环除以10,将商作为下次的被除数,余数即为对应的十进制数字
DECDI
LP:
PUSHCX
CWD
MOVCX,10
DIVCX
POPCX
MOVBX,CX
ADDDL,30H;转化为对应的ASCII码
MOV[BX][DI],DL
LOOPLP
MOVAH,09H;输出字符串,以‘$’结尾
LEADX,STRING
INT21H
MOVAH,4CH;退出程序
INT21H
ENDSTART
5.统计以‘$’字符结束的字符串string的字符个数。
.8086
.MODELSMALL
.DATA
ORG100H
STRINGBYTE'HELLO,WORLD!
!
!
','MYNAMEISASM','$'
LENBYTE?
STRBYTE3DUP(20),'$'
.CODE
START:
MOVAX,@DATA
MOVDS,AX
LEADI,STRING
MOVLEN,0
MOVBL,'$'
CP:
CMPBL,[DI];bl中的值是否为'$',若是则调到continue,若不是则继续比较,相应的值加1
JZCONTINUE
INCLEN
INCDI
JMPCP
CONTINUE:
MOVAL,LEN
LEASI,STR
MOVCX,3
DECSI
LP:
PUSHCX
CBW
MOVCL,10
DIVCL
POPCX
MOVBX,CX
ADDAH,30H
MOV[BX][SI],AH
ANDAX,0FFH
LOOPLP
MOVAH,09H
LEADX,STR
INT21H
MOVAH,4CH
INT21H
ENDSTART
6.十进制到二进制数转换。
从键盘取得一个十进制数,将其以二进数形式显示出来。
要求定义回车换行子程序、从键盘获得十进制数(0~128之间),并存放在BL中的子程序,用二进制显示BL中数据的子程序。
.8086
.MODELSMALL
.DATA
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MAINPROCFAR
CALLSHURU
CALLCRLF
CALLPRT
CALLCRLF
MOVAH,4CH
INT21H
MAINENDP
SHURUPROCNEAR;出口参数BL
PUSHAX;保护现场
PUSHCX
MOVBL,0
NEWCHAR:
MOVAH,1
INT21H;将键盘输入的字符的ASCII码传给AL寄存器
SUBAL,30H
JLEXIT;小于0转
CMPAL,9
JGEXIT;大于9转
XCHGAL,BL
MOVCL,10
MULCL;将以前的值乘以10
XCHGAL,BL
ADDBL,AL;加这一次读的值
JMPNEWCHAR
EXIT:
POPCX
POPAX
RET
SHURUENDP
CRLFPROCNEAR
PUSHAX
PUSHDX
MOVDL,0DH;回车
MOVAH,2
INT21H
MOVDL,0AH;换行
MOVAH,2
INT21H
POPDX
POPAX
RET
CRLFENDP
PRTPROCNEAR;入口参数BL
PUSHAX
PUSHCX
PUSHDX
MOVCX,8
LP:
ROLBL,1;循环左移,将二进制最高位挪到末尾
MOVBH,BL
ANDBL,01H;只保留最后一位,即二进制的第一位
ADDBL,30H;转化为0或1的ASCII码
MOVDL,BL;调用DOS的输出字符功能
MOVAH,02H
INT21H
MOVBL,BH
LOOPLP
POPDX
POPCX
POPSI
RET
PRTENDP
ENDSTART
7.利用递归程序,计算N!
。
具体要求:
用键盘输入一个数N(1~6之间),利用一个递归过程FAC来计算N!
(N放在AL中,结果在DX中),然后将计算的结果以十进制形式打印到屏幕上。
.8086
.MODELSMALL
.DATA
RESULTWORD?
STRINGBYTE5DUP(?
),'$'
.CODE
START:
MOVAX,@DATA
MOVDS,AX
MAINPROCFAR
CALLSHURU
CALLFAC
CALLCRLF
MOVDX,AX
CALLPRT
MOVAH,4CH
INT21H
MAINENDP
SHURUPROCNEAR
MOVAH,1
INT21H
SUBAL,30H
JLEXIT
CMPAL,6
JGEXIT
EXIT:
RET
SHURUENDP
MOVRESULT,DX
FACPROCNEAR;入口参数AL(N的值),出口参数DX(N!
)
CMPAL,0
JNZF1
MOVDX,1
RET
F1:
PUSHAX
DECAL
CALLFAC
POPCX;把N的值传给CX
CALLMULT;把N*FAC(N-1)传给DX
RET
FACENDP
MULTPROCNEAR
MOVAL,CL
MULDL
MOVDX,AX
RET
MULTENDP
PRTPROCNEAR
LEASI,STRING
MOVCX,4
DECSI
LP:
PUSHCX
CWD
MOVCX,10
DIVCX
POPCX
MOVBX,CX
ADDDL,30H;转化成ASCII码
MOV[BX][SI],DL
LOOPLP
MOVAH,09H
LEADX,STRING
INT21H
RET
PRTENDP
CRLFPROCNEAR
PUSHAX
PUSHDX
MOVDL,0DH;回车
MOVAH,2
INT21H
MOVDL,0AH;换行
MOVAH,2
INT21H
POPDX
POPAX
RET
CRLFENDP
ENDSTART