汇编实验—任务3
2017-04-09 14:55:39 0 举报
汇编实验—任务3:设计一个简单的计算器程序,实现加、减、乘、除四则运算。首先,我们需要创建一个数据段,用于存储输入的两个数和结果。然后,编写一个主程序,用于接收用户输入的两个数和选择的运算符。接下来,根据用户选择的运算符,调用相应的子程序进行计算。最后,将计算结果显示在屏幕上。在编写子程序时,需要注意处理除数为0的情况,避免程序崩溃。此外,还需要对输入的数进行合法性检查,确保它们都是有效的数字。通过这个实验,我们可以掌握汇编语言的基本语法和编程技巧,提高解决实际问题的能力。
作者其他创作
大纲/内容
将放在BUF[SI]中的数据乘以二,加上放在BUF[SI+1]中的数据,加上2倍的放在BUF[SI+2]中的数据,结果放在DX中
AX=DXAX=(AX*2)/7
DH=DH+1调用宏定义的WRITE和OUT1输出提示语句
AL='4'?
NO
EAX=EAX*10+EBX
功能一 开始
BX=0CX=N
结束
BL=[SI] BL=BL-30H BL扩展到EBX中
输入提示:排名成功!
YES
根据用户输入的值将SI置为相应的偏移地址
AL='2'?
调用宏定义的WRITE和READ,提示用户输入成绩,并输入用户输入的字符即WRITE REMIND30 READ in_score
CX=0?
结果放在[SI+3中]DI=DI+17CX=CX-1
AL='3'?
输出菜单
用户输入菜单选项以字符类型保存在AL中
F10T2结束
DX=DX+1
执行功能三
DH=DH+30H计算出没有存储信息的存储空间的首地址,存放在BX中
AL='1'?
AL10?
AL=in_name[SI+2] BUF[BX+SI]=AL SI=SI+1;放在相应的存储空间
POP BX POP CXWORD PTR BUF[BX+15]=DX BX=BX+17 CX=CX-1
CX=N BX=0
SI=SI+1CX=CX-1
AL=100?
调用宏定义的READ输入学生姓名即READ in_name
BX=BX+17
F2T10开始
执行功能一
提醒用户重新输入
WRITE BUF[BX];输出名字 PUSH CX CX=4 SI=11
EBX进栈 EAX=0CX=输入字符串长度
CL=in_name[1] CH=0SI=0
AL='5'?
DX=1 ;DX用来存放排名 AL=BUF[BX+SI] PUSH CX CX=N PUSH BX BX=0
AX=0 DX=0 SI=11 SI=DI+SI
AL=[DI]
BX=BX+17CX=CX-1
DL=0?
PUSHA BX=0 DH=0DI=0
功能二开始
DH=N+30H?
CX=CX-1
PUSHACX=N DI=0
SI=SI+1 CX=CX-1
开始
AL=BUF[BX+SI]?
功能四开始
调用宏库中的OUT1分别输出字符‘1' '0' 0'
调用函数F10T2将输入的字符串转化为数值并存放在相应的存储空间
F10T2开始
DI=DI+17
执行功能二
AH=0 BH=10 IDIV BH ;AX除以10,商放在AL中,余数放在AH中 AL=AL+30H AH=AH+30H 调用宏库中的OUT1分别输出字符'AL''AH'
功能二结束
WRITE REMIND5 ;提示用户用选择用什么成绩进行排名(1数学2语文3英语4平均成绩)
执行功能四
DL=BUF[DI]
调用宏库中的OUT1输出字符'AL+30H'
功能三开始
调用宏定义的WRITE输出表头即WRITE REMIND7
0 条评论
下一页