通信工程微机原理与接口技术模块化程序设计实验报告.docx

通信工程微机原理与接口技术模块化程序设计实验报告.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通信工程微机原理与接口技术模块化程序设计实验报告 实验目的与要求: 1. 实现以下汇编子程序 a) upper_fun(x, n),子程序名是 upper_fun,其中入口参数 x 是一个英文字母的字符串 的首地址,16 位无符号数,入口参数 n 是输入的字符串长度(n 不超过 31),8 位 无符号数,没有出口参数/返回值。程序将字符串 x 全部转换为相应的大写英文字 母。 b) lower_fun(x, n),子程序名是 lower_fun,其中入口参数 x 是一个英文字母字符串的 首地址,16 位无符号数,入口参数 n 是输入的字符串长度(n 不超过 31),8 位无 符号数,没有出口参数/返回值。程序将字符串 x 全部转换为相应的小写英文字母。 c) usage_fun(),子程序名 usage_fun,没有入口参数和出口参数,输出用户界面。 2. 程序开始时在显示器上输出用户界面,告诉用户怎么选择,用户可以选择两种操作, 大写转换操作(upper),小写转换操作(lower)。 3. 当用户选择大写转换操作(upper)时,提示用户输入英文字母字符串,以回车结束, 读取输入字符串,调用 upper_fun 函数,并在显示器上显示转换后的结果 4. 当用户选择小写转换操作(lower)时,提示用户输入英文字母字符串,以回车结束, 读取输入字符串,调用 lower_fun 函数,并在显示器上显示转换后的结果 5. 当用户输入的字符串超过 31 位,或者包含非英文字母的字符时,提示错误,并重新输 出用户界面 6. 程序无限循环,每次处理完即输出用户界面,等待用户的下一次选择 7. 用户界面及结果显示要清晰简洁 8. 例如:用户选择大写转换操作,并输入”heLLo”,则输出”HELLO”;用户选择小写转换 操作,并输入”heLLo”,则输出”hello”。如果用户输入”hello123”,因为包含非英文单词 的字符,则输出错误提示。 设计思想(需绘制实验原理图或流程图): 程序清单(程序中需有必要注释): ; 数据段 data segment label1 db please input upper(u) or lower(l),0dh,0ah,$ label2 db 0dh,0ah,please input English character,less than 31,0dh,0ah,$ label3 db 0dh,0ah,the English character more than 31,0dh,0ah,$ label4 db 0dh,0ah,the string contains character other than English characters,0dh,0ah,$ label5 db 0dh,0ah,$ buffer db 40,0,40 dup(0) data ends ; 代码段 code segment assume cs:code, ds:data upper_fun proc ;大写转换子程序upper lea dx,buffer mov ah,0ah int 21h ;调用21号中断,让用户在界面上输入不超过31个英文字符 mov bl,31 cmp bl,buffer[1] JB error1 ;判断用户输入的字符个数是否超过31个 mov cx,0 mov cl, buffer[1] ;buffer[1]中存储着用户输入的字符的数目(不包括回车) mov bx,2 next1: mov al,buffer[bx] and al cmp al,A jl error2 cmp al,Z jg error2 ;将用户输入的字符全部转成大写字符,然后判断该字符是否在A和Z之间 and buffer[bx] ;将字符串中的小写字母转换成大写字母 inc bx loop next1 mov ah,9 lea dx,label5 int 21h ;21号中断,在界面进行回车换行 mov bl,buffer[1] mov buffer[bx+3],0dh mov buffer[bx+4],0ah mov buffer[bx+5],$ ;在用户输入的字符串最后自动加上回车换行及$结束标志 lea dx, buffer[2] mov ah,9 int 21h ;21号中断,输出转换后的结果 jmp over1

文档评论(0)

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

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

1亿VIP精品文档

相关文档