- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
最近下载
- 探询神奇的化学世界.ppt VIP
- 2025年新教材道德与法治三年级上册第三单元《在集体中长大》教案设计.docx VIP
- 实验室安全化学试剂与实验室消防知识培训课件.pptx VIP
- 2025 ACCAHA急性冠脉综合征(ACS)指南解读PPT课件.pptx VIP
- 延迟退休政策深度解析.pptx VIP
- 桂13J603 住宅厨卫组合八字型变压式耐火排气道.docx VIP
- 2025年学校校长公开选拔笔试试题及参考答案校长招聘考试笔试真题.docx VIP
- 《中国旅游文化》 课件 第七单元中国古代艺术文化.ppt VIP
- 《美国文学》教学课件Emily Dickinson (1830—1886).ppt VIP
- 规范《GB11085-1989-散装液态石油产品损耗》.pdf VIP
文档评论(0)