《典型例题.》.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《典型例题.》.ppt

1、数据输入输出及转换 理解数据的形式 输入/输出的数据:字符串(‘0’~‘9’的ASCII码) 存储的数据:十六进制数据 例题 例1:输入多位十进制数据(无符号数) 例2:显示十进制数据(无符号数) 例3:显示十六进制数据(无符号数) 例4:输入两个十进制数据,并显示其和与差 例1 从键盘输入一个无符号的十进制数(0~65535),将其值存入变量BUF中。 输入数据为字符串,要转换成数值 例如,输入‘1234’,得到31H、32H、33H、34H字符串; 转换为数值为01、02、03、04四个字节的数据; 实际的数值为01*1000+02*100+03*10+04; 计算出十进制数值,为BUF赋值即可; 程序的主要任务 将字节数据计算出数值; 数值=[(01*10+02)*10+03]*10+04 循环结构程序实现——a1*10+a2; 十进制数串转化为数值的方法 初始化 数据指针SI、累加和AX、基数BX(10)、循环次数CX 累加和为小于16位的数据;循环次数与数串位数相同; 循环体 累加和乘以10,再加数串的一位; 从高位开始处理数串; 修改:数据指针 循环控制:计数控制 结束处理:保存结果值 例1流程图 注意事项 寄存器的使用; 数串位使用时应将字符转换为数值; 数串处理从最高位开始; 例2 将字变量BUF的值当作无符号数,以十进制形式输出。 BUF中的数据为十六进制,程序的主要任务为数制转换; 除基取余法:不断地除以基数10,余数倒序排列即可; 循环结构程序 初始化:基数CX、数据指针、被除数(DX:AX) 数据指针指向保存余数的单元,从尾单元到首单元逐次减量; 循环体: 采用除法指令,不断地除以10;注意避免除法溢出; 修改:数据指针 循环控制:条件控制——商为0; 结束处理:显示各位余数;注意转换为字符; 例2流程图 除法采用32位被除数,16位除数(10); 商在AX中,可作为下次除法的被除数; 无符号数扩展,采用0扩展; 显示结果时,注意串要以“$”结束; 可直接定义,也可程序中写入; 例3 将BX的值以十六进制形式显示。 循环结构程序 循环体内做一位十六进制数据的显示; 数值转换为字符: 0000B~1001B?+30H,1010B~1111B?+37H; 循环次数为4; 以BX的4位做一次循环; 每次取BX不同的4位,使用移位和逻辑操作得到; 注意:若使用16位系统指令,与课本代码有所区别; 例4 从键盘读入两个两位的十进制数,显示其和与差。 2、字符串处理 例5 输入小写字母,显示其前导和后继; 例6 输入字符串,显示最后4个字符; 例7 输入字符串,并逆序显示; 例8 输入字符串str1和str2,若str2是str1的子串,则输出Y,否则输出N; 例9 删除串首尾空格,压缩串内空格; 例5 从键盘输入一个小写字母,显示该字母的前导与后继。 例6 从键盘输入一个字符串(长度80),显示其最后4个字符。 例7 (方法1) 从键盘输入一个字符串(长度80),再逆序显示该字符串。 方法1:输入字符串,原地首尾相交换; 交换次数为串长度的一半; 可用指针判断; 例7 (方法2) 从键盘输入一个字符串(长度80),再逆序显示该字符串。 方法2:利用堆栈逆序; 注意:入出栈数据不能为8位; 例8(方法1 ) 输入字符串str1和str2,若str2是str1的子串,则输出Y,否则输出N。 方法1:先搜索str2的首字符,再决定是否进行串匹配; 具体的匹配方法 先使用repnz scasb,在str1中查找str2的首字符; 找到,则使用repz cmpsb进行串比较; 若匹配成功,则显示Y; 若匹配不成功,则从上次找到首字符的位置之后开始重新搜索; 当搜索次数达到LEN(str1)-LEN(str2)+1时,结束循环,显示N; 在实际搜索字符之前,要先排除两种情况 str1的长度小于str2的长度 ?显示N; Str2是空串 ?显示Y; 例8流程图(方法1) 例8(方法2 ) 输入字符串str1和str2,若str2是str1的子串,则输出Y,否则输出N。 方法2:直接进行str1的子串与str2的比较; 具体的处理方法 从str1不同位置截取长度与str2相同子串,进行比较; 从str1串首开始,至str1中能够截取与str2相同长度串的字符结束; 循环体 str1子串与str2的比较; 循环控制 str1长度范围内,匹配不成功,则继续循环; 匹配成功,则显示Y; 循环次数达到,则显示N; 例8流程图 (方法2) 例9 将以0为结束符的字符串string的首尾空格删除,并将串中的多个空格压缩成1个。 该程序的主要任务是:删除空格; 删除后,新串的长度

文档评论(0)

iyjt + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档