- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
AGAIN:ADDAX,CX01DECCX02JNZAGAIN03MOVSUM,AX04MOVAH,4CH05INT21H06CODEENDS07ENDSTART08一个循环结构通常由以下几个部分组成。1.循环初始化部分。一般要进行地址指针、循环次数及某标志的设置,相关寄存器的清零等操作。只有正确地进行了初始化设置循环程序才能正确运行,及时停止。2.循环处理部分。是要求重复执行的程序段部分,对应于要求重复执行的操作。3.循环控制部分。由该部分修改并判断控制循环的条件是否满足,以决定是否继续循环。有计数器控制和用特征条件判断来控制。4.循环结束部分。如循环运行结果存储或输出等循环程序的基本逻辑结构DO—UNTIL结构:在执行循环体之后,再判断循环控制条件是否满足。循环程序的循环体至少必须执行一次。DO—WHILE结构:循环控制部分在循环体的前面,先判断执行循环体的条件,满足条件就执行循环体,否则就退出循环。其循环体有可能并不执行。循环程序设计例9在内存的字单元X中有一个16位的二进制数,统计X单元中1的个数,并将结果存入RESULT单元中。分析:这是一个循环统计的工作。采用DO—WHILE结构,做16次循环,每次将最高位移入CF中进行测试,先判断结果是否为0,若为0,则结束;否则统计计数后循环重复。DATASEGMENTXDW31A0HRESULTDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,START:MOVAX,DATA MOVDS,AXMOVCX,0MOVAX,XAGAIN:ANDAX,AXJZEXITSHLAX,1JNCNEXT01INCCX02NEXT:JMPAGAIN03EXIT:MOVRESULT,CX04MOVAH,4CH05INT21H06CODEENDS07ENDSTART08五、程序开始和结束语句1.NAME和END伪指令功能:定义一个模块,作为一个独立的汇编单位,在输出汇编语言程序的列表文件时,将在每一页的开头打印出该程序名。若源程序中省略NAME,则将源文件名作为目标模块的名字。格式:NAME模块名END标号…注:一个模块是一个独立的汇编单位,汇编处理只进行到模块结束语句END为止。例:CODESEGMENTSTART:…SUB1PROCNEAR…SUB1ENDPCODEENDSENDSTART12ORG格式:ORG[表达式]功能:给汇编程序设置位置指针,指定下面语句的起始偏移地址。表达式为给定的偏移地址。一般情况下,段定义语句(SEGMENT)指出了段的起点,偏移地址为0,段内各语句或数据的地址由段地址开始依次类推可确定。当用户要求指定某条指令或数据为某个指定地址时,可用ORG来改变。1234例:用ORG改变数据段地址DATASEGEMENTORG100HA1DB10H,20H,30H;A1偏移地址为100HORG200HA2DW3031H,3233H;A1偏移地址为200HDATAENDS一般格式为:宏指令名MACRO[形式参量表]宏体ENDM在汇编语言书写的源程序中,若有的程序段要多次使用,为了简化程序书写,该程序段可以用一条宏指令来代替,而汇编程序汇编到该宏指令时,会产生源程序所需的代码。代码段:MOVAX,3HMOVCL,4SALAL,ClMOVBX,6H程序包含多个模块时,有些程序或数据在各个模块间要
文档评论(0)