- 6
- 0
- 约8.54千字
- 约 21页
- 2017-04-11 发布于贵州
- 举报
汇编与接口设计报告书-乘法运算汇编与接口设计报告书-乘法运算
汇编语言与接口技术
设计题目:完成两个三位十进制数相乘,并将结果送到屏幕显示
学 院:计算机科学与技术学院
专 业:信息安全
班 级:
学 号:
学生姓名:
指导教师:
组 名:
同组组员
2014年12月30日
目 录
一、设计题目及设计目标 - 3 -
1.1设计题目 - 3 -
1.2设计目标 - 3 -
二、系统分析和设计 - 3 -
2.1 - 3 -
2.1.1 算法思想 - 3 -
2 主要技术 - 5 -
3 主程序流程图 - 5 -
2.2过程功能描述 - 6 -
2.1 整数 - 6 -
2.2.2 结果输出 - 7 -
2.2.3 INPUT(输入及纠错算法) - 8 -
2.4 DIVDW(防溢出除法) - 9 -
3过程详细 - 10 -
2.3.1整数 - 10 -
2.3.2结果输出 - 10 -
2.3.3 INPUT(输入及纠错算法) - 11 -
4 DIVDW(防溢出除法) - 12 -
方法 - 12 -
3.1 - 12 -
3.2上机编译与调试 - 16 -
3.2.1编辑源程序 - 16 -
3.2.2汇编源程序 - 16 -
3.2.3产生.EXE文件 - 17 -
3.3.4程序的调试 - 17 -
四、程序运行与测试 - 18 -
4.1运行结果 - 18 -
4.1.1提示用户输入第一个数字 - 18 -
4.1.2提示用户输入第个数字 - 18 -
4.1.3 - 19 -
4.1.4退出程序 - 19 -
4.2检错测试 - 19 -
- 20 -
参考文献 - 21 -
一、设计题目及设计目标
1.1设计题目
设计两个三位十进制数相乘,并将结果送到屏幕显示。
1.2设计目标
1.有信息提示输入两个三位十进制数的值。
2.能从键盘接收相应的值。
3.经计算后,将结果显示在屏幕上。
4.按 Q 键退出程序。
二、系统分析和设计
2.1
1、输出提示字符串。
3、判断输入是否正确。
4、将输入的字符串转换为16进制数。
5、将两个16进制数相乘得到运算结果。
6、将运算结果转换成字符串存入缓存区。
7、输出结果。
8、询问用户是否退出程序
思想
1、利用DOS功能调用输出提示字符串。
LEA DX,T1
INT 21H
2、利用DOS功能调用将输入的字符串放入定义好的缓冲区。
LEA DX,BUF
MOV AH,0AH
INT 21H
3、利用缓冲区的第二个空间中的数字判断输入的长度是否小于等于3。
CMP [BX+1],03H
JA ERROR
4、将缓冲区中的有效字符和‘0’、’9’比较大小,判断输入是否为纯数字。
JB ERROR
CMP [BX],9
JA ERROR
INC BX
LOOP LOOP1
5、将输入的字符串转换为16进制数。
LOOP2:SUB [BX],0
PUSH AX
MUL [BX]
ADD DX,AX
POP AX
MOV [BX],0AH
MUL [BX]
DEC BX
LOOP LOOP2
6、将两个16进制数相乘得到运算结果。
MOV AX,DX
MUL TMP
7、将运算结果多次和10相除(并把余数转换为
DIVDW PROC;双字除法,防止溢出
PUSH BX
PUSH AX
MOV AX,DX
MOV DX,0
DIV CX
MOV BX,AX
POP AX
DIV CX
MOV CX,DX
MOV DX,BX
POP BX
RET
DIVDW ENDP
END
L1:
POP DX ;把栈中的结果放入输出缓存区
MOV [BX],DL
INC BX
LOOP L1
MOV [BX],0DH
INC BX
MOV [BX],0AH
INC DX
MOV [BX],24H
8、利用DOS功能调用输出结果。
LEA DX,NUM
MOV AH,09H
INT 21H
9、判断输入是否为
MOV AH,01H
INT 21h
CMP AL,Q
JE ENDPR
CMP AL,q
JE ENDPR
2.1.2 主要技术
(1)01H号功能
功能:等待从标准设备输入一个字符,将该字符的ASCII码送给AL,并在标准输出设备上显示该字符。
入口参数:无。
出口参数:AL的内容为输入字符的ASCII码。
(2)09H号功能
功能:在屏幕上显示字符串。
入口参数:无。
出口参数:DX存放字符串的偏移地址
(3)0AH号功能
功能:将输入的字符串放入指定的缓冲区
入口参数:无。
原创力文档

文档评论(0)