微机原理实验报告1.docx
《微机原理实验报告1.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告1.docx(14页珍藏版)》请在冰豆网上搜索。
![微机原理实验报告1.docx](https://file1.bdocx.com/fileroot1/2023-1/14/cc176fb1-bddf-4ec0-a9b0-c098897b9ee1/cc176fb1-bddf-4ec0-a9b0-c098897b9ee11.gif)
微机原理实验报告1
微机原理与接口技术实验报告
学院:
计算机科学与工程学院
专业:
计算机科学与技术
班级:
计算机四班
学号:
姓名:
指导老师:
宋芳
2011年12月1日
调试程序DEBUG的使用练习
1、实验目的:
1.学习DEBUG常用命令的使用
2.熟悉8086的寄存器
3.了解程序运行的过程
2、实验内容:
分别用DEBUG程序的命令实现对PC机RAM单元、CPU寄存器等的内容修改及简单程序的跟踪运行;
3、具体实验过程
Debug的R命令查看、改变CPU寄存器的内容
Debug的D命令查看内存中的内容
Debug的E命令改写内存中的内容
Debug的U命令将内存中的机器指令翻译成汇编指令
Debug的T命令执行一条机器指令
当指令是修改段寄存器SS时,修改SP的指令也一下执行了。
也可以跳到指定代码段执行:
-t=0B39:
0106
Debug的A命令以汇编指令的格式在内存中写入一条机器指令
用G是断点执行,用-g=10010610D,默认为段地址是CS。
2、在debug中,遇到loop循环指令时,可以用p跳过;
实验十八写文件实验
一.实验要求
编写程序,将内存区域中用DEBUG程序设置好的一连串数据,以ASCII码1AH为结束符作为一个文件,存入磁盘,文件名为DATA.AAA.
2.实验目的
掌握写文件的DOS功能调用方法。
3.实验说明
1.对于文件的读写操作,DOS提供了两种手段,第一种手段使用FCB进行存取,第二种手段是文件代号法进行存取。
文件代号法支持目寻路径,并且对错误采用了更统一的办法处理,是DOS推荐的存取方法。
2.使用文件代号法,要求文件名(含路径)用ASCII串表示,所谓ASCII串,就是以空字符00H结尾的一串ASCII字符。
3.文件代号法存取时出现错误,则功能调用返回时,要将CF标志位置1,同时在AX寄存器中返回统一的出错代码。
程序中要用JC指令进行错误判定,确认出错后再将错误代码显示出来,以便分析出错原因。
4.实验代码
DATASEGMENT
BUFFERDB'mynameistangzhiquan,mynumberis0905010215'
COUNTEQU$-BUFFER;thecountofASCIIforbuffer
DADB'pleaseenterthefileabsolutepathandfilename:
$'
ADDRESSDB40,?
40DUP(?
)
BUILD_FAITDBOFFSETAX3,OFFSETAX4,OFFSETAX5
AX3DB'pathcannotfind$'
AX4DB'openfiletoomuch$'
AX5DB'accessmethodiswrong$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,DA;Promptforthefileabsolutepath
MOVAH,9
INT21H
LEADX,ADDRESS;setfilepath
MOVAH,0AH
INT21H
MOVAH,2;putcrlf
MOVDL,0AH
INT21H
MOVDL,0DH
INT21H
MOVAL,ADDRESS+1;thenumberofpathtoSI
MOVAH,0
MOVSI,AX
MOVDX,OFFSETADDRESS+2;thefirstaddressforfilepath
MOVBX,DX
MOVBYTEPTR[BX+SI],'$';theendadd'S'tomarktheend
MOVCX,00H;fileproperty
MOVAH,3CH;createafile,theabsolutepathis"ADDRESS"
INT21H
JNCNEXT;signcreatefilesucces
WRONG_SHOW:
MOVBX,OFFSETBUILD_FAIT;showthereasonforfileestablish
SUBAX,3;failcodeofaxis3,4,5
ADDBX,AX;ds:
dxisthewronginformation'sfirstaddress
MOVDL,[BX]
MOVDH,0
MOVAH,9
INT21H
NEXT:
MOVBX,AX;axisthenumberoffilehandles
MOVCX,COUNT;thenumberofbuffer
LEADX,BUFFER;ds:
dxpointthefirstaddressofbuffer
MOVAH,40H
INT21H
INT21H;end
MOVAX,4C00H
INT21H
CODEENDS
ENDSTAR
实验三8255输出实验
一.实验要求
编写程序,一8255作为输出口,控制8个单色LED灯。
二.实验目的
1.学习在单板方式下宽展简单I/O接口的方法。
2.学习编制数据输出程序的数额及方法
三.实验电路及连线
PC0~PC7连L0~L7,CS8255连210H
四.实验说明
8255工作于方式0,此时PA、PB、PC均可独立输入输出的并行口。
8255的各个寄存器对应的口地址为:
PA口:
210HPB口:
211HPC口:
212口8255控制寄存器:
213H
由于各PC机的速度不同,未达到更好的试验效果,可适当调节LED灯亮灭的延时时间。
五.实验程序框图
示例程序如下:
;FOREAT598
PC55EQU212H
P55CTLEQU213H
DATASEGMENT
DATAENDS
STACKSEGMENT
STADB20DUP(?
)
TOPEQULENGTHSTA
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVDX,P55CTL
MOVAL,80H
OUTDX,AL
ZXH:
MOV DX,PC55
;左循环
MOVAL,0FEH
movbx,24
BB:
OUTDX,AL
MOVCX,0FFFFH
L1:
LOOPL1
ROLAL,1
decbx
cmpbx,0
jnzbb
YXH:
MOVDX,PC55;右循环
MOVAL,0FEH
movbx,24
EE:
OUTDX,AL
MOVCX,0FFFFH
L2:
LOOPL2
RORAL,1
decbx
cmpbx,0
jnzee
JGS:
MOVDX,PC55;间隔闪烁
MOVAL,55H
movbx,24
HH:
OUTDX,AL
MOVCX,0FFFFH
L3:
LOOPL3
NOTAL
decbx
jnzhh
jmpstart
CODEENDS
ENDSTART
实验程序以及框图如下:
实验程序:
;FOREAT598
TIM_CTLEQU22bH
TIMER0EQU228H
TIMER1EQU229H
TIMER2EQU22aH
MODE03EQU00110110B
MODE12EQU01110100B
MODE22EQU10110100B
DATASEGMENT
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
CLI;关中断
MOVDX,TIM_CTL
;定时器0工作在方式3
MOVAL,MODE03
OUTDX,AL
MOVDX,TIMER0
MOVAL,00H
OUTDX,AL
moval,01h
outdx,al
MOVDX,TIM_CTL
;定时器1工作在方式2
MOVAL,MODE12
OUTDX,AL
MOVDX,TIMER1
MOVAL,18H
OUTDX,AL
moval,00h
outdx,al
MOVDX,TIM_CTL
;定时器2工作在方式2
MOVAL,MODE22
OUTDX,AL
MOVDX,TIMER2
MOVAL,0AH
OUTDX,AL
moval,00h
outdx,al
STI
JMP$
CODEENDS
ENDSTART