微机原理大作业代码Word文档格式.docx
- 文档编号:20961358
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:21
- 大小:19.80KB
微机原理大作业代码Word文档格式.docx
《微机原理大作业代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理大作业代码Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
Inputthestring(includingletters&
numbers,lessthan60letters):
PRESTRDB'
Originalstring:
NEWSTRDB'
Newstring:
OUT_STRDB'
Thestringis$'
MAXCHRDB'
Themaximumis$'
IN_NUMDB'
Inputthenumbers(0-255,nomorethan20numbers):
'
OUT_NUMDB'
Sortednumbers:
IN_TIMDB'
Correctthetime(HH:
MM:
SS):
HINTSTRDB'
PressESC,gobacktothemenu;
orpressanykeytoplayagain!
KEYBUFDB61
DB?
DB61DUP(?
NUMBUFDB?
DB20DUP(?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVSP,OFFSETTOP
MAIN:
CALLFARPTRMENU;
设置显示器
AGAIN:
MOVAH,2
MOVBH,0;
页号
MOVDL,41;
列号
MOVDH,10;
行号
INT10H;
光标位置设置
MOVAH,1
INT21H
CMPAL,'
1'
JBAGAIN
5'
JAAGAIN
SUBAL,'
;
N-1
SHLAL,1;
(N-1)*2
CBW;
AL->
AX
LEABX,TABLE
ADDBX,AX
JMPWORDPTR[BX]
G1:
CALLFARPTRCHGLTR
MOVAH,8
CMPAL,1BH
JZMAIN
JMPG1
G2:
CALLFARPTRMAXLTR
JMPG2
G3:
CALLFARPTRSORTNUM
JMPG3
G4:
CALLFARPTRTIMCHK
JZMAIN
JMPG4
G5:
MOVAH,4CH
MENUPROCFAR;
显示主界面
;
设置显示器方式
MOVAH,0
MOVAL,3;
MOVBL,0;
清屏
MOVDL,5;
MOVDH,5;
MOVAH,9
LEADX,STRING1
MOVDH,6;
LEADX,STRING2
MOVDH,7;
LEADX,STRING3
MOVDH,8;
LEADX,STRING4
MOVDH,9;
LEADX,STRING5
LEADX,STRINGN
RET
MENUENDP
CHGLTRPROCFAR;
将输入字符串中小写字母便换成大写字母
RECHG:
MOVAL,3
MOVBL,0
输入提示光标位置设置
LEADX,IN_STR
INT21H;
输入字符串提示
输入字符串光标位置设置
MOVAH,0AH
LEADX,KEYBUF
输入字符串
CMPKEYBUF+1,0
JZRECHG;
判断输入字符串是否为空串
LEABX,KEYBUF+2
MOVAL,KEYBUF+1
CBW
MOVCX,AX
MOVBYTEPTR[BX],'
;
在输入字符串尾加结束标志$
源字符串提示光标位置设置
LEADX,PRESTR
输出源字符串提示
LEADX,KEYBUF+2
输出源字符串
LCHG:
CMPBYTEPTR[BX],61H
JBNOCHG
ANDBYTEPTR[BX],0DFH
NOCHG:
INCBX
LOOPLCHG;
将字符串中小写字母转换成大写字母
新字符串提示光标位置设置
LEADX,NEWSTR
输出新字符串提示
输出新字符串
提示信息光标位置设置
LEADX,HINTSTR
输出提示信息
CHGLTRENDP
MAXLTRPROCFAR;
在输入字符串中找出最大值
REMAX:
JZREMAX;
在输入字符串位加结束标志$
LEADX,OUT_STR
输出字符串提示
输出字符串
LEADX,MAXCHR
输出字符串中最大值提示
MOVDL,0
LCMP:
CMP[BX],DL
JBNOLCHG
MOVDL,[BX]
NOLCHG:
LOOPLCMP;
找出字符串中最大字符,放入DL
输出字符串中最大字符
MAXLTRENDP
SORTNUMPROCFAR;
对输入数据组排序
RESORT:
LEADX,IN_NUM
输入数据组光标位置设置
输入数据组字符串
CALLCIN_INT;
字符串转换成数据串
CMPAL,0
JZRESORT;
判断数据串是否有错
CMPNUMBUF,0
判断数据串是否为空
输出提示光标位置设置
LEADX,OUT_NUM
输出数据串提示
输出数据组光标位置设置
CALLFARPTRMPSORT;
数据组排序
CALLFARPTRINT_OUT;
数据组的输出
SORTNUMENDP
CIN_INTPROCNEAR;
读入整型数
;
入口参数:
无
出口参数为:
AL(有无错误标志,0为有,1为无)
MOVCL,KEYBUF+1
LEASI,KEYBUF+2
MOVCH,0;
数据组数据个数置0
MOVDH,10
MOVAL,0;
当前数据x=0
MOVDL,0;
有无数据标志置0,即无数据
FNDNUM:
CMPBYTEPTR[SI],'
JZADDNUM;
判断当前字符是否为空格
0'
JBERRNUM
9'
JAERRNUM;
判断当前字符是否在'
-'
之间
MOVDL,1;
有无数据标志置1,即有数据
MULDH
XORBH,BH
MOVBL,[SI]
ADDAX,BX
SUBAX,'
计算出当前数据x
CMPAH,0
判断x是否越界
JMPNEXT
ADDNUM:
CMPDL,1
JNZNEXT;
判断是否有数据
INCCH;
数据组数据个数加1
CALLADDNEW
清零
NEXT:
INCSI
DECCL
CMPCL,0
JNZFNDNUM;
依次检查各字符
JNZTOTAL;
判断是否有未加入的数据
INCCH
TOTAL:
MOVNUMBUF,CH;
置数据组数据个数
MOVAL,1;
输入数据无错误
JMPCRTNUM
ERRNUM:
输入数据有错误
CRTNUM:
RET
CIN_INTENDP
ADDNEWPROCNEAR;
增加新数
CH(数据组数据个数)、AL(当前数据x)
出口参数:
PUSHAX
LEABX,NUMBUF
MOVAL,CH
POPAX
MOV[BX],AL
ADDNEWENDP
MPSORTPROCFAR;
MOVAL,NUMBUF
CMPAL,1
JBENOSORT;
若只有一个元素,停止排序
LEASI,NUMBUF;
SI指向数据组首地址
ADDSI,CX;
SI指向数据组末地址
DECCX;
外循环次数
LP1:
;
外循环开始
PUSHCX
PUSHSI
交换标志置0
LP2:
内循环开始
MOVAL,[SI]
CMPAL,[SI-1]
JAENOXCHG
XCHGAL,[SI-1];
交换操作
MOV[SI],AL
交换标志置1
NOXCHG:
DECSI
LOOPLP2
POPSI
POPCX
JNZNOSORT;
判断交换标志
LOOPLP1
NOSORT:
RET
MPSORTENDP
INT_OUTPROCFAR;
输出数据组
MOVBL,10H
LEASI,NUMBUF+1
PRINT:
CALLOUTNUM
MOVDL,'
LOOPPRINT
INT_OUTENDP
OUTNUMPROCNEAR;
将十进制数以十六进制输出
AL(待转换的数据),BL(转换进制数16)
DIVBL
CMPAH,10
JBPNUM
ADDAH,7
PNUM:
ADDAH,30H
MOVDL,AH
PUSHDX
JZOUTN
OUTN:
POPDX
OUTNUMENDP
TIMCHKPROCFAR;
设定并显示时间
设置提示光标位置设置
LEADX,IN_TIM
时间串提示
输入时间串
MOVBL,10
MOVAL,KEYBUF+2
MULBL
ADDAL,KEYBUF+3
JBINVALID
CMPAL,24
JAEINVALID;
判断时有效性
MOVCH,AL
MOVAL,KEYBUF+5
ADDAL,KEYBUF+6
CMPAL,60
判断分有效性
MOVCL,AL
MOVAL,KEYBUF+8
ADDAL,KEYBUF+9
判断秒有效性
MOVDH,AL
MOVAH,2DH
置系统时间
INVALID:
CALLTIME
TIM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 作业 代码