中南大学微机原理实验代码软件部分Word文档格式.docx
- 文档编号:15913740
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:25
- 大小:19.51KB
中南大学微机原理实验代码软件部分Word文档格式.docx
《中南大学微机原理实验代码软件部分Word文档格式.docx》由会员分享,可在线阅读,更多相关《中南大学微机原理实验代码软件部分Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
EXTRA
;
MAINPROCFAR
START:
MOVAX,DATA;
init
MOVDS,AX
MOVAX,STACK1
MOVSS,AX
MOVSP,OFFSETST1
MOVAX,OFFSETEXTRA
MOVES,AX
MOVDX,OFFSETD1;
显示提示输入信息
MOVAH,9
INT21H
MOVDX,OFFSETBUFF;
键盘输入字符串,存入附加段
MOVAH,0AH
MOVBX,DX;
将输入字符相对于数据段的偏移地址地址存入附加段前两个字节,同时将输入字符的数量存入附加段后两个字节
SUBCH,CH
MOVCL,[BX+1]
PUSHCX
ADDDX,2
MOVDI,OFFSETE1
MOVES:
[DI],DX
[DI+2],CX
C1:
MOVDX,OFFSETD2;
显示相应信息
MOVDI,OFFSETE1;
从附加段取出输入字符串在代码段的偏移地址
MOVBX,ES:
[DI]
MOVAX,[BX];
从代码段取出第一个字符
ANDAL,0F0H;
取高4位
MOVCL,4
SHRAL,CL
CMPAL,0AH;
是否是A以上的数
JBC2
ADDAL,07H
C2:
ADDAL,30H
MOVDL,AL;
显示高位ASCII
MOVAH,02H
再次从附加段取出输入字符串在代码段的偏移地址
再次从代码段取出第一个字符
ANDAL,0FH;
取低4位
CMPAL,0AH
JBC3
C3:
显示低位ASCII
MOVBX,ES:
INCBX;
偏移地址加一,指向第二个字符
[DI],BX;
将指向第二个字符的偏移地址地址存入附加段前两个字节
MOVCX,ES:
[DI+2];
从附加段取出输入字符数量
DECCX;
字符数量减一
[DI+2],CX;
将新的字符数量存入附加段后两个字节
JNZC1;
若输入的字符串未处理完(CX!
=0),则跳回C1继续处理
MOVAH,4CH
MAINENDP
CODEENDS
ENDSTART
LESSON2-1
DATASSEGMENT
ZYXWVUTSRQPONMLKJIHG$'
LENEQU$-D1
DATASENDS
ORG1H
E1DBLENDUP(?
E2DB0DH,0AH,'
Thelargestcharis:
E3DB0DH,0AH,'
Thelowestcharis:
E4DB20DUP(?
STACKSSEGMENT
S1DW20DUP(?
STACKSENDS
CODESSEGMENT
CODES,DS:
DATAS,SS:
STACKS,ES:
MOVAX,DATAS;
传送字符串
MOVSI,OFFSETD1
MOVAX,EXTRA
MOVCX,LEN
CLD
REPMOVSB
升序排列
MOVCX,LEN-1
DECCX
L1:
MOVDX,CX
MOVBH,0
DECDI
L2:
INCDI
MOVAL,ES:
CMPAL,ES:
[DI+1]
JBECONTI
XCHGAL,ES:
[DI],AL
MOVBH,1
CONTI:
LOOPL2
CMPBH,0
JESTOP
MOVCX,DX
LOOPL1
STOP:
MOVDI,OFFSETE4
[DI],DS
[DI+2],ES
MOVDS,ES:
将附加段基址地址付给数据段
MOVDX,OFFSETE1
MOVAH,9;
显示升序排列后的字符串
MOVDX,OFFSETE2;
显示最大数据
MOVDL,ES:
MOVAH,2
MOVDX,OFFSETE3;
显示最小数据
[DI+19]
MOVAH,4CH;
退出DOS
RET
MAINENDP
CODESENDS
LESSON2-2
D1DB0DH,0AH,'
Plesaeenteryourdatanumber:
Pleaseselectyourfunction:
0DH,0AH,'
1.Chanceto16'
2.ChancetoBCD'
0AH,0DH,'
3.Chanceto7duan'
0AH,0DH,'
4.Exitthesystem'
D3DB20DUP('
D4DB'
TABLE1DB40H,79H,24H,30H,19H,12H,02H,78H,00H,18H
D5DB'
Theansweris:
D6DB'
Youinputthewrongnumber,pleaseinputagain!
D7DB20DUP('
D8DB0DH,0AH,'
D9DB20H,'
STACKSSEGMENTPARASTACK'
STACK'
S1DB20DUP('
EXTRASSEGMENT
EXTRASENDS
EXTRAS
MOVAX,DATAS
MOVAX,STACKS
LEASP,S1
MOVAX,EXTRAS
LEADX,D1
MOVAH,09H
LEADX,D3;
输入最多5位十进制数字到缓冲区
LEADX,D2;
让用户选择功能
MOVAH,1
INT21H
LEASI,D4;
存入用户的选择数字
MOV[SI],AL
LEADX,D8;
回车换行
显示答案说明
判断用户的选择功能
MOVAL,[SI]
CMPAL,31H
JESHILIU
CMPAL,32H
JEBCD
CMPAL,33H
JEQIDUAN
CMPAL,34H
JMPSTART
SHILIU:
MOVCX,5
MOVAH,0
LEASI,D3;
数字首地址
MOVAL,[SI+2]
SUBAL,30H
AGAIN1:
MOVDI,000AH;
10
MULDI
INCSI
MOVBL,[SI+2]
SUBBL,30H
ADDAX,BX
LOOPAGAIN1
LEASI,D7;
把得到的结果存到相应单元
MOV[SI],AX
LEASI,E1
MOVBYTEPTRES:
[SI+2],2;
说明要显示2字节数字
CALLSHOW1
BCD:
取原数字数字首地址
LEADI,D7;
存处理后数字首地址
AGAIN2:
MOVBL,0FFH
MOVAL,[SI+2];
依次取原数字
;
比较AL中的数是否是0~9的ASCII码
CMPAL,39H;
若AL中的数大于39H(数字9的ASCII码),说明不是数字
JAA1
SUBAL,30H;
若AL中的数小于30H(数字0的ASCII码),说明不是数字
JBA1
MOVBL,AL
A1:
MOVAL,BL
MOV[DI],AL;
依次存处理后的数字
A2:
LOOPAGAIN2
[SI+2],5;
说明要显示5字节数字
CALLSHOW
QIDUAN:
AGAIN3:
ANDAL,0FH
LEABX,TABLE1
XLAT
MOV[DI],AL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 微机 原理 实验 代码 软件 部分