子程序调用与宏定义的异同_宏指令及子程序设计实验
一.实验目的及实验环境
实验环境:
1、熟悉宏指令、宏定义、宏调用以及宏展开的概念;掌握宏指令的定义与调用
的方法。
2、掌握子程序的定义、调用以及调用程序与子程序之间参数的传递方法。
3、了解宏指令与子程序的异同以及各自的适用场合。
实验环境:80x86系列微型计算机一台以及进行汇编语言程序设计所必需的编程工具(文本编辑器、ASM.EXE、LINK.EXE、DEBUG.EXE)
二.实验内容
从键盘输入10个无符号十进制数(小于256),将其转换为二进制数并存放在NUM字节型变量中,找出其中的
最大数,并将找出的最大数在屏幕上
显示出来。
要求:
①在屏幕上显示字符串提示信
息的功能由宏指令DSTRING实现;
②将键盘输入的十进制数转换
成二进制数由子程序DTOB实现;
③在N个无符号字节型二进制
数中找出最大数的功能由子程序
FMAX实现;
④将一个无符号字节型二进制
数转换为十进制数并在屏幕上显示
的功能由子程序BTOAD实现。
程序运行结果如右图所示。
三.方案设计
1、编程指导
(1)显示提示信息的宏指令DSTRING的编写
宏指令通常用于在程序中需要反复使用但所需指令条数又不是很多的情形;而对于需要经常使用且需要较多指令才能完成的功能通常通过子程序调用来实现。这是因为,从执行速度上看,由于子程序调用涉及到保护断点的操作,因此,子程序调用比宏调用执行时间相对要稍长一些;但从生成的可执行文件的大小方面考虑,子程序调用生成的文件要小一些。读者在进行汇编语言程序设计时,应综合考虑两者的利弊,以便进行合理选择。
下面给出实现提示信息显示的宏指令的定义:
DSTRING MACRO STRING
PUSH DX
PUSH AX
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
POP AX
子程序调用与宏定义的异同_宏指令及子程序设计实验相关推荐
- 子程序调用与宏定义的异同_微机原理 宏指令及子程序设计实验:宏指令和子程序的区别...
西安邮电学院 微机原理实验报告 题 目: 宏指令及子程序设计实验 院系名称: 班 级: 学生姓名: 学号(8位): 指导教师: 2.5 宏令及子程序设计实验 2.5.1 实验目的 1.熟悉宏指令.宏定 ...
- 子程序调用与宏定义的异同_冒泡排序_汇编语言的子程序调用与宏定义实现
1 子程序 ;环境为ADS 子程序调用 AREA MAIN,CODE,READONLY ENTRY CODE32 start BL MAOPAO stop MOV R0,#0x18 LDR R1,=0 ...
- 子程序调用与宏定义的异同_如何用数控系统进行简单的宏程序调用?老师傅告诉你,用G65就行...
什么是简单调用?很多人都不知道吧,如果想要深入操作宏, 就先要学会变量,学会变量之担,再去操作宏,就会变得非常的简单,今天给大家分享如何用G65进行简单的宏程序调用. 用户宏的简单宏调用是指在主程序中 ...
- 宏定义编程软件_什么是计算机编程? 定义软件开发。
宏定义编程软件 My five year old son, Ramy, approached me one day while I was working from home and asked, & ...
- 超前进位加法器实验报告_超前进位加法器设计实验分析
课程 名称 计算机组成原理 实验课时 实验 项目 超前进位加法器设计实验 实验时间 实验 目的 1. 掌握超前进位加法器的原理及其设计方法 . 2. 熟悉 CPLD 应用设计及 EDA 软件的使用 实 ...
- 宏定义中的 ## ... __VA_ARGS__
宏定义中的##操作符和... and _ _VA_ARGS_ _ 1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operat ...
- 函数宏定义 与函数自定义
为什么在C语言中要有函数宏定义这种形式呢?宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等. 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏 ...
- c语言里宏定义算变量嘛,C语言宏定义的一些总结
较大的C语言项目都会用大量的宏定义来组织代码,比较经典的代码就是Linux Kernel的头文件中用的宏定义.看起来宏展开就是做个替换而已,其实里面有比较复杂的规则,有关宏展开的语法规则此小结力图整理 ...
- 函数式宏定义与普通函数的区别?C语言宏定义和宏定义函数 ?
http://www.jb51.net/article/41869.htm 尽管函数式宏定义和普通函数相比有很多缺点,但只要小心使用还是会显著提高代码的执行效率,毕竟省去了分配和释放栈帧.传参.传返回 ...
最新文章
- 网络流24题 飞行员配对方案问题
- python数据结构的列表_Python数据结构之列表
- Matlab中typecast函数由int8转换为int32
- BZOJ-2038-小Z的袜子hose-莫队
- 【转载】在华为敲代码那些年,我知道的这些事
- oracle材料差异科目,ORACLE分科目统计每科前三名的学生的语句
- python 素描化图像_python实现图片素描效果
- pde中微元分析法的主要思想_有限元方法的核心思想
- HipHop PHP HHVM资料收集
- 插入移动硬盘_Win10插入移动硬盘或U盘有提示声但电脑中不显示的解决方法
- h5打开app_移动端产品比较分析:APP、小程序、H5
- 可以自由停靠的窗体!
- SHA1算法实现及详解
- 洛谷p3764签到题3
- 以下是一段歌词,请从这段歌词中统计出朋友出现的次数。 这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再
- ROI区域图像叠加和 初级图像混合
- Bootstrap Validate 下拉框验证
- 数显之家快讯:【SHIO世硕心语】做为职业经理人,你想成为车轮,还是发动机,还是方向盘?
- IDEA更新至2020版后Version Control窗口的还原问题
- Django适配达梦数据库
热门文章
- 【元胞自动机】基于matlab元胞自动机双车道交通流模型含靠右行驶【含Matlab源码 231期】
- 优秀网站设计欣赏的200佳网站推荐(系列九)
- 计算机应用基础职业技能目标,《计算机应用基础》课程标准4
- cesium-坐标系统
- NYOJ-94-cigarettes-2013年09月26日22:19:03
- OpenCV 3.0.0处理鱼眼镜头信息 - Fisheye camera model
- MyBatis insert操作返回主键
- UML系列文章(19)基本行为---交互图
- 内存地址空间为何用十六进制表示(pamp分析基础)
- Angular 2-模板