汇编语言套装软件制作(1)

程式写完后,还要加工成为可执行的套装软件(Package),一般说来,即使是可以执行的程式,一点错误都没有,离套装软件的程度,却还有一段距离。
当然,程式侦错也是必经过程之一,有时侦错与程式写作可以同时进行。但有经验的程式师,对全面有了充份的认识,往往会等到程式联接后再行侦错。
程式完成后的全面侦错,最好不要依靠写程式的人。因为程式师经常不是使用者,他们仅在自己设计的条件下,依其理念进行侦错。当然这种错误必须更正,但最容易发生的错误,却是使用者不小心在输入时,或运用指令时,违背了程式师的理念。这种错误的发生,是不能原谅的,程式本来就是为使用者设计的,如果令使用者不便,程式就失去了应有的价值。
程式的品管,就在于检测程式是否符合使用者的需求。一般说来,应有专人负责,也有让写作手册的人,兼做品管的工作。这样可以同时对照手册所描述的功能及操作方法,检查两者之间是否一致。
还有一种常见的品管方式,是在产品完成时,交给完全没有参与程式设计的第三者,在客观的立场,作全面的试用,并提出测试报告或建议书。
品管合格了,才是包装、手册等最后的工作。这并不是说包装和手册要最后才做,相反的,尤其是使用手册,经常要在程式设计的同时,准备妥当,如此程式师才不会任意所之,脱离主题。
第一节 测试侦错

不论使用什么工具,侦错时一定要有清晰的头脑,根据所设定的方式,一步一步地查看流程及指令。
每个人都会有独特的习惯性错误,最好每次将自己发生的错误记下来,不仅错误会渐渐减少,且在错误发生时,很容易就能找到。
测试侦错是非常重要的手段,有人认为第一流的程式师不应该犯错,即使犯错,也错得很少。我的看法不一样,并非因为我经常犯错,而且错得离谱。真正的理由是为了适时掌握正确的思考方向,在编程时,有意无意地忽略一些细节,这样反而能一气呵成,不致于再而竭三而衰。
这就像画图一样,有人喜欢先作草图,有人则习惯由细部画起。不论个人的风格如何,重要的是最后的成果。
我在写程式之前,首先考虑全体的结构,再把各处的支架备妥,然后考虑有共同特性之处,便一口气写完。而且写时力求快速,以免失去当时的感觉。等到结构大体完成了,最后才去填补一些不太重要的细节。至于正确与否,则全靠测试侦错来修正、弥补。
这种写法要有很强的整体观念,且对每段程式的性质及功能皆瞭解从何下手。
我由系统程式到应用工具,大大小小的程式写了不少,对这种写作方法有很深的体会。唯一的缺点是,程式如果太大,超过20KB,我的记忆力就难以负担。(年轻人或许不致如此)但其优点则是结构精简,制作时间极短。以我们的中文系统程式而言,8KB 的程式,连侦错在内,只花了两个月的功夫。
然而,在训练程式师的过程中,我发现到还是循序渐进较好。每次写完了一段程式,立刻侦错,此段程式正确了,再写下一段。除非有绝对的把握,自信没有问题,否则千万不要等全部程式都写完了,再来调试。到那时,如果发现问题,在各段错综复杂的程式中,要找到错误所在,那是大海捞针了。
程式发生「当机」的情况,常常是 PUSH 及 POP不平衡所致,也有在做回路时,计数器为负值,以致锁在其中。如果程式分「段」太多,则要特别注意各「段」改变的情况。
诸如这些细节,最好随时把编程时的假想值记录下来,不要太过相信自己的记忆力,时间一长,程式一大,就什么都忘记了。
还有一点,在侦错时千万要养成习惯,记录追踪的过程。因为侦错是一种很琐碎的工作,很难一次就发现问题所在,第一次应该是第二次改进的经验。如果不详加记录,每次都要从头做起,将是一种极为痛苦的事。
不妨把侦错视为猜谜,一种智力的挑战,在遵守一定的规则下,应该是一种有趣的享受。
第二节 研究改进

想要把程式写好,一定要不断地研究、改进,由错误中学习,由改进中得到经验,培养出敏锐的观察能力和良好的写作习惯。
在开始时,这种过程需要付出不少时间,但对一位程式师来说,写程式是终身职业,能不精益求精吗?
以下举两个实例,以说明如何研究改进已完成的程式。
1,指令的运用:
以下面这段通讯处理程式而论,不仅语法及指令完全正确,执行时也毫无错误,是不是还可以加以改进呢?
1-1 按照前面规定,说明项中已用简化的字串:
SND-传送 RCV-接收 LET-左 
RGT-右 VER-直 HOR-横
1-2 程式师代号为'C'。
1-3 段名省略。

