目 录
概述 ………………………………………………………… 3
一 设计内容与要求 ……………………………………… 3
二 设计思想………………………………………………… 3
三 工作原理………………………………………………… 3
四 程序流程图……………………………………………… 4
五、程序运行结果截图……………………………………… 5
六 程序源代码 …………………………………………… 5
七 设计过程中遇到的问题及解决方法 ………………… 8
八 设计心得 ……………………………………………… 8
九 结束语 ……………………………………………… 9
十 参考文献 ……………………………………………… 9
九九乘法表输出
摘 要:
九九乘法表输出是应用masm.exe 、link.exe、debug.exe等汇编语言软件进行编译链接及执行目的程序的方法来实现。并且认识和利用DOS系统下的21h函数的02功能号来进行单个字符的输出,程序设计的过程中用到循环和子函数的思想。模块化的程序设计思想,有利于源代码代码的编写,错误的查找和修改,同时可以分步来调试程序,减少工作量,乘法表的输出没有乘数和被乘数,只有乘积的结果输出。
关键词:
汇编语言程序设计 、微机原理 、 九九乘法表 、dos中断系统
导入语
设计要求
(一)创建文本文件,编写源代码,把文件保存在有masm.exe link.exe等汇编软件的 文件夹下,文件的后缀名改为.asm,比如(九九乘法表输出.asm)。
(二)开启电脑,在“开始”—“运行”输入“cmd”命令进入DOS的字符操作界面,编译链接程序代码,查看源程序是否有错误,有错误则加以修改。
(三)程序编译链接没有错误的情况下,执行目标程序,查看结果的输出情况,并用debug命令查看内存的变化。
(四)按要求撰写设计报告。
二、设计思想
九九乘法表输出程序主要用到一个嵌套循环,和两个过程,外层循环用bl保存并记录,外循环每执行一次,bl的值加一。内循环用bh保存并记录,如果bh的值小于bl的值则执行内循环,内循环中每盒bl比较一次,成立则值加一不成立则转到换行子函数执行,同时也比较外循环是否继续满足条件执行,即比较bl的值是否小于10,小于就执行外循环,否则就结束程序。
设计dis子函数,把内存中的16进制数转换成10进制,设计的disp子函数是把十进制转化成ASCLL码,并输出乘积,这样得到的显示的结果就是我们看到的10进制数。
子函数output_ctl的功能是换行,当内循环变量bh的值大于外循环值bl时,调用这个函数,使得输出的结果风有序,输出的结果更容易体现嵌套循环。
三、工作原理
九九乘法表输出是简单的乘法,实现了1—9之间的数字相互相乘,并且把结果输出,利用masm.exe 、link.exe debug.exe等汇编语言软件。设计算法编写源代码,设计一个循环结构来循环相乘,直到完成9*9,比较退出程序。同时还设计到数数制的转换问题,内存中的数据是16进制,而我们习惯看到的是10进制数,通过16进制转换成10进制,在转成通用ascll码输出显示,同时还用到DOS的中断调用。
四、程序流程图
N
Y
Y
N
Y
N
五、程序运行结果截图
六、程序源代码
data segment
table dw 81 dup(0)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov di,offset table ;di指向table的首地址00h
mov bl,1 ;外循环值
mul_1:
mov bh,1 ;内循环值
mul_2:
push cx