在学习高级语言程序设计时,我们知道了程序的三大主要结构:顺序结构、分支结构和循环结构。在汇编语言的源程序也同样有此三大结构,所不同的是它们的表现形式不同。用高级语言编写程序时,由于不使用“转移语句”而使这三种结构清晰明了。
但在汇编语言的源程序中,很难不使用“转移语句”(除非是一些只有简单功能的程序),有时甚至会有各种各样的“转移语句”。由于存在这些转移语句,就使得:汇编语言源程序的基本结构显得不太明确。如果源程序的编写者思维混乱,编写出来的源程序在结构上就会显得杂乱无章,反之,如果编写者条理清晰,安排的操作井然有序,那么,编写出来的程序在结构上就会一目了然。
总之,不论是高级语言的源程序,还是汇编语言的源程序,其程序的三大基本结构也还是万变不离其宗的。
6.2.1顺序结构
顺序结构是最简单的程序结构,程序的执行顺序就是指令的编写顺序,所以,安排指令的先后次序就显得至关重要。另外,在编程序时,还要妥善保存已得到的处理结果,为后面的进一步处理直接提供前面的处理结果,从而避免不必要的重复操作。
例6.3编写程序段,完成下面公式的计算(其中:变量X和Y是32位有符号数,变量A,B和Z是16位有符号数)。
A←(X-Y+24)/Z的商,B←(X-Y+24)/Z的余数
解:
DATA1SEGMENT
XDD?
YDD?
ZDW?
ADW?
BDW?
…
DATA1ENDS
CODE1SEGMENT
…
MOVAX, X
MOVDX, X+2;用(DX:AX)来保存32位变量X的数值
SUBAX,Y
SBBDX, Y+2;(DX:AX)-(Y+2:Y)
ADDAX, 24D
ADCDX, 0;(DX:AX)+24
IDIVZ
MOVA, AX
MOVB, DX
…
CODE1ENDS
在编程序时,常常需要交换二变量之值。假设需要交换值的变量名为:Var1和Var2,临时增加的变量名为Temp。常用的算法如下:
Temp = Var1
Var1 = Var2
Var2 = Temp |