- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言第二次实验报告
计算机11班
2110505018 司默涵
2013年5月25日
80X86汇编语言程序设计课内实验报告
班级
计算机11
实验时间
2013/
姓名
司默涵
学号
2110505018
实验内容概述
实验一 子程序及 DOS/BIOS 调用程序设计
题6.9
设有10 个学生的成绩分别是76,69,84,90,73,88,99,63,100 和80 分。 试编制一个子程序统计60~69 分,70~79 分,80~89 分,90~99 分和100 分的人数并分别存放到S6, S7, S8, S9 和S10 单元中。
实验二 高级汇编语言技术
题7.11
试编写一段程序,完成以下功能:若给定名为X 的字符串长度大于5 时,下列指令将汇编10 次。
ADD AX, AX
(要求:使用条件汇编,编译过程中生成LST 文件,查看宏展开情况)
实验三 输入输出程序设计
编写程序,使类型1CH 的中断向量指向中断处理程序COUNT,COUNT 统计1CH 中断次数并存入单元M 中。
实验四 BIOS 和DOS 中断
题9.2
编写一个程序,接收从键盘输入的10 个十进制数字,输入回车符则停止输入,然后将这些数字加密后(用XLAT 指令变换)存入内存缓冲区BUFFER。
加密表为:
输入数字: 0,1,2,3,4,5,6,7,8,9
密码数字: 7,5,9,1,3,6,8,0,2,4
实验步骤
第一题:
在主程序中调用子函数count,完成将每个在数组mark里的成绩一一取出,分别判定其大小而放入统计60~69 分,70~79 分,80~89 分,90~99 分和100 分的人数的S6, S7, S8, S9 和S10 单元中,在屏幕上依次显示出S6, S7, S8, S9 和S10中的数。
第二题:
使用条件汇编和重复汇编。判断当给定名为X 的字符串长度大于5 时,重复 ADD AX, AX 10 次。
第三题:
使类型1CH 的中断向量指向中断处理程序COUNT,COUNT中 1CH 中断每调用一次则给num加一,计算出num最后的值后存入单元M 中。
第四题:
接收从键盘输入的10 个十进制数字,输入回车符则停止输入,
在bx里存入数组7,5,9,1,3,6,8,0,2,4的符号地址,每键入一个数后都存入al,调用xlat使得(al)—((al)+(bx))
al中为译码后的数,存入string并一次输出所有的数。
实验中遇到的问题及其解决方法
问题
在调用DOS/BIOS时将16进制数后没有加H,造成程序报错。
解决方法:仔细读程序,多注重编程细节,努力养成好的编程习惯。
问题
由于我的电脑是64位系统,不支持masm,因此我一直用emu8086编程,但在实践中发现我所使用的emu8086模拟器在语法规则方面和masm有些不同,且不支持条件汇编和重复汇编。
解决方法:利用dosbox配合masmplus,模拟dos环境,从而解决了不兼容问题。
对中断向量的修改、恢复的理解不清晰,在编写题目三时遇到了一些困难。
解决方法:经过老师的讲解和自己看书思考,最终解决了问题。
实验结果
见附录。
2013年5 月17 日
建议
可以考虑增加实验时间。汇编语言的风格、思路与我们之前学习过的高级语言有所不同,熟悉编程环境需要时间。感觉上机期间,同时需要熟悉环境、设计算法、编写程序和调试程序是很有压力的。所以可以考虑在正式编程前增加一次实验。
可以考虑设计一些更加有趣的题目。本次需要编写的两个程序有些枯燥,不妨再生动些。
3、可以考虑使用类似C语言学习时的moodle系统,可以同时减轻老师和学生的负担。而且实现了在寝室中可以随时编写程序。避免到上机时猝不及防。
备注
源代码和截图见附录
附录
程序一
ASM图
ASM图较为复杂,从略。
程序代码
data segment
score db 76,69,84,90,73,88,99,63,100,80
s6 db 0
s7 db 0
s8 db 0
s9 db 0
s10 db 0
data ends
code segment
assume cs:code, ds:data
main proc
start:
mov ax,data
mov ds,ax
mov cx,10
call alloc
disp:
mov dl,s6
call display
mov dl,s7
call display
mov dl,s8
call display
mov dl,s9
call display
mov dl,s10
call display
您可能关注的文档
最近下载
- 七年级语文第一次月考卷(全解全析)(苏州专用)-A4.docx VIP
- 2025-2030中国军用卫星有效载荷和子系统行业市场发展趋势与前景展望战略研究报告.docx VIP
- 五粮液面试题库及答案.doc VIP
- 2024上海市公务员考试【省直、行测A类、C类、申论A卷】4套真题及答案.doc VIP
- 蒸压加气混凝土砌块薄层砌筑.docx VIP
- 人教版七年级语文上册第二单元测试题及答案.doc VIP
- 16J604 塑料门窗(建筑图集).docx VIP
- 【最新版】人教版七年级上册语文第一单元测试卷(含答案).pdf VIP
- 眭氏源流及宗亲分布.docx VIP
- 西方現代主义文学讲稿.doc VIP
文档评论(0)