《微机原理》课程设计报告.docx
《《微机原理》课程设计报告.docx》由会员分享,可在线阅读,更多相关《《微机原理》课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
《微机原理》课程设计报告
《微机原理》课程设计报告
班级:
姓名:
学号:
一、目的
结合微机原理课程的学习,进一步巩固所学只是,掌握汇编语言的编程要领,熟悉汇编程序上机过程以及进行程序调试。
二、设计任务,程序清单,流程图
任务1(具体题目要求):
字符串匹配设计
为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示:
“MATCH”,否则,则显示“NOMATCH”
程序清单:
DATASEGMENT
INPUT1DB'INPUTSTRING1!
',0DH,0AH,'$'
INPUT2DB'INPUTSTRING2!
',0DH,0AH,'$'
MATDB0DH,0AH,'MATCH!
$'
MISMATDB0DH,0AH,'NOMATCH!
$'
LEN1DB20
STRING1DB20DUP(?
)
LEN2DB20
STRING2DB20DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAH,09H
MOVDX,OFFSETINPUT1
INT21H
MOVAL,LEN1
MOVBX,OFFSETSTRING1
MOV[BX],AL
MOVAH,0AH
MOVDX,OFFSETSTRING1
INT21H
CALLCRLF
MOVAH,09H
MOVDX,OFFSETINPUT2
INT21H
MOVAL,LEN2
MOVBX,OFFSETSTRING2
MOV[BX],AL
MOVAH,0AH
MOVDX,OFFSETSTRING2
INT21H
CALLCRLF
CLD
LEASI,STRING1
LEADI,STRING2
MOVCX,5
REPECMPSB
JNENOMAT
MOVAH,9
MOVDX,OFFSETMAT
INT21H
JMPEXIT
NOMAT:
MOVAH,9
LEADX,MISMAT
INT21H
EXIT:
MOVAH,4CH
INT21H
CRLFPROCNEAR
MOVDL,0DH
MOVAH,2
INT21H
MOVDL,0AH
MOVAH,2
INT21H
RET
CRLFENDP
MAINENDP
CODEENDS
ENDMAIN
流程图:
…….
任务2(具体题目要求)
将键盘输入的小写字母转换为大写字母的设计
为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。
编写程序,接收键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。
程序清单:
CRLFMACRO
MOVDL,0DH
MOVAH,02H
INT21H
MOVAH,02H
MOVDL,0AH
INT21H
ENDM
DATASEGMENT
INPUT1DB100
DB0
DB100DUP('$')
MES1DB'PleaseInputaString:
',0DH,0AH,'$'
MES2DB'TheOutputIs:
',0DH,0AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
TISHI:
MOVAH,09H
MOVDX,OFFSETMES1
INT21H
INPUT:
MOVDX,OFFSETINPUT1
MOVAH,0AH
INT21H
CRLF
MOVCX,00H
MOVCL,[INPUT1+1]
LEASI,[INPUT1+2]
NEXT:
CMPBYTEPTR[SI],'a'
JBCONT
CMPBYTEPTR[SI],'z'
JACONT
SUBBYTEPTR[SI],20H
CONT:
INCSI
LOOPNEXT
TISHI1:
MOVAH,09H
MOVDX,OFFSETMES2
INT21H
OUTPUT:
LEADX,[INPUT1+2]
MOVAH,09H
INT21H
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
流程图:
任务3(具体题目要求)
键盘输入数据并显示的设计
为掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。
编写程序,将键盘接收到的四位十六进制数据转换为等值的二进制数,再显示在终端上。
程序清单:
CRLFMACRO
MOVAH,02H
MOVDL,0DH
INT21H
MOVAH,02H
MOVDL,0AH
INT21H
ENDM
DATASEGMENT
MES1DB'PleaseInputThenumber:
$'
MES2DB'TheResultAre:
$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAINPROCFAR
START:
MOVAX,DATA
MOVDS,AX
TISHI:
MOVDX,OFFSETMES1
MOVAH,09H
INT21H
CRLF
MOVBX,0
MOVCX,4
INPUT:
movAh,07H
INT21H
CMPAL,48
JBINPUT
CMPAL,57
JNATRANS
CMPAL,97
JBINPUT
CMPAL,102
jAINPUT
JMPENG
TRANS:
MOVDL,AL
MOVAH,02H
INT21H
SUBAL,30H
JMPFBI
ENG:
MOVDL,AL
MOVAH,02H
INT21H
SUBAL,57H
FBI:
CBW
XCHGAX,BX
MOVDX,16
MULDX
XCHGAX,BX
ADDBX,AX
LOOPINPUT
CRLF
DISP:
LEADX,MES2
MOVAH,09H
INT21H
CRLF
MOVCX,16
BINARY:
TESTBX,8000H
JNZXONE
MOVDL,'0'
MOVAH,02H
INT21H
JMPNEXT
XONE:
MOVDL,'l'
MOVAH,02H
INT21H
NEXT:
SHLBX,1
LOOPBINARY
CRLF
EXIT:
MOVAH,4CH
INT21H
MAINENDP
CODEENDS
ENDSTART
流程图:
任务4(具体题目要求)
为掌握字符和数据的显示方法。
编写程序,先显示信息:
INPUTSTRING,THEENDFLAGIS$,再接收字符。
如为0-9,则计数器加1,并显示数据;如为非数字,则直接显示,但不计数。
程序清单:
CRLFMACRO
MOVAH,02H
MOVDL,0DH
INT21H
MOVAH,02H
MOVDL,0AH
INT21H
ENDM
DATASEGMENT
MESDB'INPUTSTRING,THEENDFLAGIS$!
'
MES1DB'TheDataNunmberCountIs:
$'
NUMDB0
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
TISHI:
LEADX,MES
MOVAH,09H
INT21H
CRLF
INPUT:
MOVAh,01H
INT21H
CMPAL,'$'
JZDISP
CMPAL,48
JBNEXT
CMPAL,57
JANEXT
INCNUM
NEXT:
JMPINPUT
DISP:
CRLF
TISHI1:
LEADX,MES1
MOVAH,09H
INT21H
CRLF
MOVAL,NUM
MOVBL,AL
MOVCL,4
ROLAL,CL
ANDAL,0FH
ADDAL,30H
CMPAL,39H
JBEK1
ADDAL,7
K1:
MOVDL,AL
MOVAH,02H
INT21H
ANDBL,0FH
ADDBL,30H
CMPBL,39H
JBEK2
ADDBL,7
K2:
MOVDL,BL
MOVAH,02H
INT21H
MOVDL,'H'
MOVAH,02H
INT21H
CRLF
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
流程图:
任务5(具体题目要求)
为掌握字符和数据的显示方法。
编写程序,先显示信息:
INPUTSTRING,THEENDFLAGIS$,
再接收字符。
如为0-9,则计数器加一,并显示数据;如为非数字,则直接显示,但不计数。
程序清单:
CRLFMACRO
MOVDL,0DH
MOVAH,02H
INT21H
MOVAH,02H
MOVDL,0AH
INT21H
ENDM
DATASEGMENT
MESDB'PleaseInputANumber,PressCToExit:
','$'
MES1DB'TheInputIsNotANumber,PleaseInputAgain:
','$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMES
MOVAH,09H
INT21H
CRLF
L3:
MOVAH,01H
INT21H
CMPAL,'C'
JEEXIT
CMPAL,30H
JBL2
CMPAL,39H
JAL2
ANDAL,0FH
CMPAL,0
JEEXIT
MOVBL,AL
L1:
MOVDL,07H
MOVAH,02H
INT21H
CALLDELAY
DECBL
JNZL1
JMPL3
CRLF
EXIT:
MOVAH,4CH
INT21H
L2:
CRLF
MOVDX,OFFSETMES1
MOVAH,09H
INT21H
JMPL3
DELAYPROCNEAR
MOVDX,02FFFH
K2:
MOVAX,0FFFFH
K1:
DECAX
NOP
JNZK1
DECdx
JNZK2
RET
DELAYENDP
CODEENDS
ENDSTART
流程图:
三、小结