南昌航空大学_微机原理与接口技术实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
格式:
I端口地址
功能:将端口的内容传送到累加器AL中。
15.输出命令O
格式:
O端口地址
功能:将累加器AL的内容传送到端口中。
16.运行命令G
格式:
G=地址
G
功能:从当前地址或指定地址开始执行指令。
17.十六进制运算命令H
格式:
H数据1数据2
功能:对数据1和数据2进行十六进制加法和减法运算。
18.P命令
南昌航空大学实验报告
课程名称:微机原理实验名称:并行口8255A应用
班级:学号:姓名:
教师评定:签名:
一、实验目的
掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。
二、实验内容
用8255做输出口,控制十二个发光管亮灭,模拟交通灯管理。
三、实验接线图
图6-4
四、编程指南
⑴通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,PC4-PC7对应绿灯,以模拟交通路灯的管理。
Copyright (C) Microsoft Crop 1983-1988. All rights reserved.
Run Flie [AA.EXE]
List File [NUL.MAP]
Libraries[.LIB]
LINK:warning L4021:no stack segment;
3.4运行
⑶程序中设定好8255A的工作模式及三个端口均工作在方式0,并处于输出状态。
⑷各发光二极管共阳极,使其点亮应使8255A相应端口的位清0。
五、实验程序框图
六、实验步骤
⒈在系统显示监控提示符“P.”时,按SCAL键。
⒉按图6-4连好实验线路
8255A:PC0->L3,PC1->L6,PC2->L9,PC3->L12,PC4->L2,PC5->L5,PC6->L8,PC7->L11;
IOAPTEQU 0FF28H;PA口
IOBPTEQU 0FF29H;PB口
IOCPTEQU 0FF2AH;PC口
ORG 11e0H
START:MOV AL,82H;PB输入,PA,PC输出
MOV DX,IOCONPT
OUT DX,AL;写命令字
MOV DX,IOBPT;读PB口
IN AL,DX
MOV BYTE PTR DS:[0601H],AL;保存PB口数据
OF:OV/NV有/无
DF:DN/UP减/增
IF:EI/DI允许/禁止
SF:NG/PL负/正
ZF:ZR/NZ零/非零
AF:AC/NA有/无
PF:PE/PO偶/奇
CF:CY/NC有/无
9.Βιβλιοθήκη Baidu步执行命令T
格式:
T地址
T地址条数
功能:单步执行指令
10.反汇编命令U
格式:
U地址
U地址范围
功能:将指定内存的内容显示成汇编语言形式。
0 Warning Errors
0 Severe Errors
若有错时则会显示出相应错误信息,如下:
AA.ASM (6): Warning A4001:Extra characters on line
AA.ASM (7):error A2062:Missing or unreachable CS
AA.ASM (8):error A2009:Symbol not defined: DI
AD3:ADD BYTE PTR[SI+BX-1],30H
ADD BYTE PTR[DI+BX-1],30H
DEC BX
JNZ AD3
RET
ADDA ENDP
CODE_SEG ENDS
END START
七、实验体会:
通过本次实验学会了对DVCC实验系统的使用。同时编写了一个代码,在DVCC实验系统上编译,发现如果编译成功的话,出现的结果会是error not included.一旦出现错误就需要根据所在的行进行结果。至于实验的结果由于还没有连接硬件和以上程序没有显示的代码。所以在masm下演示出结果。
DATA2 DB '6','8','1','6','B'
DATA_SEG ENDS
;定义代码段
CODE_SEG SEGMENT PARA PUBLIC 'CODE'
MAIN PROC FAR
ASSUME CS:CODE_SEG,DS:DATA_SEG,SS:STACK_SEG
START: PUSH DS
南昌航空大学实验报告
课程名称:微机原理实验名称:完整汇编源程序的上机过程
班级:学号:姓名:
教师评定:签名:
一、实验要求:
学会完整汇编源程序的上机过程和常用的DOS命令。
二、实验内容:
编写一段汇编源程序,在MASM中运行。同时学会对MASM的灵活运用。
三、实验步骤:
3.1编辑录入源程序
EDIT [[盘符][路径]程序基本名。ASM]
11.命名命令N
格式:
N路径和文件名
功能:对读命令或写命令要操作的文件进行指定。
12.读盘命令L
格式:
L地址驱动器号起始扇区号扇区数
L地址
L
功能:将N命令指定的文件或磁盘扇区内容读到内存。
13.写盘命令W
格式:
W地址驱动器号起始扇区号扇区数
W地址
W
功能:将内存内容写到N命令指定的文件或磁盘扇区中。
14.输入命令I
Copyright (C) Microsoft Corp 1981,1988,All rights reserved.
Object filename [aa.OBJ]:
Sourse listing[NUL.LST]:
Cross-reference [NUL.CRF]:
49576+420869 Bytes symbol space free
IOLED0:MOV AL,10100101B
MOV DX,IOCPT
OUT DX,AL;南北绿灯亮,东西红灯亮
CALL DELAY1;延时
CALL DELAY1;延时
OR AL,0F0H
OUT DX,AL;南北绿灯灭
MOV CX,8H
IOLED1:MOV DX,IOBPT
MOV AL,DS:[0601H]
运行命令的格式如下:
[盘符][路径]程序基本名[.EXE]
例如:
P:\(language\MASM50) AA
调试运行的格式如下:
[盘符][路径]DEBUG[盘符][路径]程序基本名.EXE
如执行DEBUG AA.EXE
3.5其他用到的DOS命令
DIR [盘符][路径] [文件名]
MD [盘符][路径]新目录名
⑵要完成本实验,必须先了解交通路灯的亮灭规律,设有一个十字路口l、3为南北方向,2、4为东西方向,初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。延时一段时间后,l、3路口的绿灯熄灭,而l、3路口的黄灯开始闪烁,闪烁若干次以后,l、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到l、3路口方向,之后,重复上述过程。
D段地址:偏移地址
D偏移地址
D
功能:显示指定内存范围的内容。
3.修改内存单元内容命令E
格式:
E地址内容表
E地址
功能:修改内存单元内容
4.填充内存命令F
格式:
E地址范围内容表
功能:将内容表中的内容重复装入内存的指定范围内。
5.内存移动命令M
格式:
M源地址范围目标起始地址
功能:把源地址范围的内容移动到目标起始地址开始的存储单元。
PB4->L1,PB5->L4,PB6->L7,PB7->L10
⒊在“P.”态时,输入11E0后,按EXEC键;系统显示执行符“┌”,同时Ll-Ll5发光二极管模拟交通灯显示。
七、实验程序清单
CODESEGMENT;H8255-2.ASM
ASSUMECS:CODE
IOCONPT EQU 0FF2BH;8255控制口
49510+411821 Bytes symbol space free
1 Warning Errors
2 Severe Errors
3.3连接
连接命令格式如下:
LINK [[盘符][路径]程序基本名[.OBJ]]
例如:
D:\language\MASM50>link aa
连接显示信息如下:
Microsoft (R) Overlay Linker Version 3.64
南昌航空大学实验报告
课程名称:微机原理与接口技术
班 级:
学 号:
姓 名:
指导教师:
成 绩:_______________________
2013年12月2号
南昌航空大学实验报告
课程名称:微机原理实验名称:调试程序DEBUG的使用
班级:学号:姓名:
教师评定:签名:
一、实验目的
掌握DEBUG调试程序的常用命令,熟悉用DEBUG调试程序对EXE文件的调试过程,并具有一定的分析运行结果的能力。
6.比较命令C
格式:
C源地址范围目标起始地址
功能:比较两个内存区域的内容是否相同,相同时不显示任何信息,不相同时显示不相同的内容。
7.搜索指定内容命令S
格式:
S地址范围内容表
功能:在指定地址范围内搜索内容表中的内容。
8.查看修改寄存器内容命令R
格式:
R
R寄存器名
功能:查看或修改寄存器内容
关于标志位:
CD [盘符][路径]
四、实验体会
通过本次实验,理解了用汇编语言编写的指令在MASM中的运行情况。对它的步骤有了一定的了解以及使用。同时也对汇编语言有了更加深入的了解。
南昌航空大学实验报告
课程名称:微机原理实验名称:两个多位十进制数相加
班级:学号:姓名:
教师评定:签名:
四、实验目的:
熟悉对DVCC实验系统的使用。
五、实验内容:
本程序将两个多位十进制数相加,其中加数与被加数均以ASCII码形式存放在以DATA1和DATA2为首的5个内存单元中,相加结果被送回DATA1处。程序中先要把加数与被加数由十进制ASCII码转化为十六进制的数字串,然后将他们进行带进位相加并做AAA调整,然后将结果保存。
六、程序清单:
定义堆栈段:
SUB BYTE PTR[DI+BX-1]
DEC BX
J NZ AD1
MOV SI,DX
MOV DI,BP
MOV CX,05H
CLC
AD2:MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL
AAA
MOV [SI],AL
INC SI
INC DI
LOOP AD2
MOV SI,DX
MOV BX,05H
MOV DX,IOCONPT;8255控制口
MOV AL,80H
OUT DX,AL;写命令字, PA,PB,PC输出
MOV DX,IOBPT;
MOV AL,DS:[0601H]
OR AL,0F0H
OUT DX,AL
MOV DX,IOCPT
MOV AL,0F0H
OUT DX,AL;四路口红灯全亮
CALL DELAY1;延时
MOV AX,0
PUSH AX
MOV AX,DATA_SEG
MOV DS,AX
MOV SI,PFFEST DATA1
MOV DI,OFFEST DATA2
CALL ADDA
RET
MAIN ENDP
ADDA PROC NEAR
MOV DX,SI
MOV BP,DI
MOV BX,05H
AD1:SUB BYTE PTR[SI+BX-1]
二、实验内容
1.编写一个完整的一位数加法运算程序,并生成EXE文件;
2.利用DEBUG调试EXE文件的执行过程,并与源程序进行对比。
三、DEBUG常用命令
1.汇编命令A
格式:
A段寄存器名:偏移地址
A段地址:偏移地址
A偏移地址
A
功能:用该命令可以将汇编语言程序直接写入内存。
2.显示内存命令D
格式:
D段寄存器名:偏移地址
例如:D:\language\MASM50>edit aa.asm
3.2汇编
汇编指令格式如下:
MASM [[盘符][路径]程序基本名[.ASM]]
例如:D:\language\MASM50>masm aa
若没有错误显示如下:
Microsoft(R) Macro Assmbler Version 5.10
格式:
P
功能:在下一条指令执行之前停止
19.退出命令Q
格式:
Q
功能:退出DEBUG调试环境。
三、实验体会:
通过本次实验初步了解了DEBUG命令及其使用方法,并且在老师的指导下编写了两个简单的输出字符小程序,第一次感受到了汇编语言的魅力和实际的应用。同时也发现指令中的值须全部转化为16进制的值,那样才能正常的运行。同时也加深了自己对指令的理解。
AND AL,10101111B
OUT DX,AL;南北黄灯亮
CALL DELAY2;延时
STACK_SEG SEGMENT PARA STACK
'STACK' DB 100 DUP(?)
STACK_SEG ENDS
;定义数据段
DATA_SEG SEGMENT PARA PUBLIC 'DATA'
;定义被加数与加数(DATA1\DATA2)的存放(低位在前):
DATA1 DB '4','A','5','9','C'
相关文档
最新文档