微机原理与接口专业技术实验书Word文档下载推荐.docx

上传人:b****6 文档编号:19596422 上传时间:2023-01-08 格式:DOCX 页数:63 大小:807.29KB
下载 相关 举报
微机原理与接口专业技术实验书Word文档下载推荐.docx_第1页
第1页 / 共63页
微机原理与接口专业技术实验书Word文档下载推荐.docx_第2页
第2页 / 共63页
微机原理与接口专业技术实验书Word文档下载推荐.docx_第3页
第3页 / 共63页
微机原理与接口专业技术实验书Word文档下载推荐.docx_第4页
第4页 / 共63页
微机原理与接口专业技术实验书Word文档下载推荐.docx_第5页
第5页 / 共63页
点击查看更多>>
下载资源
资源描述

微机原理与接口专业技术实验书Word文档下载推荐.docx

《微机原理与接口专业技术实验书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理与接口专业技术实验书Word文档下载推荐.docx(63页珍藏版)》请在冰豆网上搜索。

微机原理与接口专业技术实验书Word文档下载推荐.docx

双色灯输入由8255来驱动,主要用来做模拟交通灯实验。

1.3单色LED灯模块:

单色LED灯输入DL1-DL8可由8255来驱动,用来完成单色灯实验。

1.4电位器:

该模块主要为A/D转换提供模拟输入电压。

1.5分频器模块

1.6单脉冲电路

1.7步进电机驱动电路

该电路通过2003驱动步进电机。

步进电机脉冲信号可以由8255提供。

1.8A/D转换器模块

0809各通道的口地址是CS+0H,CS+1H,CS+2H,CS+3H,CS+4H,CS+5H,CS+6H,CS+7H。

用于A/D转换实验。

1.9D/A转换器模块:

该电路可以用于做D/A转换实验和驱动直流电机实验。

0832口地址为CS32。

1.108251可编程串行通讯模块:

可用来做8086与PC机通讯的实验。

1.11可编程定时/计数器模块

本电路模块可用于产生定时中断,实现实时时钟实验等,具体接法请参照实验。

本电路口地址为CS53。

1.128259中断控制器实验模块

本模块为8259中断实验模块,在串行监控方式下做8259中断实验。

1.13开关量输入实验模块

第三章软件实验部分

实验一两个多位十进制数相减实验

一、实验要求:

将两个多位十进制数相减,要求被减数,减数均以ASCII码形式按顺序存放在以DATAI和DATA2为首的5个内存单元中(低位在前),结果送回DATAI处。

二、实验目的:

1.学习数据传送和算术运算指令的用法。

2.熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。

三、实验程序框图:

四、实验程序:

文件路径为C:

\HK88TE\cai\asm\Ruanjian\Rjexp1.asm

DATASEGMENT

DATA1DB33H,39H,31H,37H,38H;

第一个数据(作为被减数)

DATA2DB36H,35H,30H,38H,32H;

第二个数据(作为减数)

MES1DB'

-'

'

$'

MES2DB'

='

DATAENDS

STACKSEGMENT;

堆栈段

