8086汇编实现BCD数四则运算与显示
4星 · 超过85%的资源 需积分: 21 21 浏览量
更新于2024-11-05
收藏 43KB DOC 举报
本篇实验涉及8086汇编语言编程,主要内容围绕BCD数的四则运算和基本算术操作展开。实验的核心目标是编写一个程序,首先接收用户从键盘输入的一位十进制数Y,并将该数与预设的非压缩BCD数X进行加法、减法、乘法以及除法运算。具体步骤如下:
1. **输入和存储数据**:
- 通过`INT 21H`中断服务程序(即系统调用)从键盘获取输入的十进制数Y,并将其转换成BCD码存储在寄存器Y中。
2. **四则运算**:
- **加法**:使用`ADD`指令将X和Y相加,同时使用`AAA`指令完成借位调整,结果存放在`ANS_A`变量中。
- **减法**:使用`SUB`指令,`AAS`指令处理借位,结果存放在`ANS_S`变量中。
- **乘法**:通过将X的低8位与Y相乘,然后对结果进行调整(`AAM`),最终将乘积的高16位存入DX,低8位存于AL,即`ANS_M`。
3. **除法**:题目中提到的除法操作(`X/Y`)没有考虑余数,这通常意味着不执行实际的除法运算,而是可能使用某种近似方法来表示商。在8086汇编中,直接的除法操作可能需要更复杂的算法或库函数支持。
4. **输出结果**:
- 对于每个运算结果,程序会输出对应的运算符(如“+”、“-”、“*”或“/”)和运算后的BCD值。这通过打印特定的字符串(如`MESS1`到`MESS5`)并调用`INT 21H`输出ASCII字符实现。
5. **其他任务**:
- 统计`BUF`数据区中的符号字节数平均值和两个无符号三字节数`DATA1`和`DATA2`的相加结果,但提供的部分内容并未详细展示这部分的具体实现。
6. **控制流程**:
- 使用循环和条件判断结构来处理重复控制指令和串操作,包括统计BUF字数据区中正数和负数的个数。
整个实验不仅涉及基础的算术运算,还锻炼了汇编语言的数据处理、输入输出、算术指令运用以及逻辑控制能力,适合用于学习和理解8086汇编语言的实践操作。
2009-06-19 上传
2019-01-19 上传
2011-05-06 上传
2010-04-25 上传
2018-05-13 上传
2021-10-04 上传
2021-09-29 上传
2021-10-10 上传
jia_xiaoli
- 粉丝: 6
- 资源: 13
最新资源
- 行业文档-设计装置-一种利用字型以及排序规则实现语言拼写校正的方法.zip
- jojo_js:前端相关的js库 ,组件,工具等
- auto
- audio-WebAPI:HTML5 音频录制和文件创建
- Text-editor:使用nodejs和html制作的多人文字编辑器
- kcompletion:K完成
- 课程设计--Python通讯录管理系统.zip
- 基于机器学习的卷积神经网络实现数据分类及回归问题.zip
- node_mailsender:使用docker的简单node.js邮件发件人脚本
- my-website
- angular-gulp-seed-ie8:使用 Gulp 动态加载 IE8 polyfills 的 Angular 基础项目
- ATMOS:ATMOS代码
- 基于webpack的vue单页面构建工具.zip
- Suitor_python_flask:Reddit feed命令行客户端界面和Web界面工具
- 行业文档-设计装置-一种利用秸秆制备瓦楞纸的方法.zip
- .emacs.d:我的个人emacs配置