欢迎来到天天文库
浏览记录
ID:50177383
大小:543.00 KB
页数:62页
时间:2020-03-09
《汇编语言程序设计 教学课件 作者 何超 第5章 汇编语言程序中的字符串、代码转换与列表.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章汇编语言程序中的字符串、代码转换与列表开始5.1汇编语言的字符串5.2数据的分类和统计程序返回本章目录5.1汇编语言的字符串5.1.1字符串及其操作指令5.1.2字符串的运算返回本节1.字符串的定义及表示方法现代计算机应用中,字符串在编辑加工,词法分析,符号处理等方面得到越来越广泛的应用。在设计具体的应用程序中,亦经常要使用各种字符串。因此,在非数值的数据处理过程中,字符及字符串的处理是一个重要的方面。一般地讲,字符串指一串字符,或者说,是字符的有限序列。如:6AN7BH,用ASCII码表示,并存储在连续的存储单元中,每个字符占一个
2、字或一个字节。用比较专业的术语来说,字符串是一种特殊的线性表,它的数据元素仅由一个字符组成。一个字符串中包含的字符个数,称为这个字符串的长度。长度为零的字符串称为空串,它不包含任何字符。字符串通常用单引号或双引号括起来,例如:(1)”X1”(2)’ABC’5.1.1字符串及其操作指令字符串所能包含的字符,依赖于具体机器的字符集。目前世界上应用最广的字符集是ASCII码字符集。存储字符串的方法也就是存储列表的一般方法。最简单最普遍的方法是顺序存储,还有链接存储等,这里仅讨论顺序存储的字符串。字符串的表示在8086/8088宏汇编语言中,可以
3、借助数据定义语句DB(因一个ASCII码是7位)来定义,字符串的特征表示一般有两种,一种是在字符串的尾部用00H作标记,另一种是在字符串的前面空出一个单元,放置字符串的长度。例:STRIDB’Iamastudent’,0STR2DB4,’ABCD’2.串操作指令串操作指令完成对字符串的各种操作,操作是对一个一个字符(称为元素)而言的。因此,每一次操作都是针对一个字或一个字节进行的。其寻址方式多采用隐含寻址,源串元素固定使用SI,通常在现行的数据段,隐含段寄存器DS,但也允许段超越。目的串元素固定使用DI,隐含段寄存器ES,不允许段超越。在
4、每次基本操作后,能够借助方向标志DF,自动修改地址指针。为下一次操作作准备。当DF=0时,地址指针增量,即字节操作时,地址指针加1;字操作时,地址指针加2。当DF=1时,地址指针减量,即字节操作时,地址指针减1;字操作时,地址指针减2。为此,8086处理器有两条方向标志指令:CLD(ClearDirectionflag):置DF=0;STD (SetDirectionflag):置DF=1;串操作是通过加重复前缀实现的,每次操作只对一个字或一个字符。为此,我们先讲重复前缀指令REP。(1)重复前缀指令REP(或REPE、REPZ、REPN
5、E、REPNZ)格式:REPstrpri(strpri为串操作指令)功能:运用该指令,先要设置重复操作次数于CX之中。每执行一次,CX减1,直到CX=0时,只要(CX)≠0,就继续执行。说明:REPE、REPZ、REPNE、REPNZ分别表示如满足条件(上一步的结果:相等;为0;不相等;不为0),则继续执行。(2)MOVS串传送指令格式:可有三种MOVS DST,SRC;DST代表目的串元素,SRC代表源串元素MOVSB(字节);8位字符串操作,省略源串和目的串不写MOVSW(字);16位字符串操作,省略源串和目的串不写功能:该指令可以把
6、由SI指向的数据段DS中的一个字(或字节)送到由DI指向的附加段ES中的一个字(或字节,目的串)中去,同时根据方向标志DF及数据格式(字或字节)对SI和DI进行修改。说明:1)如果是字节操作,则SI与DI变化时是±1;如果是字操作,则SI与DI变化时是±2。2)该指令不影响标志位。(3)STOS存入串指令格式:STOSDST;源串元素隐含在AL或AX,目的串元素由ES:DI指定STOSB(字节);8位字符串操作,省略源串和目的串不写STOSW(字);16位字符串操作,省略源串和目的串不写功能:该指令把AL或AX的内容(源串元素)存入由DI
7、指定的附加段ES的某单元(目的串元素)中,并根据DF的值及数据类型修改DI的内容。说明:1)如果是字节操作则先将AL的内容存入DI指定的附加段的某单元[DI]中,然后DI再自加/减1;如果是字操作则将AX的内容存入DI指定的附加段的某单元[DI],然后DI再自加/减2。2)该指令不影响标志位。3.LODS取串指令格式:可有三种LODS SRC;源串元素由DS:SI指定的存储单元,目的串元素隐含在由DS:AL或DS:AX指定的存储单元LODSB;8位字符串操作,省略源串和目的串不写LODSW;16位字符串操作,省略源串和目的串不写功能:该指
8、令把由SI指定的数据段中某单元[SI]的内容送到AL或AX中,并根据方向标志及数据类型修改SI的内容。说明:1)如果是字节操作则先将由SI指定的单元内容送入AL中,然后SI再自加/减1;如果是
此文档下载收益归作者所有