微机Word文档下载推荐.docx
《微机Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
![微机Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/1/712f705c-ec65-49b7-a384-895f6a165785/712f705c-ec65-49b7-a384-895f6a1657851.gif)
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,A
MOVBL,B
ADDAL,BL
MOVAH,A+1
MOVBH,B+1
ADCAH,BH
MOVA,AL
MOVA+1,AH
MOVCX,0004H
MOVDI,OFFSETA
MOVDX,[DI]
ADDDI,03
NEXT:
MOVAX,DX
ANDAX,000FH
CMPAL,0AH
JBQQQ
ADDAL,07H
QQQ:
ADDAL,30H
MOV[DI],AL
DECDI
PUSHCX
MOVCL,04
SHRDX,CL
POPCX
LOOPNEXT
MOVDX,OFFSETA
MOVAH,09H
INT21H
MOVAH,4CH
CODEENDS
ENDSTART
执行程序EXAM1-2·
EXE,屏幕上显示结果:
9B8A
实验二分支程序设计
一、实验目的
1)掌握分支程序的结构。
2)掌握分支程序的设计,调试方法。
3、熟练掌握DEBUG的常用命令。
1当X>
0时
1.编程求Y值。
其中Y=0当X=0时
-1当X<
2、
三、实验准备
1)阅读教材中有关分支程序的内容。
2)按要求编写程序。
3)对照实验步骤,将要测的数据事先画好表格。
四、实验设备
2)汇编、连接程序,生成.EXE文件,执行文件检查结果。
3)对于实验内容二,进入DEBUG后,先用A命令汇编程序,同时用E命令对1000H开始的单元置10个字节数,然后对程序进行调试,用T命令观察程序流程。
程序运行完毕用D命令检查1000H开始的10个单元的内容。
1)列出源程序。
2)将实验测得的数据与理论分析比较。
3)总结为什么在设计分支程序时必须解决三个问题:
判断、转向和定标号。
源程序清单:
EXAM2-1.ASM
datasegment
bufferdw10
ydw?
dataends
codesegment
asummecs:
code,ds:
data
start:
movax,data
movds,ax
movax,buffer
ordx,ax
jezero
jnsplus
movbx,0ffh
jmpconti
zero:
movbx,0
plus:
movbx,1
conti:
movy,bx
codeends
endstart
执行程序EXAM2-1·
EXE:
查看Y=1
[调试中应注意的问题]:
应改变X(buffer单元)的值,分X>
0,X<
0,X=0三种情况执行.
实验三循环程序设计
1、加深对循环结构的理解。
2、掌握循环程序的设计、调试方法。
二、实验内容
1、在一串给定个数的数中寻找最大值(或最小值),并且放至指定的存储单元。
每个数用16位表示。
2、编制程序计算S=1+2·
3+3·
4+4·
5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。
其程序的逻辑框图如图3.1所示。
3、将从3000H内存单元开始的100个字节存储单元全部清0。
本实验要求在DEBUG调试状态下进行,包括汇编程序、运行程序、检查结果。
2、3题可任选一题。
PC机一台
四、实验步骤
实验内容一
1)参考教材P141编制实验程序
2)输入源程序
3)汇编、连接程序,执行程序,检查结果。
本程序采用DEBUG调试执行。
实验内容二
1)按程序流程图编制实验程序。
2)输入源程序。
3)汇编、连接程序,执行程序,检查结果。
实验内容三
1、输入源程序并检查无误。
2、对内存单元3000H开始的100个存储单元用E命令输入任意数。
3、程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。
4、用D命令检查执行结果。
五、实验报告的要求
1、列出源程序。
2、对程序中用到的寄存器说明其功能。
3、总结计数控制循环程序的设计方法。
4、说明怎样使用DEBUG进行程序调试的。
调试过程中所遇到的问题是如何解决的。
EXAM2-2
BUFDB’S=1+2×
3+3×
4+4×
5+…+N(N+1)+…=’,’$’
RESDW4DUP(0),’$’
DATAENDS
CODESEGMENT
START:
MOVDS,AX
MOVDX,OFFSETBUF
MOVAH,09H
INT21H
MOVDX,1
MOVBL,2
NEXT:
MOVAL,BL
INCBL
MULBL
ADDDX,AX
CMPAX,200
JNANEXT
MOVDI,OFFSETRES
ADDDI,03H
NEXT1:
MOVAX,DX
ANDAX,000FH
CMPAL,0AH
JBNEXT2
ADDAL,07
NEXT2:
ADDAL,30H
MOV[DI],AL
MOVCL,04
SHRDX,CL
LOOPNEXT1
MOVDX,OFFSETRES
MOVAH,4CH
CODEENDS
执行程序EXAM3-2·
S=1+2×
5+…+N(N+1)+…=045F
EXAM3-3
ORG2000H
2000BF0030MOVDI,3000
2003B164MOVCL,64
2005C60500MOVBYTEPTR[DI],0
200847INCDI
2009FEC9DECCL
200B75F8JNZ2005
200DF4HLT
实验四数据输入和输出
一、实验目的
学会汇编语言I/O指令的使用
熟练掌握用汇编语言进行设计、调试和运行程序的方法
二、实验内容
自选相关内容
实验五选择排序法程序设计
一、实验目的
掌握选择排序程序的设计、调试方法。
三、实验内容
在数据区中给定一组数,用选择排序法按从小到大的循序排列。
实验六
8253定时/计数器实验
1)学会通过62芯总线驱动器,译码器等在PC机外扩展新的芯片。
2)掌握8253定时/计数器的工作原理方式及应用编程。
二、实验内容
编程将定时器0设置为模示3,定时器1设置为模示2,定时器0的输出作为定时器1的输入时钟信号,在示波器中观察定时器0与定时器1的输出波形及其关系。
三、实验设备
TPC-1A教学实验箱,PC机,SR-8示波器
四、8253工作原理及初始化编程
1、工作原理
2、工作方式
方式0—方式5
方式2:
速率发生器
方式3:
方波速率发生器
3、8253的控制字
计数器
读/写格式
工作方式
数制
00选择计数器000计数器锁存命令000方式00=二进制
01选择计数器110只读写最高有效位字节001方式11=BCD码
(高8位)X10方式2
10选择计数器201只读写最低有效位字节X11方式3
(低8位)100方式4
11非法选择11先写最低有效位字节101方式5
然后写最高有效位字节
控制字=36H
00
11
011
0
00选择计数器011先写最低有效位字节x11方式30=二进制
1、8253的初始化编程过程如下图所示:
TPC-1A教学实验箱上的8253芯片接法介绍
实验要求,82530#计数器的CLK0与250HZ信号源相连,作为时钟输入信号;
8253的0#计数器OUT0与1#计数器的CLK1相连作为1#计数器时钟输入信号,引出信号端为OUT0,OUT1(在示波器中观察)。
四、实验步骤
(1)编制程序,并输入调试生成可执行文件。
(2)按图连接好实验线路。
(3)运行程序,在示波器中观察OUT0,OUT1波形及其关系。
(4)修改8253的1#计数器时间常数,再运行程序,在示波器中观察OUT0,OUT1波形变化。
五、思考题
1)在将计数初值赋给8253后,马上就可以启动并进行定时或计数吗?
2)若CLK0输入1.1925MHZ的时钟,能否在OUT0实现输出30ms的定时脉冲?
提示:
计数初值=fclk/fout=Tout/Tclk
程序清单:
EXAM8-1.ASM
TIM_CTLEQU203H
TIMER0EQU200H
TIMER1EQU201H
MODE03EQU36H
MODE12EQU74H
MESSDB'
8253ATIMER0INMODE3!
COUNT=0200H'
0AH,0DH
DB'
8253ATIMER1INMODE2!
COUNT=0aH'
0AH,0DH,'
$'
MAINPROCFAR
ASSUMECS:
CODE,DS:
START:
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
CLI
MOVDX,TIM_CTL
MOVAL,MODE03
OUTDX,AL
MOVDX,TIMER0
MOVAL,00h
MOVAL,02H
MOVAL,MODE12
MOVDX,TIMER1
MOVAL,0aH
MOVAL,00
STI
MOVDX,OFFSETMESS
MOVAH,09
RET
MAINENDP
实验八、中断
一、实验目的
1、加深对微机中断系统的了解,熟悉8259的工作原理和工作过程,
2、掌握8259的编程和中断处理程序的编制方法。
二、实验要求
1、中断请求通过PC62芯总线的IRQ4端输入,中断源可以是片外8253定时器输出的脉冲,也可以是其它脉冲,
2、编写程序要求主机每次响应外部中断IRQ4时,显示中断处理信息,中断十次后,程序退出。
图5-1中断实验原理图
TPC-1A教学实验箱,PC机,导线若干
四、编程提示
本实验使用PC机内的8259A芯片,本系统实验中使用总线的IRQ4端作中断请求输入,程序框图:
图5-2主程序流程图
n
y
图5-3中断处理子程序流程图
五、实验步骤
(1)编制程序,并输入调试生成可执行文件。
(3)运行程序,在屏幕上查看是否有正确的显示信息“THISISA8259AINTERRUPT!
”
六、实验报告的要求
1、写出程序的执行结果及分析。
2、画出实验原理电路图
3、小结主程序和中断服务程序的编程方法
附源程序:
INTA00EQU20H
INTA01EQU21H
TIM_CTLEQU203h
TIMER0EQU200h
TIMER1EQU201h
MODE03EQU36h
MODE12EQU54h
THISISA8259AINTERRUPT!
'
FLAGDB0
INTMASKDB?
CSREGDW?
IPREGDW?
STACKSEGMENT
STADB50DUP(?
)
TOPEQULENGTHSTA
STACKENDS
ASSUMECS:
DATA,SS:
STACK
MOVAL,00H
MOVAL,0AH
MOVAX,STACK
MOVSS,AX
MOVSP,TOP
MOVAX,350AH
MOVAX,ES
MOVCSREG,AX
MOVIPREG,BX
MOVAX,CS
MOVDX,OFFSETINT_PROC
MOVAX,250AH
POPDS
MOVDX,INTA01
INAL,DX
MOVINTMASK,AL
ANDAL,0FBH
MOVBX,10
LL:
MOVAL,FLAG
CMPAL,01H
JNZLL
MOVAL,INTMASK
MOVDX,IPREG
MOVAX,CSREG
MOVAX,4C00H
INT_PROC:
PUSHDS
MOVDX,INTA00
MOVAL,20H
DECBX
JNZNEXT
MOVAL,01
MOVFLAG,AL
ORAL,04H
NEXT:
IRET
ENDSTART
_
七、测试结果及分析
执行后,屏幕上显示:
10次。
说明产生中断信号,并执行中断处理程序10次。
与实验内容要求相符。
实验七、并行接口
一、实验目的
1.掌握通过8255A并行口传输数据的方法,以控制LED发光二级管的燃灭。
二.实验内容
1、设计硬件线路
2、编写程序,通过8255控制发光二级管已模拟交通路灯管理。
3、各发光二级管共阳级,使其点亮应使响应输入端(L1—L12)为“0”。
图4-1原理电路
段寄存器初始化
显示提示信息
写控制字,使B口为输入口
读取B口数据保存在PB单元
写控制字,使各端口均为输出端口,均工作于方式0
使四个路口的红全亮
延迟一段时间
点亮1,3路口绿灯
1,3路口黄灯闪烁8次
四个红灯全亮
点亮2,4路口绿灯
延迟
熄灭2,4路口绿灯
2,4路口黄灯闪烁8次
已有键按下?
返回dos
ny
图4-2程序框图
TPC-1A,TPC-H微机原理教学实验箱,PC机
四预习要求
1复习8255的原理及初始化编程方法
2按流程图编好程序.
datasegment
pbdb?
messdb'
Enteranykeycanexittodos!
0dh,0ah,'
stacksegmentstack
stadw50dup(?
topequlengthsta
stackends
codesegment
assumecs:
data,es:
data,ss:
stack
movax,data
moves,ax
movah,09h
movdx,offsetmess
int21h
movdx,21bh;
端口号
moval,82h;
写控制字,均一作于方式0,b口为输入,a,c口为输出
outdx,al
movdx,219h;
inal,dx
movpb,al
movdx,21bh
moval,80h
outdx,al
movdx,219h
moval,pb
oral,0f0h
outdx,al;
turnoffyellow
movdx,21ah
moval,0f0h;
4redlights
calldelay10
calldelay1
lll:
moval,10100101b;
turnon1,3greenlight
movdx,21ah
oral,0f0h;
turnoff1,3greenlight
movcx,0004h
ttt:
movdx,219h
andal,10101111b;
1,3yellowlightturnon
oral,01010000b
1,3yellowlightturnoff
loopttt
moval,0f0h
moval,01011010b
2,4green1,3red
turnoff2,4greenlight
ggg:
andal,01011111b
turnon2,4yellow
oral,10100000b
turnoff2,4yellow
loopggg
movah,06h
movdl,0ffh
jnzppp
jmplll
ppp:
movax,4c00h
delay1procnear
pushcx
movcx,9fffh
ccc:
loopccc
popcx
ret
delay1endp
delay10procnear
pushax