教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

计科《汇编语言程序设计》 - 实验指导书(5)

来源:网络收集 时间:2026-09-07
导读: 数,由功能A填入。在这两个字节之后,字符串按字节存入缓冲区。 例:lea mov dx,stoknin ah,0ah int 21h 3. DOS显示功能调用 AH=9:显示字符串 要求:DS:DX=串地址; 被显示输出的字符串必须以‘$’结束。 例:

数,由功能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字,全部文档内容请下载后查看。喜欢就下载吧 ……

计科《汇编语言程序设计》 - 实验指导书(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/613370.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)