微机软件实验习题与答案完整版Word下载.docx
- 文档编号:16064537
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:39
- 大小:344.89KB
微机软件实验习题与答案完整版Word下载.docx
《微机软件实验习题与答案完整版Word下载.docx》由会员分享,可在线阅读,更多相关《微机软件实验习题与答案完整版Word下载.docx(39页珍藏版)》请在冰豆网上搜索。
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
此处输入代码段代码
LEASI,DATA1
LEADI,DATA2
L0:
LEADX,STRING1;
打印字符串STRING1
MOVAH,09
INT21H
INPUT1:
输入第一个数
MOVAH,01;
输入字符至AL中
INT21H
CMPAL,'
/'
JEL1
MOV[SI],AL
INCSI
JMPINPUT1
L1:
LEADX,STRING2;
打印字符串STRING2
INPUT2:
输入第二个数
输入字符至AL
JEL2
MOV[DI],AL
INCDI
JMPINPUT2
L2:
MOVSI,0
CLC;
清空进位标志位CF
MOVCX,6
PLUSE:
相加
;
SUBDATA1[SI],30H
SUBDATA2[SI],30H
这里不能使用这两条指令,因为如果DATA1[5]=00H,00H-30H需要借位相减,使CF=1
MOVAL,DATA1[SI]
ADCAL,DATA2[SI]
AAA;
加法调整指令,可使两个ASCII数直接相加
MOVDATA1[SI],AL;
和赋给DATA1[SI]
LOOPPLUSE
L3:
LEADX,STRING3;
打印字符串STRING3
MOVSI,6
SHOW:
DECSI
CMPDATA1[SI],00H
JESHOW
SHOW2:
MOVDL,DATA1[SI]
ADDDL,30H
MOVAH,02
CMPSI,0
JEL4
JMPSHOW2
L4:
MOVAH,4CH
CODESENDS
ENDSTART
运行结果如下:
输入为低位在前,即输入1234和99999相加实际上是4321和99999相加(即:
4321+99999=104320)
实验2两个数相乘的实验(无符号数相乘)
实现十进制数的乘法。
要求被乘数和乘数均以ASCII码形式各自顺序存放在存中,乘积在屏幕上显示出来。
此处输入数据段代码
DATA1DB31H,32H,33H
DATA2DB35H,36H
MOVDL,10
MOVAL,DATA1[0];
AL=31H
SUBAL,30H;
AL=01H
MULDL;
乘10;
AL=10
ADDAL,DATA1[1];
AL=10+32H
AL=10+32H-30H=12
MULDL;
AL=120
ADDAL,DATA1[2];
AL=120+33H
AL=120+33H-30H=123
MOVBL,AL;
BL=AL
MOVAL,DATA2[0];
AL=35H
AL=5
AL=50
ADDAL,DATA2[1];
AL=50+36H
AL=50+36H-30H=56
MULBL;
AX=123x56=6888
SUBDX,DX;
DX清零
MOVBX,1000
DIVBX;
(DX,AX)/1000,商6在AX中,余数888在DX中
PUSHDX
MOVDL,AL
ADDDL,30H
MOVAH,02;
打印最高位6
POPDX
MOVBL,100
MOVAX,DX;
888赋给AX
DIVBL;
AX/100,商放在AL中,余数88放在AH中
MOVDL,AL
MOVCL,AH;
!
这里千万不能把AH直接赋给AL,因为经过INT21H指令后AL,AH会改变
MOVAH,02;
打印第二位
MOVBL,10
MOVAL,CL
SUBAH,AH;
清空AH
AX/10,商放在AL中,余数8放在AH中
MOVCL,AH
打印第三位
MOVDL,CL
打印第四位
运行结果为:
实验3字符串匹配实验
编写程序实现两个字符串比较。
如果相同,则屏幕显示“match”,否则屏幕显示”nomatch”,完整代码如下:
PRINT1DB'
inputthefirststring:
PRINT2DB13,10,'
inputthesecondstring:
PRINT3DB'
match'
PRINT4DB'
nomatch'
PRINT5DB13,10,'
output:
'
STRING1DB30DUP(00H),13,10,'
STRING2DB30DUP(00H),13,10,'
STACKS,ES:
DATAS
LEADX,PRINT1;
打印字符串PRINT1
LEASI,STRING1;
STRING1地址赋给SI
LEADI,STRING2;
STRING2地址赋给DI
输入字符串以‘/’结束,转L0
JEL0
LEADX,PRINT2;
打印字符串PRINT2
输入字符至AL
MOVCX,30;
CX=30代表比较30次
MOVSI,00H
COMPARE:
字符串一个一个比较
MOVAL,STRING1[SI];
取STRING1存储单位中的第SI个字符赋给AL
CMPAL,STRING2[SI];
AL与STRING2存储单位中的第SI个字符比较
JNENOMATCH
LOOPCOMPARE
JMPMATCH
NOMATCH:
打印output:
nomatch
LEADX,PRINT5
LEADX,PRINT4
JMPL2
MATCH:
match
LEADX,PRINT3
运行结果:
实验4从键盘输入数据并显示的实验
将键盘输入的2位十六进制数转换为等值的二进制数,并在屏幕上显示。
列如:
键入f2,则显示11110010.完整代码如下:
pleaseinputastring:
inputerror'
13,10,'
输入第一个字符至AL中
0'
JBERROR1
9'
JBEENTER1
A'
F'
a'
f'
ERROR1:
JMPL0
ENTER1:
CALLASC2BCD;
把ASCII码转化成十进制数BCD码
MOVCL,4
ROLAL,CL
MOVBL,AL;
把高四位放到BL寄存器中
输入第二个字符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 软件 实验 习题 答案 完整版