七、模式法
所谓模式法,是指在程式的处理过程中,分析其规律,以期找到一种共同具有的「模式」。并用此模式,设计成为一个个程式单元,以追求最高效率。
这种模式,可用「概念」来代表,但最理想的表达方法,仍以视觉图形为宜。也就是说,最好能把分析出来的模式,用图形表示,并据以理解及设计程式。
兹以常用的功能「排序」为例,来说明模式法的应用,并设计成为程式。
先假定需要排序的资料结构为:
11每笔资料之长度固定为一字元。
12资料形式为 ASCII码,16进位值,由 20H到 7EH。
13排序时,资料数值小者排在低位,大者排在高位。
14程式开始时参数设定为:
AL= 高位之资料。
AH= 低位之资料。
DS:SI=资料存贮处。
资料由低位开始检查,并同时排序,直到全部查完为止。排序时,交换高位及低位之资料,以使
高位住址资料≧低位住址中之资料。
由于人类行为与视觉息息相关,故最有效的认知方式,是以作图来说明。以下即为上一陈述之图形说明。
│? │
模式一供检查 ├─┤
AL,AH 之大小 ┌ AH <--│? │<-- AL ┐
模 │ ├─┤ │模
模式二交换资料 式 ┤ AL <--│? │<-- AH ├式
其中 AH>AL 一 │ ├─┤ │二
└ SI = │? │ = SI ┘
├─┤
由上图可见在模式一中,AH为低位资料,AL为高位资料。比较 AL,AH 之大小,即可知是否符合序列规定。如符合,则继续做下去,否则依模式二,将小值放进低位,大值放进高位住址中。程式只要设法保持此一处理之形式,即可简单明瞭地完成任务。
1: COMPAR:
2: MOV AH,AL ;设AH为低位值
3: COMPAR1:
4: LODSB ;取资料
5: &