- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学习 好资料
《汇编语言》实验报告(三)
年级: 2011 班级: 学号: 姓名:
一、 实验题目
请用子程序结构编写如下程序:从键盘输入一个二位十进制数的月分
数( 01-12),然后显示出相应的英文缩写名。
二、实验要求
1. 掌握程序的设计方法 ;
2. 掌握通过 DOS 系统功能调用实现屏幕显示与键盘输入 ;
3. 熟练使用 TD/DEBUG 调试程序。
三、 程序设计说明 ( 用来说明程序的功能、结构。包括:程序名、功能、原理及算法说明、程序及数据结构、主要
符号名的说明、程序框图等。 )
首先在定义数据段时 , 先用串定义好各个月份的数据 . 例如 db February,$. 接着定义一个数族
P, 里面放着 12 个数据 , 分别存放每个月份开头大写字母的偏移量 . 在代码段里 , 用 DOS功能实现字符的
输入 , 共需要输入 2 个字符 . 例如 07,11. 第一个字符只能是 0 或 1, 利用 si 在计数 , 起始为 0, 当第一个
字符为 1,si 增加 10, 否则不增加 . 第二个字符的输入时 , 扣掉 30h 之后 , 与 si 相加 , 并存放在 si 上. 然
后利用 si 的大小 , 来访问数组 p 的数据 , 并找到各个月份首字母的偏移量 , 将其输出 .
更多精品文档
学习 好资料
四、程序调试说明( 包括:调试情况,如上机时遇到的问题及解决办法,观察到的寄存器、存储器的内容或状态及
其分析.对程序设计技巧的总结及分析等;程序的输出结果及对结果的分析;实验的心得体会,以及诸如调试日期、
文件存放位置等需要记录的信息。 )
当输入 07 时,si=0007, 之后 ,si 减 1,si=0006,cx=0026, 输出 July. 当输入 11 时 ,si=0000B 之后 ,si
减 1,si=000A,cx=0044, 输出 November. 符合预期估计 .
经调试正确的程序的运行结果
四、 实验结果与结论 ( )
五、 使用说明 (包括:程序的使用方法,调用方式,操作步骤等;要求输入信息的类型及格式;出错信息的含义及
程序的适用范围等。 )
本程序的功能是从键盘输入一个二位十进制数的月分数( 01-12 ),然后显示出相应的英文缩写名 .在
使用时 ,只需要输入 01-12, 便能得到月份的英文 .
六、实验中遇到的问题及解决方法
程序的困难之处在于确定各个月份首字母的偏移量 , 还有就是怎么将输入的 2 个字符转换成数组 P
的偏移量 si 的值 .
更多精品文档
学习 好资料
七、程序源代码
data segment
month db January,$
db February,$
db March,$
db April,$
db May,$
db June,$
db July,$
db Aguest,$
db September,$
db October,$
db November,$
db December,$
p db 0,8,17,23,29,33,38,43,50,60,68,77
data ends
stack segment para stack
dw 20h dup (0)
stack ends
文档评论(0)