在传统的汇编语言程序设计中,选择结构程序设计一般用转移指令(JMP)加标号来实现,这种程序结构实际上并不是真正的选择结构;在循环程序设计中,一般用循环指令(LOOP)或转移指令来实现循环,这种结构也不具有结构化程序中的"WHILE循环"或"REPEAT循环"的结构特征;在程序分支和循环的控制条件方面,每步判断只能判断一个条件,条件增多时,不得不增加判断指令的条数,在这里不能应用逻辑表达式进行条件判断。本文介绍一些设计选择结构程序、循环结构程序、过程子程序及其他一些用于结构化程序设计的语句及用于多条件判断的逻辑表达式。利用这些语句可设计具有高级语言结构风格的结构化汇编语言程序。 逆风者 1 程序变量说明 在进行变量说明时,可用[S]BYTE、[S]WORD]、[S]DWORD、FWORD、QWORD、TBYTE、REAL4、REAL8及REAL10类型说明符说明变量类型,其中的可选项[S]表示定义的数据为带符号数。定义变量的格式为: [变量名]类型说明符初始值[,初始值]... 2.MODEL伪指令 .MODEL伪指令用于说明存储器模式等,格式为: .MODELmemodel[,langtype][,ostype][,stackoption],其中,memmodel为存储模式,langtype为语言类型(C,PASCAL,BASIC,FORTRAN等),ostype为操作系统类型(OS-DOS),stackoption为栈类型,可取NEARSTACK(SS=DS)或FARSTACK(SS〈〉DS)。 3程序起始及退出代码的产生 语法: .STARTUP .EXIT[表达式] .STARTUP为给定的CPU类型及由.MODEL定义的存储模式、操作系统及栈类型产生起始代码,初始化DS、SS及SP,并定义起始地址标号。因而不需要在END指令中给出起始地址标号,程序将自动从.STARTUP处开始执行。在TINY存储模式时还产生ORG100H指令。 .EXIT产生终止程序、返回操作系统或调用程序的代码。[表达式]为返回给操作系统或调用程序的一个退出码。 4选择结构(块IF语句) 语法:.IF条件1 语句块2 [.ELSEIF条件2 语句块2] ...... [.ELSE 语句块n] .END IF 看到,其语法结构和高级语言基本相同,执行情况也相同。其中的条件为一逻辑表达式,其运算符基本同C语言,为:==、!=、>、>=、<、<=、&、!、&&、。组成逻辑表达式的成分可为:变量、寄存器名、常量及符号CARRY?、OVERFLOW?、PARITY?、SIGN?和ZERO?(依次分别表示标志位CF、OF、PF、SF、ZF为1)。逻辑表达式的结果只有真(非0)或假(0)。逻辑表达式的求值顺序为从左到右,可用括号改变顺序。 上述的选择结构可以嵌套。 5循环结构
结构1: 结构2: 结构3: .WHILE条件 .REPEAT .REPEAT 语句块 语句块 语句块 .ENEW .UNTIL条件 .UNTILCXZ[条件] 其中各"条件"均为一逻辑表达式。在语法1中给出的结构为"WHILE型循环",当条件为真时循环。在语法2和语法3中给出的结构均为"UNTIL型循环",当条件为假时循环。在结构3中语句.UNTILCXZ还将使CX减1,并测试其是否为0,当CX为0时也将退出循环。 上述各循环结构均可嵌套。循环体内的.BREAK[.IF条件]语句可无条件或有条件退出各循环,而.CONTINUE[.IF条件]语句可在本次循环中跳过循环体内没有执行的代码进入下一轮循环。 6过程的原型说明和调用 过程子程序仍然可用PROC定义,常用的语法可为: namePROC[distance][langtype][USESreglst][,param[:tag]]...[LOCALvarlst]
本文章更多内容:1 - 2 - 下一页>> |