您的位置:逆风者 汇编技术 正文
原作者:www.upwinder.com 添加时间:2007-09-01 原文发表:2007-08-31 人气:10 来源:未知

本文章共2167字,分2页,当前第1页,快速翻页:
 

  在传统的汇编语言程序设计中,选择结构程序设计一般用转移指令(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 - 下一页>>
相关文章

Win32编程中请慎用ebx/esi/edi
控制转移(2)
用汇编编写屏幕保护程序
驱动程序的动态加载
超类化
建立自己的动态链接库
关于div/idiv/mul/imul指令的用法
汇编语言的高级语言特性
实模式和任何特权级下可执行的指令
保护方式简介
请求执行时间段与Shell函数
中断和异常的转移方法
驱动程序的编译和连接
Win32汇编的环境和基础
学写基于对话框的程序
字符串操作指令
高级汇编语言技术
处理程序多重启动
以对话框为主要界面的应用程序
VxD例程:消息框

相关评论


本文章所属分类:首页 汇编技术

  热门关键字:
进制数据输出的通用程序 2007-09-12
汇编源码--showmem 2007-08-31
汇编源码--CLEAN 2007-08-31
汇编源码--hdr 2007-08-31
汇编源码--basload 2007-08-31
汇编源码--CHAR 2007-08-31
汇编源码--fxn 2007-08-31
汇编源码--alarm 2007-08-31
汇编源码--getsect 2007-08-31
汇编源码--DEV 2007-08-31
汇编源码--getspace 2007-08-31
汇编源码--frespace 2007-08-31
CIH文件型病毒检测消除程序 2007-08-31
Mixer Volume Ctrler V1.0 2007-08-31
汇编源码--COMINT 2007-08-31
自己用汇编语言写的一个病毒(源码... 2007-08-31
汇编源码--col 2007-08-31
汇编源码--BURNOUT 2007-08-31