1、 汇编语言课程设计报告 题 目: 数值的数制转换 院 (系) : 计算机与信息工程学院 班 级: 姓 名: 学 号: 指导教师: 1 设计主要任务 在这个程序中, 首先以十进制方式输入你所转换数据的数制, 放入寄存器 中,再输入你所要转换的数据,通过你输入的数制及该数制下数据,将数据转 换成二进制的数,存放在计数器中,最后输入将数据转换后的数制,屏幕上就 会显示出转后的数据。 1.1 设计任务与目标 软件设计部分主要由三大部分构成: 即提示语部分、 输入转换部分和转换 输出部分。 其中提示语部分主要是提示操作者要输入的项目, 输入转换部分主 要是将操作者输入的数据进行转换并存入寄存器中, 转换
2、输出部分主要是将前 一步存入寄存器中的数据进行数制转换并加以显示。 程序设计目标: (1)屏幕显示出参与转换的数据与转换的结果; (2)具有选择退出和继续的功能; 2 设计方案 根据设计要求,程序设计框图如图 2-1 所示。 图 2-1 程序设计框图 3 主程序设计 软件主要任务包括将制定数制的数据转换成二进制数据及将二进制数据 转换成制定数据,具体框图设计如图 3-1 所示。 3.1 主程序部分 主程序部分主要是调用功能子程序, 通过主程序来依次调用不同功能的子 程序,从而实现整个程序的功能。设计框图如图 3-1 主程序 提 示 语 输 入 及 转 换 转 换 及 输 出 图 3-1 主程序
3、流程图 否 开始 初始化 显示提示语 输入要转换 数据的数制 显示提示语 输入要转换数据 显示提示语 输 入 转 换 后 数据的数制 显示转换后的数据 是否退出 是 结束 3.2 输入并转换部分 此部分程序是用来实现从键盘输入数据并将数据按照指定进制转换成机 器的二进制数据的目的。 3.3 转换并输出部分 此部分设计是实现将机器的二进制数据转换成制定数制数据的功能, 并将 最后的数据显示出来。 4 子程序设计 软件主要任务包括提示子程序、 输入并转换子程序、 转换并输出子程序以 及回车换行子程序具体框图设计如图 3-1 所示。 4.1 提示语子程序 此部分是调用 DOS 的号功能显示字符窜实现
4、。通过判断 CX 寄存器中 的数制来控制显示的提示语句。 4.2 指定进制转换为二进制子程序 此部分程序是先将输入的数据的 ASCII 转换成实际的数值,再利用迭代 法, 循环乘以数据的进制, 来实现将指定进制的数据转换成机器的二进制数据 的目的。 4.3 将二进制转换为制定进制数据子程序 此部分设计是利用除以数制取余的方法, 将机器的二进制数据除以数制余 数放在堆栈中,再将得到的商继续除以数制,这样一直循环到商为 0 时结束, 输出则只将堆栈中的数一次取出,转换成相应的 ASCII 显示即可。 5 程序清单 DATA SEGMENT MESS1 DB input system:,$ MESS
5、2 DB input number:,$ MESS3 DB input system on display:,$ MESS4 DB result:,$ MESS5 DB exit? y/n:,$ DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX AGAIN: MOV CX,1 CALL TISHI MOV SI,10 CALL SHIRU MOV SI,BX CALL CRLF MOV CX,2 CALL TISHI CALL SHIRU MOV AX,BX PUSH
6、 AX CALL CRLF MOV CX,3 CALL TISHI MOV SI,10 CALL SHIRU MOV SI,BX POP AX CALL CHANGE CALL CRLF MOV AH,09 LEA DX,MESS5 INT 21H MOV AH,1 INT 21H CMP AL,79H JE EXIT1 CALL CRLF JMP AGAIN EXIT1: MOV AH,4CH INT 21H MAIN ENDP ;-tishi- TISHI PROC NEAR PUSH DX PUSH AX CMP CX,2 JNB TISHI2 MOV AH,09 MOV DX,SEG MESS1 MOV DS,DX LEA DX,MESS1 INT 21H JMP EXIT2 TISHI2: