微机原理实验分解.docx
- 文档编号:11304235
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:13
- 大小:143.10KB
微机原理实验分解.docx
《微机原理实验分解.docx》由会员分享,可在线阅读,更多相关《微机原理实验分解.docx(13页珍藏版)》请在冰豆网上搜索。
微机原理实验分解
实验1-3汇编语言实验
一、实验目的
熟悉汇编语言语法
熟悉8086常用指令
掌握BIOS中断调用及DOS功能调用
二、实验内容
1、编写一个汇编语言程序,要求从键盘输入一个小写字母,将其转化成大写字母并在屏幕上显示出来。
2、编写一个汇编语言程序,将字符串“AssemblyLanguageProgramming”全部转化为大写字母,存放到原来所在单元。
3、从键盘接收一串字符,并另起一行逆序显示该字符串。
三、实验步骤
1.题目1的完整汇编语言程序如下,在实验环境中保存文件进行编译连接后,在DOS中运行文件,可实现将输入字母转换成小写输出。
DATASEGMENT;定义数据段
BUFDB0DH,0AH,'PLEASEINPUTACHAR:
$'
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE,SS:
STACK;段寄存器指派伪指令
BEGIN:
MOVAX,DATA
MOVDS,AX;初始化DS
LEADX,BUF ;偏移地址送寄存器
MOVAH,9
INT21H ;9号调用显示字符串PLEASEINPUTACHAR:
MOVAH,1 ;1号调用,从键盘接收一个字符
INT21H
CMPAL,61H ;若比“a”小转PEND处执行
JBPEND
CMPAL,7AH;若比“z”大转PEND
JAPEND
SUBAL,20H;若在“a”和“z”之间,则减去20变为大写字母
MOVDL,AL;转换后的字符存入DL寄存器
MOVAH,2;2号功能调用显示一个字符
INT21H
PEND:
MOVAH,4CH;程序结束,返回DOS
INT21H
CODEENDS
ENDBEGIN
2.题目2的完整汇编语言程序如下,运行可执行文件后将字符串“AssemblyLanguageProgramming”转换成大写“ASSEMBLYLANGUAGEPROGRAMMING”并显示。
DATASEGMENT;定义数据段
BUFDB0DH,0AH,'AssemblyLanguageProgramming$'
NDB$-BUF;字符串长度
DATAENDS
CODESEGMENT;定义代码段
ASSUMEDS:
DATA,CS:
CODE;段寄存器指派伪指令
BEGIN:
MOVAX,DATA
MOVDS,AX;数据初始化
LEADX,BUF
MOVAH,9;9号调用显示字符串AssemblylanguageProgramming
INT21H
MOVCX,N;设置循环计数值
MOVSI,DX
L:
MOVAL,[SI]
CMPAL,61H;若比“a”小转NEXT
JBNEXT
CMPAL,7AH;若比“z”大转NEXT
JANEXT
SUBAL,20H;若在“a”和“z”之间,则减去20变为大写字母
MOV[SI],AL
NEXT:
INCSI
LOOPL;循环
DISPLAY:
LEADX,BUF
MOVAH,9;9号调用显示字符串
INT21H
EXIT:
MOVAH,4CH;程序结束,返回DOS
INT21H
CODEENDS
ENDBEGIN
3.题目2的完整汇编语言程序如下,DOC中运行文件,从键盘输入任意一字符串,并回车键结束输入,在下一行便可逆序显示所输入的字符串。
DATASEGMENT
STR1DB0DH,0AH,'PLEASEINPUTASTRING:
$'
BUFDB512DUP(?
);定义可输入的字符个数
CRLFDB0DH,0AH,24H;回车换行符
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,STR1;偏移地址送到寄存器
MOVAH,9;9号调用显示字符串
INT21H
MOVSI,OFFSETBUF;指针指向待显示字符串尾部
AGAIN:
MOVAH,01;输入字符
INT21H
CMPAL,0DH;是回车吗
JEDISP;是,转显示
DECSI;指针减1
MOV[SI],AL;存入输入的字符
JMPAGAIN;继续输入
DISP:
MOVAH,09;显示
MOVDX,OFFSETCRLF;回车换行
INT21H
MOVDX,SI;定位待显示字符串首地址
MOVAH,09
INT21H
MOVAH,4CH;程序结束,DOS返回
INT21H
CODEENDS
ENDSTART
四、程序框图
实验内容中的1、2、3题程序框图见如下图1-1、1-2和1-3。
图1-1图1-2
图1-3
五、实验总结
DOS调用,运行程序文件,得到结果图分别如下所示:
图1-4图1-5
图1-6
通过实验,我熟悉了汇编语言程序的基本结构,掌握了教程中讲解的跳转类指令以及循环指令等,对DOS功能的调用更加熟悉。
英文字母的编码是按ASSIC码表的顺序编码的,大写“A”到“Z”和小写“a”到“z”之间的转换,其ASSIC码值正好相差20H。
实验四8259A中断实验
一、实验要求
掌握用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。
二、实验目的
了解8088/86与8259之间的连接方法。
学习8088/86对8259的控制方法。
三、预备知识
8259A是Intel公司专为控制优先级中断而设计的NMOS芯片。
它集中断源优先级排队、中断源识别、中断向量提供和中断屏蔽等功能电路于一体,因而中断系统无需附任何电路,只需对8259A进行编程,就可管理8级优先中断,且中断请求方式和优先级模式等中断结构可通过编程设定或变更,中断入口地址也可由用户任意指定。
四、实验原理说明及连线
1、本实验主要用到的模块:
中断模块、单次脉冲源模块等;
2、IR6接单次脉冲的/Q端。
图4-1
五、实验内容
用单脉冲发生器的输出脉冲作为中断源,每按一次按键产生一次中断申请,中断服务程序将在实验箱的显示屏显示一个字符“R”。
六、程序框图
主程序框图见图4-2,中断程序框图见图4-3。
图4-2图4-3
七、实验步骤
1、确认连接好线路;
2、编写程序
3、装载并运行程序(脱机时调用ZY2TJ.EXE,联机时调用ZY2.EXE)。
汇编语言程序如下:
DATASEGMENT;数据段的定义
INT_SEGDW?
INT_OFFDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
CLI;关中断
MOVAH,35H;读原中断服务程序的入口地址
MOVAL,0EH
INT21H
MOVINT_OFF,BX;保存原中断服务程序的入口偏移地址
MOVINT_SEG,ES
MOVAX,CS
ADDAX,10H
MOVDS,AX;使数据和代码处于同一段
MOVDX,OFFSETUINTR;取中断服务程序地址
MOVAH,25H;设置中断向量
MOVAL,0EH;送中断类型码
INT21H
INAL,21H;读8259A中断屏蔽寄存器
ANDAL,0BFH
MOVDX,21H
OUTDX,AL
STI
MM:
JMPMM
UINTR:
CLI;中断服务程序
MOVAL,'R'
MOVDX,88H
OUTDX,AL
MOVAL,20H;向8259A发出EOI命令,结束中断
OUT20H,AL
IRET
CODEENDS
ENDSTART
八、实验总结
8259A控制器芯片可实现对中断的控制,对8259A进行初始化编程后即可处理中断请求,CPU也可以通过操作命令字实现对8259A的操作控制。
用单脉冲发生器的输出脉冲作为中断源,向CPU发送中断请求,每按一次按键产生一次中断申请,通过控制器使CPU执行中断服务程序,中断服务程序的结果将在实验箱的显示屏显示一个字符“R”。
实验五8255并行I/O口实验
一、实验要求
利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输入,PB口作输出。
二、实验目的
1、了解8255芯片结构及编程方法。
2、了解8255输入/输出实验方法。
三、预备知识
8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI。
它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。
这24根端口线全部为双向三态。
三个端口可分二组来使用,可分别工作于三种不同的工作方式。
四、实验原理图及连线
1、本实验主要用到的模块:
8255模块、开关量输出模块、0-1指示模块、实验译码单元等;
2、PA0-PA7分别接开关量输出模块S0-S7对应的插座;
3、PB0-PB7分别接0-1指示模块DO71-DO78对应的插座;
4、8255A的片选/CS接地址译码单元的2A0-2A7;
5、数据线XD0—XD7接系统数据线区的任一插座。
图5-1
五、实验内容
将实验的线路连接好后,编程,将8255的A口作为输入,输入信号由8个逻辑电平开关提供,B口作为输出,其内容由发光二极管来显示。
汇编语言程序如下:
DATASEGMENT
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAL,90H;定义A端口为输入
MOVDX,2A3H;设置8255A的控制口地址
OUTDX,AL;写控制字
A:
MOVDX,2A0H;将PA端口地址送到DX中
INAL,DX;从PA口输入数据
MOVDX,2A1H;将PB端口地址送到DX中
OUTDX,AL;PB口输出数据
JMPA
CODEENDS
ENDSTART
六、程序框图
图5-2
七、实验步骤
1、参照四中的内容连好线;
2、运行上位机软件,装载并运行相应程序即可(联机调用ZY1LJ.EXE,脱机用ZY1.EXE)。
编写程序时,8255的/CS连线可以接地址译码单元的其他信号,其它连线相同。
如果用的端口与本实验不一样,也可以改变IO口的连线。
八、实验总结
可编程并行I/O接口芯片8255可实现数据的快速传输,本实验用芯片的A口作为输入,输入信号由8个逻辑电平开关提供,B口作为输出,其内容由发光二极管来显示。
PA0~PA7和PB0~PB7均作为8位数据传输线,D0~D7作为数据总线,与CPU进行数据的传输。
全速运行程序时,拨动开关,当开关某位置至于L时,相应位置的发光二极管LED灯点亮。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 分解