计科《汇编语言程序设计》 - 实验指导书(5)
数,由功能A填入。在这两个字节之后,字符串按字节存入缓冲区。 例:lea
mov
dx,stoknin ah,0ah
int 21h
3. DOS显示功能调用
AH=9:显示字符串 要求:DS:DX=串地址;
被显示输出的字符串必须以‘$’结束。
例:lea
mov
dx,mess1 ah,09
int 21h
实验内容
仓库管理中,总共存有有关库存品的编号、名称、数量、价格等情况的表格,根据用户提供的编者按号可以找到有关材料。假设表格中共有6种库存品,表格的格式为:
stoktab db '05',' Excavators' db '08',' Lifters' db '09',' Presses' db '12',' Valves' db '23',' Processors' db '27',' Pumps'
试编写一程序,根据用户提供的编号在终端上显示其名称。
根据题目的要求,程序可由三部分组成: 1. 输入:接受用户键入的库存品号;
2. 查表:根据给定编号在表格中查找所要求的库存品名称; 3. 输出:显示找到的库存品名称。
其中,第二部分是程序的主体,可以使用循环结构。由于在给定的表格中,编号及库存品所占的字节数都是相等的,因此在查找的时候,只要根据编号的地址就可以逐项查找。循环结束条件应该是找到用户所指定的项时就可以退出,但还必须考虑在表格中没有找到所需编号的特殊情况。 要求:
如用户给出的编号可以在表格中查到,则显示出相应的库存品名; 如用户不需要再查找,只要按一下“回车”可结束程序; 若表格中无用户给出的编号,则显示:“Not in table!”,然后结束程序。
实验报告
1. 根据实验要求,设计程序,程序由输入、查表、输出三部分构成;
2. 利用记事本输入源程序,经过MASM汇编检查语法后,得到OBJ文件,利
用LINK连接程序生成EXE文件。 3. 执行程序,写出程序运行情况。
思考题
1. 若要求当表格中无用户给出的编号,则显示:“Not in table!”,然后不结束程序,继续
输出“stock number”提示用户继续查找,可以怎样实现?
2. 思考:若表格中,编号及库存品所占的字节数不相等该怎样实现程序? 3. 思考:汇编语言的表格查找实现与高级语言(C、C++等)有什么异同。
附:示例程序eg05.asm
data segment
code segment
assume cs:code, ds:data, es:data push sub push mov mov mov lea mov int lea
ds ax,ax ax ax, data ds, ax es, ax dx,mess1 ah,09 21h dx,stoknin
mess1
db 'stock number?',13,10,'$'
db 3 db ? db 3 dup(?)
stoknin label byte
max act stokn
stoktab db '05',' Excavators'
db '08',' Lifters' db '09',' Presses' db '12',' Valves' db '23',' Processors' db '27',' Pumps' db 'Not in table!',13,10,'$'
descrn db 14 dup(20h),13,10,'$' mess
data ends
main proc far
start:
mov int cmp je mov mov mov lea cmp je add loop lea mov int jmp mov lea rep lea mov int jmp ret
ah,0ah 21h act,0 exit al,stokn ah,stokn+1 cx,06 si,stoktab ax,word ptr[si] a30 si,14 a20 dx,mess ah,09 21h exit cx,07 di,descrn movsw dx,descrn ah,09 21h start
a20:
a30:
exit: main endp code ends end main
实验六 过程调用
实验目的
掌握汇编程序设计中过程(子程序)设计方法。
预习与实验要求
1.复习教材相关内容,回顾子程序设计方法; 2.复习子程序的参数传递方法,以及需要注意的问题; 3. 实验前认真听讲,服从安排。尽可能独立思考并完成实验。
实验设备与器材
微型计算机,Windows操作系统,DOS操作系统,MASM或TASM编译器,LINK或TLINK连接器。
实验原理
子程序又称为过程,相当于高级语言中的过程和函数。
在一个程序的不同部分,往往要用到“类似”的程序段,即这些程序段的功能和结构形式都相同,只是某些变量赋值不同。此时就可以把这些程序段写成子程序形式,以便需要时调用它。
例如:十进制数转换成二进制数;二进制数转换为十六进制数并显示输出等,都可以设计成子程序的形式。
调用程序在调用子程序时,经常需要传送一些参数给子程序;子程序运行完后也经常要回送一些信息给调用程序。这种调用程序和子程序之间的信息传送称为参数传送。
参数传送方式可以有以下一些方法: (1)通过寄存器传送参数
(2)如过程和调用程序在同一源文件(同一程序模块)中,则过程可直接访问模块中的变量。
(3)通过地址表传送参数地址 (4)通过堆栈传送参数或参数地址
实验内容
利用过程实现内存中压缩BCD码数据的输出。 要求:
1. PROC伪指令带参数定义子程序 2. 使用CALL指令调用子程序
3. 使用堆栈传送参数 实验报告
1.根据实验要求,设计程序;
2.利用记事本输入源程序,经过MASM汇编检查语法后,得到OBJ文件,利用LINK连接程序生成EXE文件;
3. 执行程序,写出程序运行情况。
思考题
1. 思考:通过堆栈传送参数,需要注意些什么?
2. 思考:比较汇编语言的参数传递与高级语言(C、C++等)有什么异同。 附:示例程序eg06.asm …… 此处隐藏:752字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