STADB20DUP(?

TOPEQULENGTHSTA

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK,ES:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAX,STACK

MOVSS,AX

MOVAX,TOP

MOVSP,AX

MOVSI,OFFSETDATA1

MOVBX,05

CALLDISPL;

显示被减数

MOVAH,09H

LEADX,MES1

INT21H

MOVSI,OFFSETDATA2

MOVBX,05;

显示减数

CALLDISPL

LEADX,MES2

MOVDI,OFFSETDATA2

CALLSUBA;

减法运算

显示结果

MOVDL,0DH

MOVAH,02H

MOVDL,0AH

MOVAX,4C00H

DISPLPROCNEAR;

显示子功能

DSI:

MOVAH,02

MOVDL,[SI+BX-1];

显示字符串中一字符

DECBX;

修改偏移量

JNZDSI

RET

DISPLENDP

SUBAPROCNEAR

MOVDX,SI

MOVBP,DI

SU1:

SUBBYTEPTR[SI+BX-1],30H

SUBBYTEPTR[DI+BX-1],30H

将ASCII码表示的数字串

JNZSU1;

转化为十六进制的数字串

MOVSI,DX

MOVDI,BP

MOVCX,05;

包括进位,共5位

CLC;

清进单位

SU2:

MOVAL,[SI]

MOVBL,[DI]

SBBAL,BL;

带进位相减

AAS;

非组合BCD码的减法调整

MOV[SI],AL;

结果送被减数区

INCSI

INCDI;

指向下一位

LOOPSU2;

循环

SU3:

ADDBYTEPTR[SI+BX-1],30H

ADDBYTEPTR[DI+BX-1],30H

十六进制的数字串转化ASCII码表示的数字串

JNZSU3

RET

SUBAENDP

CODEENDS

ENDSTART

实验二两个数相乘的实验

实现十进制数的乘法,被乘数和乘数均以ASCII码形式存放在内存中,算式结果在屏幕上显示出来。

掌握乘法指令和循环指令的用法。

DATA1DB32H,39H,30H,35H,34H

DATA2DB34H

*'

RESULTDB6DUP(00H)

STACKSEGMENT

STADB20DUP(?

MOVSS,AX

MOVSP,TOP

LEASI,DATA1

MOVBX,05H

L1:

MOVDL,[SI+BX-1]

INT21H

DECBX

JNZL1

LEASI,DATA2

MOVDL,[SI]

MOVSI,OFFSETDATA2;

显示算式

MOVBL,[SI];

乘数DATA2→BL

ANDBL,00001111B;

屏蔽高4位,ASCII码转化为十六进制数

MOVDI,OFFSETRESULT

MOVCX,05

LOOP1:

ANDAL,00001111B;

取被乘数DATA1,ASCII变十六进制数

INCSI;

指向被乘数1的下一字符单元

MULBL;

相乘

AAM;

AAM调整

ADDAL,[DI];

结果低位与前次计算的进位相加

AAA;

AAA调整

MOV[DI],AL

结果送存到下一单元

MOV[DI],AH

LOOPLOOP1;

计算结果高位进位送存

MOVCX,06

MOVSI,DI

DISPL:

ADDDL,30H

DECSI

LOOPDISPL;

MOVAX,4C00H

INT21H;

结束

CODEENDS

实验三BCD码相乘实验

实现BCD码的乘法,要求被乘数和乘数以组合的BCD码形式存放,各占一个内存单元,乘积存入在另外两个内存单元中,由于没有组合的BCD码乘法指令,程序中采用将乘数1作为计算器,累加另一个乘数的方法得到计算结果。

掌握用组合的BCD码表示数据,并熟悉怎样实现组合BCD码乘法运算。

(附后)

FIRSTDB99H

SECONDDB25H

THIRDDB2DUP(?

STACKSEGMENTPARASTACK'

STACK'

STAPNDB100DUP(?

TOPEQULENGTHSTAPN

STACK

MOVBL,FIRST;

被乘数送BL

MOVCL,SECOND;

乘数送CL

MOVDX,0;

部分积清0

MOVAL,BL

AGAIN:

ORAL,AL

JZDONE;

被乘数减到0则转结果显示

MOVAL,DL

ADDAL,CL

DAA;

乘数于部分积低位相加后调整

MOVDL,AL

MOVAL,DH

ADCAL,0

往部分积高位送进位后调整

MOVDH,AL

DECAL

DAS;

组合BCD码减法调整

MOVBL,AL

JMPAGAIN

DONE:

LEABX,THIRD

MOV[BX],DX

LEASI,FIRST

CALLDIS

XORAX,AX

LEADX,MES1;

*

LEASI,SECOND

LEADX,MES2;

=

LEASI,THIRD

MOVAX,4C00H;

返回DOS

DISPROCNEAR;

显示子程序

MOVCL,04H

SHRAL,CL

ADDAL,30H

ANDAL,0FH

DISENDP

ENDSTART

实验四字符匹配程序

用串操作指令设计程序,实现在指定存储区6000:

0-6000:

100(长度为100H)中寻找匹配字符,遇空格字符(20H)结束,退出时给出是否找到的信息。

掌握8086的串操作指令的使用方法。

三、实验说明:

1、8086中用于字符串检索的指令为SCAXB/SCASW,用AL中的字节或者AX中的字与位于ES段由DI寄存器所批的内存单元的字节或字相比较。

通过前缀的控制,可以实现在DI所指的字母串中,寻找第一个与AL(或AX)的内容相同(或不同)的字节(或字)。

2、对于所有的串操作指令,都要注意方向标志的设置,指令CLD使方向标志DF清0,SI和DI自动增量修改,指令STD使DF置I,SI和DI作自动减量修改。

四、实验程序框图:

五、实验程序:

MESS1DB'

按下回车后在6000:

0-100范围内寻找空格符!

'

0DH,0AH,'

MESS3DB'

找到空格符!

MESS4DB'

寻找范围内没有空格符!

STADW32DUP(?

TOPDW?

DATA,ES:

MOVDS,AX;

初始化

MOVDX,OFFSETMESS1

显示信息1

MOVAH,08H

MOVAX,6000H

MOVDI,0;

偏移量送DI

CLD;

清方向标志

MOVCX,0100H;

长度为100H字节

MOVAL,20H;

空格符20H

REPNZSCASB

JNZAA;

全都不为20H则转AA

MOVDX,OFFSETMESS3

显示"

找到"

信息

JMPBBB

AA:

MOVDX,OFFSETMESS4

没找到"

BBB:

实验五字符串匹配程序

编写程序,实现两个字符串比较。

如相同,则显示“MATCH”,否则,显示“NOMATCH”。

掌握提示信息的使用方法及键盘输入信息的用法。

CRLFMACRO;

显示回车

INT21H

ENDM

MESS1DB'

MATCH'

MESS2DB'

NOMATCH'

MESS3DB'

INPUTSTRING1!

INPUTSTRING2!

MAXLEN1DB81

STRING1DB81DUP(?

MAXLEN2DB81

STRING2DB81DUP(?

显示输入提示信息1

MOVAL,MAXLEN1

MOVBX,OFFSETSTRING1

MOV[BX],AL;

最大字符缓冲

MOVAH,0AH

MOVDX,OFFSETSTRING1

接收键入的字符串1

CRLF

显示输入提示信息2

MOVAL,MAXLEN2

MOVBX,OFFSETSTRING2

最大字符缓冲设置

MOVDX,OFFSETSTRING2

接收键入的字符串2

CLD

LEASI,STRING1;

字符串1的地址送给SI

MOVCL,[SI+1];

字符串1的字符数送给CX

MOVCH,0

KKK:

LEADI,STRING2;

字符串2的地址送给DI

MOVDL,[DI+1];

字符串2的字符数送给DX

MOVDH,0

ZJ2:

MOVAL,[SI+2];

字符串1的第一个字符在字符串2中匹配

CMP[DI+2],AL

JEZJ3;

匹配成功则跳转

ZJ1:

指向字符串2下一个字符

DECDX

JZGGG;

字符串2完,不匹配

JMPZJ2;

字符串2没完,重新匹配

ZJ3:

DECCX

JZMMM;

字符串1完,匹配

指向串1下一个字符

指向串2下一个字符

MOVAL,[SI+2]

匹配,跳转

重新从串1的第一个字符匹配

MOVCL,[SI+1]

INCDI

JMPZJ2

MMM:

MOVAH,09H;

输出匹配信息

JMPPPP

GGG:

输出不匹配信息

MOVDX,OFFSETMESS2

PPP:

程序终止

CODEENDS

实验六从键盘输入数据并显示

编写程序,将键盘接收到的四位十六进制数转换为等值的二进制数,再显示在屏幕上。

若输入的不是0-F间的数字,则显示出错信息,并要求重新输入。

掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理,并在程序中设置错误出口。

CRLFMACRO

MARKDB?

MESSDB'

输入四位十六进制数,按回车键转化为二进制数,空格键结束!

输入:

ERRORDB0DH,0AH,'

输入错误!

HEAD:

MOVMARK,0

LEADX,MESS

显示提示输入的信息

CALLGETNUM;

接收键入数值送DX

CMPMARK,01H

JEHEAD

MOVCX,0010H;

16位

MOVBX,DX

TTT:

ROLBX,1;

循环左移1位

MOVDL,BL

ANDDL,01H;

屏蔽掉高7位

显示二进制位对应的ASCII字符

LOOPTTT

JMPHEAD

FINI:

M

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1