欢迎来到天天文库
浏览记录
ID:48807721
大小:145.50 KB
页数:36页
时间:2020-01-27
《h3-567 控制结构和宏 - 副本.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、3.5控制汇编语言程序语句MASM6.X版本提供了控制程序流程的三种汇编语句:IF语句DO-WHILE语句REPEAT-UNTIL语句其表达式常用的运算符见表3.9(P96)。该类伪指令的书写格式与高级语言的书写方式相类似,汇编程序在汇编时会自动增加转移指令和相应的标号。理解并掌握该知识,对将来学习编译原理课程也有一定的帮助。3.5.1IF语句对·IF后面的表达式进行计算后再作为条件进行判断。一般形式·IF语句:嵌套形式IF语句:格式1:·IF表达式格式2:·IF表达式语句l语句1·ELSE·ELSEIF表达
2、式语句2语句2·ENDIF·ELSE语句n·ENDIF例3.52编程实现将键盘输入的字符、数字转换成十六进制数。·MODELTINY·CODE·STARTUPMOVAH,1;键盘输入INT21H·IFAL>='A'&&AL<='F‘;41~46HSUBAL,37H·ELSEIFAL>='a'&&AL<='f‘;61~66HSUBAL,57H·ELSESUBAL,30H;30~39H·ENDIF·EXITEND3.5.2DO-WHILE语句对·WHILE、·BREAK、·CONTINUE后面的表达式进行计算后再
3、作为条件进行判断。格式1:·WHILE表达式语句·ENDWWHILE语句是一种先判断后执行的循环语句。其控制流程是,先计算表达式的值并判断。格式2:·BREAK[·IF表达式]控制程序当表达式条件成立时,退出本层循环体。可用于在程序中设置断点。例3.53·BREAK·IFEAX==0;当测试到EAX=0,则终止循环。格式3:·CONTINUE[·IF表达式]控制程序当表达式条件成立时,循环继续进行。否则跳过剩余语句到与它最近的循环条件判断语句。在·BREAK、·CONTINUE后面的·IF表达式不需要·END
4、IF来结束。与C语言的相应功能一致。例3.54·CONTINUE·IFAL==6;测试到AL=6时,继续进行循环。例3.55编程实现从BUF缓冲区10个字符中寻找'$'字符,如找到显示'$'字符,否则显示'0'。·IFAL=='$'MOVDL,AL·ELSEMOVDL,'0'·ENDIFMOVAH,2;显示字符INT21H·EXITEND(用REPNZSCASB指令)·MODELSMALL·DATABUFDB'ABCDEFGI$K'·CODE·STARTUPMOVCX,10LEABX,BUFMOVAL,0·W
5、HILEAL!='$'MOVAL,[BX]INCBXDECCX·BREAK·IFCX==0·ENDW3.5.3REPEAT-UNTIL语句对·UNTIL后面的表达式进行计算后再作为条件进行判断。循环至少执行一次。格式:·REPEAT语句·UNTIL表达式例3.56编程实现将BUF缓冲区100个字节数据传到BLOCK缓冲区。·MODELSMALL·DATABUFDB10,20,…,88;(100个字节)BLOCKDB100DUP(?)·CODE·STARTUPMOVCX,100LEABX,BUFLEASI,B
6、LOCK·REPEATMOVAL,[BX]MOV[SI],ALINCSIINCBX·UNTILCXZ;CX←CX-1,并判断CX=0·EXITEND(用REPMOVSB指令)3.6结构和记录汇编语言还提供了用于说明复杂数据类型的伪指令,利用这些伪指令能够描述复杂数据类型,本节介绍结构、联合和记录。原则:先说明、后定义、再访问3.6.1结构和联合结构是不同数据类型和不同长度数据区间的数据的集合。除了联合中的数据区间可以在内存重叠外,联合和结构是相同的。结构中的任何一个数据区间,都具有相对于结构首地址的偏移地址的
7、属性,结构的长度是所有数据区间长度的总和。联合中的任何一个数据区间,其首地址均相同,因此,联合的长度是所有数据区间长度中最长区间的长度。所以联合允许在相同的区间定义不同的数据类型。换句话说,可以在程序中根据需要,改变同一区间的数据类型。原则:先说明、后定义、再访问1.结构与联合类型说明在描述结构与联合类型数据或使用结构与联合型变量之前,需要说明结构与联合类型。一般格式如下:结构名STRUC
8、UNION[属性]数据定义语句序列结构名ENDS属性:[对齐属性][,非独立属性]对齐属性:定义起始边界值,可以是1、2
9、和4,缺省值是1。例3.57下列语句说明了一个名为PERSON的结构类型:PERSONSTRUCIDDD0;偏移量为0SCOREDW60;偏移量为4YEARDB10;偏移量为6PERSONENDS结构中不同数据区间用不同数据类型来定义变量,数据区间称为结构的字段,相应的变量名称为字段名。一个结构中可以含有多个字段,各字段可以有不同的长度(以字节为基本单位),可以独立地存取任一字段。2.结构与联合变量
此文档下载收益归作者所有