1: CSND0:
2: MOV DX,03FDH ; 输出埠
3: MOV AL,80H
4: OUT DX,AL ; 输出指令
5: MOV DX,03F8H ; LSB 速度控制
6: MOV AL,06H ; 速度=19200/秒
7: OUT DX,AL
8: MOV DX,03F9H ; MSB 速度控制
9: MOV AL,0 ; 速度=19200/秒
10: OUT DX,AL
11: MOV DX,03FBH ; 行控制暂存器
12: MOV AL,03H ; NO PARITY,1
; STOP,8
13: OUT DX,AL
14: MOV DX,03FCH ; 通讯控制
15: OUT DX,AL
16: MOV DX,03F9H ; 中断有效
17: MOV AL,0
18: OUT DX,AL
19: CSND1:
20: MOV DX,03FDH ; 状态暂存器
21: IN AL,DX
22: TEST AL,10H ; 是否可接收?
23: JNZ CRCV0 ; 可
24: TEST AL,20H ; 通道已清否?
25: JZ CSND1 ; 8250未清
26: MOV AH,1 ; 键盘有输入?
27: INT 16H
28: CMP AL,07H ; ='CTRL+G'
29: JE CEND ; 是,完毕
30: MOV DX,03F8H
31: OUT DX,AL ; 送输入字符

时间: 2024-12-23 00:20:20

汇编语言套装软件制作(1)的相关文章

汇编语言套装软件制作(2)

第三节 程式合并 我所见过的各种组合程式虽不算多,但至少有百余个了.毛病最多的当然是缺乏完整的规划,其次则是信马游缰,一份不折不扣的流水帐!明明大门口在东边,程式硬要朝西,直到游完了大观园,天黑了,才出东门! 这种程式我收集了一大叠,可是举来做例子,却心有余而力不足.原因无他,实在不耐烦照抄一遍,一见到就头痛! 电脑最强的功能,便是处理繁杂重复的工作,为什么一般程式师居然存心与电脑争风吃醋呢?不说别的,光把程式输入到电脑中,就要花上几个月宝贵的光阴,真值得这样做吗? 有一份程式,足足有四十多页,

怎么使用Word软件制作书法字帖

  怎么使用Word软件制作书法字帖          1.创建字帖 如图 1,单击"文件"→"新建"→"书法字帖"按钮,创建字帖文档,打开"增减字符"对话框. 图1 创建字帖文档 2.选择字体,增加文字 如图 2,单击"书法字体"→选择字体(也可用系统自带自体),选择需要的字符,添加到右侧. 图2 设置字体,增加文字 如图 3 ,完成字帖制作. 图3 完成字帖 3.书法设置 图4 书法设置 如图4,字帖制

通过Excel结合财务软件制作催款函

年初财会要进行欠款清理工作,那些未收回来的账款要在新年初始收回来,那么我们就要制作催款单,督促对方早日将欠款汇来.下面,我来说说我是如何通过Excel结合财务软件制作催款单的. 导出欠款数据 目的:从财务软件中导出欠款的相关数据 现在大多数单位都使用了财务软件,因此整理欠款基础数据时,从财务软件中直接导出即可,例如在浪潮财务软件中,进入"账务处理"模块,执行"账 表"→"科目余额表"命令,在弹出的"科目余额表"对话框中,选择会

巧用Photoshop结合SAI软件制作言情手绘风格的人像

  巧用Photoshop结合SAI软件制作言情手绘风格的人像,绘画青春,绘出我们的精彩,值得借鉴 分类: PS入门教程

gif动态图片用什么软件制作,最好提供几个制作gif图片过程,谢谢

问题描述 gif动态图片用什么软件制作,最好提供几个制作gif图片过程,谢谢 gif动态图片用什么软件制作,最好提供几个制作gif图片的视频教程,文字版本的也可以,谢谢. 解决方案 gif就是简单的Flash 只是把几张图合在一块 然后加一个计时器 按时间刷新帧, 一张图就是一帧 解决方案二: gif就是简单动画,可以用flash制作,几张图片或者一小段视频,最后输出为图片即可

考试软件制作都是用那些软件制作的

问题描述 考试软件制作都是用那些软件制作的 本人想给自己的同学制作一个软件 大神 解决方案 没试过,路过来看看,顶一下 解决方案二: 支持一下~希望你早日做出来 解决方案三: 怎样的软件!!有什么要求都不说!!谁知道啊

可视化设计-搜狐的数字之道或者sina的图解新闻是用什么软件制作的呢?

问题描述 搜狐的数字之道或者sina的图解新闻是用什么软件制作的呢? 求各位大牛解释,搜狐的数字之道或者sina的图解新闻是用什么软件制作的呢?

masm32安装-汇编语言安装软件时出现问题了,求大神解决啊

问题描述 汇编语言安装软件时出现问题了,求大神解决啊 请问大家,安装masm出现DELETE operation of EXE file has failed是什么原因,

赛门铁克推出增强版存储优化套装软件

    赛门铁克公司今天宣布推出 Veritas CommandCentral 增强版存储优化套装软件,致力于帮助企业减少购买不必要的存储设备,有效降低营运成本.Veritas CommandCentral Storage包括新的无代理(agentless)功能,通过提高存储利用率来帮助企业降低存储采购成本,并使存储消耗与实际业务应用实现结合的更加紧密,从而加速企业投资价值的实现.凭借这些增强性的功能,用户可在一年或一年半以上的时间内持续有效地利用现有存储资产,满足业务应用需求.  赛门铁克公司