首页>计算机>软件水平考试>复习指导>正文
汇编语言—程式设计(5)

www.zige365.com 2010-7-22 11:17:54 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
        四、桥式法:
  桥式法是利用读写记忆体的特性,将程式中若干指令直接填入,作为临时便桥,以改变此段程式的功能。
  例如在显示时,希望能提供多种变化,而又不愿减低速度及增加太多的程式。最好的方法,便是利用桥式法,在同一位址,填入需要的指令。
  桥式法用得好而又灵活时,对程式的效率极有助益。但是应该注意一点,就是只能用在可读可写的记忆区中,如若要制成「韧体」,即置入仅读记忆体中的程式,绝不可使用此法。
  下面的实例,即为萤幕显示的桥式应用。首先,把架桥的「材料」设置在缓冲器中,如:
  CDSPMODDB88H;8805=MOV[DI],AL
  DB30H;3005=XOR[DI],AL
  DB08H;0805=OR[DI],AL
  DB20H;2005=AND[DI],AL
  CDSPMOD即为缓冲器,其中有四个,分别为机器码的相异部份,如分号后所注。因为四组机器码皆有05,不必再填。=右边部份,即为该机器语言相对应的指令。
  程式部份先设妥功能定义,利用一、所说的变数应用法,依序由0至3先载入暂存器BX中。根据BX值,将所需机器码载入程式中。
  10:CLOD:
  11:MOVAL,CDSPMOD[BX];用BX取预存码
  12:MOVCS:CDSP2,AL;载入CDSP2+1
  13:CDSP:
  14:SUBSI,SI;资料由0起
  15:CDSP1:
  16:LODSB;取资料
  17:CDSP2LABELBYTE;载入的位置
  18:XORES:[DI],AL;原码263005
  19:INCDI;须改30部份
  20:LOOPCDSP1
  21:RET
  五、流水线法:
  工业上的流水线生产作业,需要极为严格的规格限制,原器件分别研制完毕后,统一送到生产线上组装。
  程式亦可采用同样的方法,只可惜一时手头上找不到现成的、适用的例子,只得将方法概述
  先设定处理流程,凡是能用这种生产流程者,皆适用。
  再设定处理流程中所采用的「生产线」,也就是缓冲器。因为流水线上所用的资料都需要由缓冲器提供。
  此缓冲器的长度由流程决定,缓冲器中的资料则由各调用本流程的原程式载入。
  各调用程式可视个别条件,将所需处理的资料,放在缓冲器内(全部或部份)。待调用后,再从原缓冲器中取出经过处理后的资料。
  六、对应表法
  凡是指根据某种需要,将经过整理的资料,以某种固定的格式,安排在一特定区域中。每当需要时,立刻可以按照排列的位置取出来使用的,皆可称之为对应表。
  这种对应表是我最喜欢利用的技巧,速度奇快不说,修改也极其容易。尤其是我做事一向不拘小节,写起程式来,专出小错。自从采用了表格对照法后,凡是适合这种形式的程式,只要想通了最理想的结构,几个指令就把程式写完了。
  兹将附录中所举的例子,对字形放大所采用的查表法,在此作进一步的介绍。
  假设有一组图形,要在萤幕上左右放大一倍。一般程式师做这种题目,都是在暂存器内移来移去,每一个字元的资料,起码要移八次之多,每次都要用借位作为转换值。而转换时,又要放进一个16位元的暂存器中,尽管可以用回路去做,时间的延误相当大,读者可参考附录二以做比较。
  当然,表格要占用空间,以本例而言,如果一次用256B,取足则要512B。
  因此这种可以说是以空间换取时间。在第一章第三节「效率」的第四条定律下,我们知道键盘输入速度,决定于人的操作速度,而人的反应远远不及电脑,故应以人的速度为时间边际值,尽量设法节省。
  目前,所涉及的是显示时间,每个人在电脑前,都期望着立即得到结果。因此,显示速度不仅要快,而且越快越好。所以,前述的空时交换应在可能范围中,视实际的边际效应,以作取舍。
  现在看看资料分析,下面列举的二进位资料,在左边为原图形点阵,在右边则为放大一倍后的点阵:
  原点阵左右放大一倍
  000000010000000000000011
  000000100000000000001100
  000000110000000000001111
  ..
  010101010011001100110011

本新闻共2页,当前在第1页  1  2  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
汇编语言——-程式设计(4)