微机原理实验1

2019-08-30 12:04

指令系统实验

一、实验目的

(1)、熟悉数据传送指令、算术运算指令、逻辑运算指令的应用 (2)、了解各指令对标志寄存器的影响 (3)、掌握循环结构的程序设计方法 (4)、掌握数据块传送程序的设计方法 (5)、掌握传送指令的应用

(6)掌握多字节书相加程序的设计方法

二、实验内容

(1)、多字节十进制加法程序设计

将两个多字节十进制数相加,要求被加数和加数均已组合BCD码的形式各自存放在以DATA1和DATA2为首的连续5个内存单元中,结果送回被加数单元。

编程思路提示:

该题目要求掌握ADC指令和DAA指令的应用。 为实现置顶功能,应从以下几个方面考虑:

a、组织数据时,要按照高位在搞地址,低位在低地址的原则。

b、要完成多字节数据相加,最低字节用ADD指令,其他高位字节则要用ADC指令。 c、因为被加数和加数都以BCD数表示,所以加法指令之后要有加法调整指令。 d、题目要求完成10个字节的十进制数相加,所以要用循环指令程序。

三、实验设备

(1)、普通PC电脑一台。 (2)、masm软件。

程序初始化 开始

CF清零 SI指向被加数 DI指向加数 CX中送5

执行ADC指令

实验设计

程序清单:

DATA SEGMENT 数据段

DATA1 DB 27H,36H,45H,25H,23H //定义5段字节变量 DATA2 DB 18H,78H,56H,43H,65H //定义5段字节变量

结束 CX-1=0? 送结果并调整指针 执行DAA指令 DATA ENDS CODE SEGMENT // 代码段

ASSUME CS:CODE,DS:DATA //2个寄存器分别和哪些段有关 START: MOV AX,DATA MOV DS,AX

LEA SI,DATA1 //SI<---DATA1变量的偏移地址 LEA DI,DATA2 // DI<---DATA2变量的偏移地址 MOV BX,00H //立即数寻址BX<---00H MOV CX,05H // 立即数寻址CX<---05H CLC

SUM: MOV AL,[SI+BX]

ADC AL,[DI+BX] //两个寄存器中相对应地址的数相加+CF DAA //加法的十进制调整

MOV [BX],AL //DS+BX的存储器<---AL的内容 INC BX //BX+1 LOOP SUM //循环求和程序 CODE ENDS END START 程序运行效果截图:

图1. 程序运行效果

四、实验心得体会

我们通过在edit环境下输入源程序,通过汇编连接,生成可执行文件后,进入debug调试环境得到加法之后的内容,我们熟悉指令系统的基本操作,掌握了单循环程序设计方法,掌握数据传送程序的方法,明白了ADC,DAA,AAA指令的区别,对我们以后的学习有很大的帮助。


微机原理实验1.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年 北京各区期末语文试题议论文阅读汇编

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: