微机原理实验报告1Word格式文档下载.docx
《微机原理实验报告1Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告1Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
$'
DDD1DB13,10,13,10
DDD2DB81DUP('
)
DATAENDS
---------------------------------
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETMSG1
MOVAH,9;
9号功能调用,显示提示.
INT21H;
显示.
MOVDI,OFFSETDDD2
LOP:
MOVAH,1;
输入字符.
INT21H
CMPAL,13
JZEXIT;
'
回车'
结束.
MOV[DI],AL
INCDI
CMPDI,OFFSETDDD2+80
输入80个字符了,也结束.
JMPLOP;
继续输入.
EXIT:
MOVDX,OFFSETDDD1
9号功能调用.
显示输入的字符.
MOVAH,4CH;
程序结束.
INT21H
CODEENDS
ENDSTART
汇编语言上机器实验
(二)
1.从键盘上输入一个十六进制数,将其转换成十进制数并在显示器上显示出来(必做)
DATASEGMENT
DATA1DB?
DATA2DB2DUP(?
)
DATA20DB2DUP(?
DATA3DB'
Inputerror,PleaseEnterAgain!
'
DATAENDS
STACKSEGMENT
DB5DUP(?
STACKENDS
CODESEGMENT
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVBX,0
INPUT:
MOVAH,01H
PUSHAX;
把键盘输入的字符的ASCII码存到堆栈段
SUBAL,30H;
判断是否为数字
CMPAL,00H
CMPAL,09H;
MOVBL,AL
JLEOUTPUT2;
如果是数字就退出
POPAX;
把AL的值取出来
PUSHAX
SUBAL,41H;
判断是否为大写字母A到F
JLINDI;
如果不是就提示错误
CMPAL,06H
JLCHANGE
POPAX
PUSHAX
SUBAL,61H;
判断是否为小写字母a到f
JMPINDI
CHANGE:
MOVSI,0
MOVDI,0
MOVCL,4
MOVAL,BL
ANDAL,11011111B;
统一换为大写字母再转换,如果是大写就不变
SUBAL,31H
ANDAL,0FH;
与运算,取低位
MOV[DATA2+SI],AL;
把个位数存到DATA2中
SARAL,CL;
算数右移,取高位
MOV[DATA20+DI],AL;
把十位数存到DATA2O中
OUTPUT:
MOVDL,48H;
输出十六进制符号H
MOVAH,02H
MOVDL,3DH;
输出等号
MOVDL,[DATA20+DI];
输出十位数
ADDDL,30H
MOVDL,[DATA2+SI];
输出个位数
MOVDL,20H
JMPINPUT;
跳到输入数字
OUTPUT2:
输出数字
MOVDL,3DH
MOVDL,BL
JMPINPUT
INDI:
MOVDL,20H;
提示子程序
MOVDX,OFFSETDATA3;
显示提示信息
MOVAH,09H
JMPINPUT
EXIT:
MOVAH,4CH
CODEENDS
ENDSTART
实验一基本I/O端口应用实验
一.实验目的
掌握基本并行接口的工作原理及使用方法。
二.实验内容
1.基本的并行输出接口电路:
将JS4的I/O端口地址(280~287)连接到DRV模块的JS6,然后将锁存器的输出(74LS273)Q0~Q7,通过JS5一一对应连接到LED显示电路的JS2上。
然后在DOS方式下运行DEBUG调试程序。
进入DEBUG后,用输出命令“O”验证其正确性。
格式为:
O280FF(00)↙
编程:
从键盘输入一个字符或数字,将其该字符或数字的ASIIC码通过该输出接口电路输出到LED,通过发光二极管的“亮”或“灭”验证其正确性。
CODE
MOVDX,0de08H
INAL,DX
MOVDL,AL
MOVAH,4CH
CODEENDS
2.基本的并行输入接口电路:
将JS4的I/O端口地址(280~287)连接到DRV模块的JS8,然后将驱动器(74LS245)的输入B0~B7通过JS7一一对应连接到JS3的K0—K7。
然后在DOS方式下运行DEBUG调试程序。
进入DEBUG后,用输入命令“I”验证其正确性。
格式为:
I280↙
通过逻辑电平开关预置某字符或数字的ASIIC码值。
通过该输入接口电路将其对应的字母显示在计算机屏幕上。
实验二LCD应用实验
一.实验目的
了解字符液晶的使用方法。
二.实验内容
编写程序在LCD上显示自己的学号
三.实验原理
LCD主要由LCD显示屏(LCDPANEL)、控制器(Controller)、列驱动器(SegmentDriver)和偏压产生电路组成。
EDM1602为16x2的字符液晶。
控制器由指令寄存器IR,数据寄存器DR,忙标志BF,地址计数器AC,DDRAM,CGROM,CGRAM以及时序发生电路组成。
CODESEGMENT
CODE
START:
MOVDX,0DE00H
MOVAL,06H
OUTDX,AL
CALLSOFTDLY
MOVAL,0FH
MOVAL,01H
MOVAL,38H
ADDDX,1
MOVAL,30H
MOVAL,33H
MOVAL,31H
MOVAL,32H
MOVAL,39H
MOVAH,4CH
INT21H
SOFTDLYPROC
PUSHBX
PUSHCX
MOVBX,1000
DELAY:
MOVCX,2801
WAIT:
LOOPWAIT
DECBX
JNZDELAY
POPCX
POPBX
RET
SOFTDLYENDP
CODEENDS
实验三可编程并行接口实验(8255)
(1)熟练掌握8255并行接口芯片的基本功能及工作原理。
(2)掌握8255的三种工作方式及其初始化编程的方法。
(3)学会利用8255来构成实用的并行接口电路的方法。
将8255端口B的PB0—PB7(JS13)做为输入,连接到逻辑电平开关K0—K7(JS3)上,将8255端口A的PA0—PA7(JS12)做为输出连接到发光二极管的L1--L8(JS2)。
编程要求:
当输入不是全“0”时,输出与输入保持一致。
当输入为全“0”时,A口输出发光二极管闪烁告警信号。
在DEBUG状态下,验证8255的A口和B口输入/输出功能的正
确性。
其格式如下:
—O28382(写控制字)
—I281(读B口)
—O28000(FF)(A口输出)
MOVSI,50
MOVDX,0DE03H
MOVAL,82H
FIRST:
MOVDX,0DE01H
INAL,DX
CMPAL,00H
JZEQUAL
JMPFIRST
EQUAL:
MOVDX,0DE00H
MOVAL,00H
MOVBX,100
DELAY1:
MOVCX,2801
WAIT1:
OUTDX,AL
LOOPWAIT1
JNZDELAY1
MOVAL,0FFH
DELAY2:
WAIT2:
LOOPWAIT2
JNZDELAY2
DECSI
CMPDX,0FFH
JNZFIRST
JNZEQUAL
实验心得:
我认为,在学习中要考虑到“学以致用”,不能过分强调课程的系统性和基本理论的完整性,而应该侧重于基本方法和应用实例。
从微机应用系统的应用环境和特点来看,微机系统如何与外部设备相连,如何与它们交换信息,是微机系统应用中的关键所在,培养一定的微机应用系统的分析能力和初步设计能力才是最终目的!
通过实验,使我加深了对指令系统的理解,并且对汇编语言产生了极大的兴趣,总之,收益颇多。