微机实验考试程序.docx
- 文档编号:23285127
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:53
- 大小:22.57KB
微机实验考试程序.docx
《微机实验考试程序.docx》由会员分享,可在线阅读,更多相关《微机实验考试程序.docx(53页珍藏版)》请在冰豆网上搜索。
微机实验考试程序
实验2:
dispcMACROchar;定义宏,显示单字符
MOVDL,char
MOVAH,2
INT21h
ENDM
dataSEGMENT;定义数据段
xDB?
;定义变量x,保存第一个数
yDB?
;定义变量y,保存第二个数
CDB?
;定义变量c,保存运算符
dataENDS
codeSEGMENT;定义代码段
ASSUMECS:
code,DS:
data
go:
MOVAX,data
MOVDS,AX;段地址填装
MOVAH,2
MOVBH,0
MOVDX,0
INT10H
MOVAH,9
MOVAL,20H
MOVBL,12
MOVCX,2000
INT10H
L1:
CALLinput;接收第一个数
MOVx,AL
CALLinput
MOVBL,AL
MOVAL,10
MULx
ADDAL,BL
MOVx,AL
L2:
MOVAH,1;接收运算符
INT21H
CMPAL,'/'
JEL3
dispc8;错误处理
dispc20H
dispc8
JMPL2
L3:
MOVc,AL;保存运算符
CALLinput;接收第二个数
MOVy,AL
CALLinput
MOVBL,AL
MOVAL,10
MULy
ADDAL,BL
MOVy,AL
dispc'='
JMPL10
D1:
DISPCCL
D2:
DISPCBH
D3:
DISPCBL
JMPL12
D4:
CMPCL,'0'
JNED1
D5:
CMPBH,'0'
JNED2
JMPD3
L10:
MOVAL,x
MOVAH,0
DIVy
PUSHAX
AAM
ORAX,3030H
CMPAH,'0'
JEL9
PUSHAX
DISPCAH
POPAX
L9:
DISPCAL
POPAX
CMPAH,0
JEL12
PUSHAX
MOVCX,6
L11:
DISPC'.'
LOOPL11
POPAX
MOVAL,AH
AAM
ORAX,3030H
MOVBX,AX
JMPD5
L12:
dispc0DH;回车
dispc0Ah;换行
JMPL1
exit:
MOVAH,4Ch
INT21H;退出
inputPROC;定义子程序,接收单字符
i1:
MOVAH,1
INT21H;接收单字符
CMPAL,1Bh
JEexit;按ESC键退出
CMPAL,'0'
JAEi3
i2:
dispc8;错误处理
dispc20H
dispc8
JMPi1
i3:
CMPAL,'9'
JAi2
ANDAL,0FH;转换成数值
RET;返回
inputENDP
codeENDS
ENDgo
实验3:
实验4:
dispcMACROchar;定义宏,显示单字符
MOVDL,char
MOVAH,2
INT21h
ENDM
dataSEGMENT;定义数据段
xDB?
;定义变量x,保存第一个数
yDB?
;定义变量y,保存第二个数
cDB?
;定义变量c,保存运算符
dataENDS
codeSEGMENT;定义代码段
ASSUMECS:
code,DS:
data
go:
MOVAX,data
MOVDS,AX;段地址填装
MOVAH,2
MOVBH,0
MOVDX,0
INT10H
MOVAH,9
MOVAL,20H
MOVBL,12
MOVCX,2000
INT10H
L1:
CALLinput;接收第一个数
MOVx,AL
CALLinput
MOVBL,AL
MOVAL,10
MULx
ADDAL,BL
MOVx,AL
L2:
MOVAH,1;接收运算符
INT21H
CMPAL,'*'
JEL3
dispc8;错误处理
dispc20H
dispc8
JMPL2
L3:
MOVc,AL;保存运算符
CALLinput;接收第二个数
MOVy,AL
CALLinput
MOVBL,AL
MOVAL,10
MULy
ADDAL,BL
MOVy,AL
dispc'='
CMPc,'*'
JEL8
L8:
MOVAL,x
MULy
MOVDX,0
MOVBX,1000
DIVBX
MOVCH,AL;保存千位到CH中。
MOVAX,DX
MOVBL,100
DIVBL
MOVCL,AL;保存百位到CL中。
ORCX,3030H
MOVAL,AH
AAM;(AH)=十位,(AL)=个位
ORAX,3030H;转换成字符
MOVBX,AX;保存十位到BH中,个位到BL中。
CMPCH,'0'
JED4
DISPCCH
D1:
DISPCCL
D2:
DISPCBH
D3:
DISPCBL
JMPL12
D4:
CMPCL,'0'
JNED1
D5:
CMPBH,'0'
JNED2
JMPD3
L12:
dispc0DH;回车
dispc0Ah;换行
JMPL1
exit:
MOVAH,4Ch
INT21H;退出
inputPROC;定义子程序,接收单字符
i1:
MOVAH,1
INT21H;接收单字符
CMPAL,1Bh
JEexit;按ESC键退出
CMPAL,'0'
JAEi3
i2:
dispc8;错误处理
dispc20H
dispc8
JMPi1
i3:
CMPAL,'9'
JAi2
ANDAL,0FH;转换成数值
RET;返回
inputENDP
codeENDS
ENDgo
实验5:
DISPCMACROC;显示单字符
MOVDL,C
MOVAH,2
INT21H
ENDM;定义宏
DATASEGMENT
XDB'1234567890';定义变量X
YDB'1122334455';定义变量Y
CEQU10;计算长度
ZDBC+1DUP(0);保存运算结果
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA;段说明
GO:
MOVAX,DATA
MOVDS,AX
MOVES,AX;段地址填装
LEASI,X;减法
LEADI,Y;从最高位比较X,Y的大小
MOVCX,C
CLD
L5:
LODSB;(AL)<=((DS):
(SI))
CMPAL,[DI];XY比较
JAL6;无符号比较
JBL7
INCDI
LOOPL5
DISPC'0'
JMPL10
L6:
LEASI,X+C-1;初始化地址指针SI到X尾
LEABX,Y+C-1;初始化地址指针BX到Y尾
JMPL8
L7:
DISPC'-'
LEASI,Y+C-1
LEABX,X+C-1
L8:
LEADI,Z+C;初始化地址指针DI到Z尾
STD;地址减量变化
CLC;CF=0
MOVCX,C;置循环次数到CX
L9:
LODSB;(AL)<=((DS):
(SI))
SBBAL,[BX];X-Y
AAS
DECBX;由高位到低位
STOSB;存串
LOOPL9
MOVCX,C+1
LEABX,Z
L11:
MOVDL,[BX]
ORDL,30H;将数值转换成字符
MOVAH,2
INT21H
INCBX
LOOPL11
L10:
MOVAH,7;等待语句
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDGO
实验6:
DISPCMACROC;定义显示单字符的宏
MOVDL,CH
MOVAH,2
INT21H
ENDM
X_YMACROX,Y;定义置光标的宏
MOVAH,2
MOVBH,0
MOVDH,X
MOVDL,Y
INT10H
ENDM
DISPSMACROS;定义显示字符串的宏
MOVAH,9
LEADX,S
INT21H
ENDM
DATASEGMENT
XDB60DUP(0),'$';'$'为显示结束符
YDB60DUP(0),'$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
GO:
MOVAX,DATA
MOVDS,AX;填装段地址
MOVAH,2;清屏
MOVBH,0
MOVDX,0
INT10H
MOVAH,9
MOVAL,20H
MOVBL,12H
MOVCX,2000
INT10H
X_Y6,0;置光标于6行0列
LEABX,Y;初始化地址
LEASI,X
MOVCX,60;初始化长度
L1:
MOVAH,1
INT21H;接收单字符
CMPAL,'A'
JAEL3;无符号比较,若大于等于转移
L2:
CALLERROR;调用子程序
JMPL1
L3:
CMPAL,'Z'
JBEL4
CMPAL,'a'
JBL2
CMPAL,'z'
JAL2;判断是否为字母
JMPL5
L4:
ADDAL,20H;将大写字母转换成小写字幕
L5:
MOV[SI],AL;保存
INCSI;地址增量变化
LOOPL1
X_Y10,0;置光标于10行0列
DISPSX;显示大小写转换后的字符串
MOVAH,7
INT21H;等待
MOVAH,4CH
INT21H;退出
ERRORPROC
DISPC8
DISPC20H
DISPC8;错误处理
DISPC7;置响铃
RET;返回
ERRORENDP
CODEENDS
ENDGO
实验7;
DISPCMACROC;定义显示单字符的宏
MOVDL,Ch
MOVAH,2
INT21H
endm
X_YMACROX,Y;定义置光标的宏
MOVAH,2
MOVBH,0
MOVDH,X
MOVDL,Y
INT10H
ENDM
DISPSMACROS;定义显示字符串的宏
MOVAH,9
LEADX,S
INT21H
ENDM
DATASEGMENT
XDB80DUP(0),'$';'$'为显示结束符
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
GO:
MOVAX,DATA
MOVDS,AX;填装段地址
X_Y8,0;置光标于8行0列
LEASI,X;初始化地址
MOVCX,80;初始化长度
L1:
MOVAH,1
INT21H;接收单字符
CMPAL,'A'
JAEL3;无符号比较,若大于等于转移
cmpal,'0'
jael4;大于等于转l4
L2:
CALLERROR;调用子程序
JMPL1
L3:
CMPAL,'Z'
JBEL6
CMPAL,'a'
JBL2;低于转l2
CMPAL,'z'
jbel6
jmpl2
l4:
cmpal,'9'
jbel5
cmpal,'A'
jbl2
jmpl3
L5:
andal,20h;数字转换为空格
l6:
MOV[SI],AL;保存
INCSI;地址增量变化
LOOPL1
X_Y10,0;置光标于10行0列
DISPSX;显示转换后的字符串
MOVAH,7
INT21H;等待
MOVAH,4CH
INT21H;退出
errorproc
dispc8
dispc20h
dispc8;错误处理
dispc7;置响铃
ret;返回
errorendp
codeends
endgo
实验8:
DISPCMACROC;定义显示单字符的宏
MOVDL,Ch
MOVAH,2
INT21H
endm
X_YMACROX,Y;定义置光标的宏
MOVAH,2
MOVBH,0
MOVDH,X
MOVDL,Y
INT10H
ENDM
DISPSMACROS;定义显示字符串的宏
MOVAH,9
LEADX,S
INT21H
ENDM
DATASEGMENT
XDB80DUP(0),'$';'$'为显示结束符
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
GO:
MOVAX,DATA
MOVDS,AX;填装段地址
MOVAH,2;清屏
MOVBH,0
MOVDX,0
INT10H
MOVAH,9
MOVAL,20H
MOVBL,12H
MOVCX,2000
INT10H
X_Y7,0;置光标于6行0列
LEASI,X;初始化地址
MOVCX,80;初始化长度
L1:
MOVAH,1
INT21H;接收单字符
CMPAL,'A'
JAEL3;无符号比较,若大于等于转移
L2:
CALLERROR;调用子程序
JMPL1
L3:
CMPAL,'z'
JAL2;判断是否为字母
L4:
MOV[SI],AL;保存
INCSI;地址增量变化
LOOPL1
L5:
LEASI,X
MOVCX,79;置长度
MOVDL,0
L6:
MOVAL,[SI]
CMPAL,[SI+1]
JAEL7;大于或等于转L7
XCHGAL,[SI+1];互换内容
MOV[SI],AL
MOVDL,1
L7:
INCSI
LOOPL6
CMPDL,1
JEL5
X_Y11,0;置光标于11行0列
DISPSX;显示最终的字符串
MOVAH,7
INT21H;等待
MOVAH,4CH
INT21H;退出
errorproc
dispc8
dispc20h
dispc8;错误处理
dispc7;置响铃
ret;返回
errorendp
codeends
endgo
实验9:
DISPCMACROC;定义显示单字符的宏
MOVDL,Ch
MOVAH,2
INT21H
endm
X_YMACROX,Y;定义置光标的宏
MOVAH,2
MOVBH,0
MOVDH,X
MOVDL,Y
INT10H
ENDM
DISPSMACROS;定义显示字符串的宏
MOVAH,9
LEADX,S
INT21H
ENDM
DATASEGMENT
XDB80DUP(0),'$';'$'为显示结束符
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
GO:
MOVAX,DATA
MOVDS,AX;填装段地址
MOVAH,2;清屏
MOVBH,0
MOVDX,0
INT10H
MOVAH,9
MOVAL,20H
MOVBL,12H
MOVCX,2000
INT10H
X_Y6,0;置光标于6行0列
LEASI,X;初始化地址
MOVCX,80;初始化长度
L1:
MOVAH,1
INT21H;接收单字符
CMPAL,'A'
JAEL3;无符号比较,若大于等于转移
L2:
CALLERROR;调用子程序
JMPL1
L3:
CMPAL,'z'
JAL2;判断是否为字母
L4:
MOV[SI],AL;保存
INCSI;地址增量变化
LOOPL1
L5:
LEASI,X
movcx,79;置长度
movDL,0
L6:
moval,[si]
cmpal,[si+1]
JBEL7
XCHGAL,[SI+1];互换内容
MOV[SI],AL
MOVDL,1
L7:
INCSI
loopL6
cmpDL,1
JEL5
X_Y9,0;置光标于9行0列
DISPSX;显示最终的字符串
MOVAH,7
INT21H;等待
MOVAH,4CH
INT21H;退出
errorproc
dispc8
dispc20h
dispc8;错误处理
dispc7;置响铃
ret;返回
errorendp
codeends
endgo
实验10:
dispsmacrox
movah,9
leadx,x
int21h
endm
datasegment
bufferdb80,?
81dup(0)
fnamedb'D:
\STRING.TXT',0
d1db'Createpaperfileerror',0dh,0ah,'$'
d2db'Createfileerror',0ah,0dh,'$'
d3db'Writefileerror',0ah,0dh,'$'
d4db'Closefileerror',0ah,0dh,'$'
d5db'Operatesucceed',0ah,0dh,'$'
d6db0ah,0dh,'$'
dataends
codesegment
assumecs:
code,ds:
data
go:
movax,data
movds,ax
movah,2
movbh,0
movdx,0
int10h
moval,20h
movah,9
movcx,2000
movbl,12h
int10h;清屏
movah,2
movbh,0
movdh,5;置光标位置于5行
movdl,0;置光标位置于0列
int10h
movah,0ah
leadx,buffer
int21h
movcl,buffer+1
movch,0
leasi,buffer+2
l1:
lodsb;取下一个源串中的值
cmpal,'a'
jbm2
cmpal,'z'
jam2
xoral,20h;将小写字母转换成大写字母
mov[si-1],al;将转换后的字符存入[SI-1]中
m2:
loopl1
movbyteptr[si],'$'
movah,2
movbh,0
movdh,7;将光标置于10行
movdl,0;将光标置于0列
int10h
dispsbuffer+2
dispsd6;显示转换后的字符
l2:
movah,5bh;建立新文件
movcx,0
leadx,fname
int21h
jncl3;成功转l3
dispsd2;错误显示d2
jmpl6;无条件转l6
l3:
MOVBX,AX
LEADX,buffer+2
movcx,80
movah,40h;文件写入
int21h
jncl4;成功转l4
dispsd3;错误显示d3
jmpl6;无条件转l6
l4:
movah,3eh;关闭文件
int21h
jncl5
dispsd4
jmpl6
l5:
dispsd5;显示D5
l6:
movah,7
int21h
movah,4ch
int21h
codeends
endgo
实验11:
dispsmacrox
movah,9
leadx,x
int21h
endm
datasegment
bufferdb80,?
81dup(0)
fnamedb'D:
\USER.TXT',0
d1db'Createpaperfileerror',0dh,0ah,'$'
d2db'Createfileerror',0ah,0dh,'$'
d3db'Writefileerror',0ah,0dh,'$'
d4db'Closefileerror',0ah,0dh,'$'
d5db'Operatesucceed',0ah,0dh,'$'
d6db0ah,0dh,'$'
dataends
codesegment
assumecs:
code,ds:
data
go:
movax,data
movds,ax
movah,2
movbh,0
movdx,0
int10h
moval,20h
movah,9
movcx,2000
movbl,12h
int10h;清屏
movah,2
movbh,0
movdh,8;置光标位置于8行
movdl,0;置光标位置于0列
int10h
movah,0ah
leadx,buffer
int21h
movcl,buffer+1
movch,0
leasi,buffer+2
l1:
lodsb;取下一个源串中的值
cmpa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 实验 考试 程序