当前位置:文档之家› 微机原理实验指导

微机原理实验指导

实验一 MASM For Windows 的使用及顺序程序设计一、实验目的1、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。

2、熟悉masm for windows调试环境及DEBUG常用命令的使用二、实验内容1.DEBUG常用命令(U、R、D、E、F、T、G、Q)的操作使用2.编程实现两个16位无符号数的加、减、乘、除运算。

有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。

相加若有进位不存入存储单元。

三、实验设备PC机一台、masm for windows 汇编语言集成环境四、实验准备1) 分析题目,将程序中的原始数据和最终结果的存取方法确定好。

2) 画出流程图。

3) 写出源程序。

4) 对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。

五、实验步骤1) 输入源程序。

2) 汇编、连接程序,生成 .EXE文件,执行文件,检查结果。

六、学生实验报告的要求1) 列出源程序,说明程序的基本结构,包括程序中各部分的功能。

2) 说明程序中各部分所用的算法。

3) 说明主要符号和所用到寄存器的功能。

4) 上机调试过程中遇到的问题是如何解决的。

5) 对调试源程序的结果进行分析。

4) 说明标志位CF、SF和OF的意义。

DEBUG的常用命令1、R 显示或修改寄存器的内容命令格式:-R2、 D 显示存储单元的内容命令格式:-D[地址1, 地址2]3、E修改存储单元的内容命令格式:-E[地址1, 地址2]4、U反汇编命令格式:-U[地址1, 地址2]5、T单步执行命令格式:-T6、G连续执行命令格式:-G[=起始地址, 结束地址]A小汇编命令格式:-A7、Q退出DEBUG,返回DOS实验一源程序 EXAM1-2 .ASMDATA SEGMENTA DB 34H,18H,2 DUP(0),’$’B DB 56H,83HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AXMOV AL,AMOV BL,BADD AL,BLMOV AH,A+1MOV BH, B+1ADC AH, BHMOV A, ALMOV A+1, AHMOV CX, 0004HMOV DI, OFFSET AMOV DX, [ DI]ADD DI,03NEXT: MOV AX, DXAND AX,000FHCMP AL,0AHJB QQQADD AL, 07HQQQ: ADD AL, 30HMOV [DI], ALDEC DIPUSH CXMOV CL, 04SHR DX, CLPOP CXLOOP NEXTMOV DX, OFFSET AMOV AH, 09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START执行程序EXAM1-2·EXE,屏幕上显示结果:9B8A实验二分支、循环程序设计一、实验目的1) 掌握分支、循环程序的结构。

2) 掌握分支、循环程序的设计,调试方法。

二、实验内容1 当X>0时1.编程求Y值。

其中Y= 0 当X=0时-1 当X<0时2、在一串给定个数的数中寻找最大值(或最小值),并且放至指定的存储单元。

每个数用16位表示。

3、编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。

其程序的逻辑框图如图3. 1所示。

三、实验准备1) 阅读教材中有关顺序、分支程序的内容。

2) 按要求编写程序。

3) 对照实验步骤,将要测的数据事先画好表格。

四、实验设备PC机一台五、实验步骤1) 输入源程序。

2) 汇编、连接程序,生成 .EXE文件,执行文件检查结果。

六、学生实验报告的要求1) 列出源程序。

2) 将实验测得的数据与理论分析比较。

3) 总结为什么在设计分支程序时必须解决三个问题:判断、转向和定标号。

源程序清单:EXAM2-1.ASMdata segmentbuffer dw 10y dw ?data endscode segmentasumme cs:code,ds:datastart:mov ax,datamov ds,axmov ax,bufferor dx,axje zerojns plusmov bx,0ff hjmp contizero: mov bx,0jmp contiplus: mov bx,1conti: mov y,bxcode endsend start执行程序EXAM2-1·EXE:查看Y=1[调试中应注意的问题]:应改变X(buffer单元)的值,分X>0,X<0,X=0三种情况执行.源程序清单:EXAM2-2DATA SEGMENTBUF DB’S=1+2×3+3×4+4×5+…+N(N+1)+…=’,’$’RES DW 4 DUP(0),’$’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS, AXMOV DX, OFFSET BUFMOV AH, 09HINT 21HMOV DX, 1MOV BL, 2NEXT: MOV AL, BLINC BLMUL BLADD DX, AXCMP AX, 200JNA NEXTMOV CX, 0004HMOV DI, OFFSET RESADD DI, 03HNEXT1:MOV AX, DXAND AX, 000FHCMP AL, 0AHJB NEXT2ADD AL, 07NEXT2:ADD AL, 30HMOV [DI],ALDEC DIPUSH CXMOV CL,04SHR DX,CLPOP CXLOOP NEXT1MOV DX, OFFSET RESMOV AH, 09HINT 21HMOV AH, 4CHINT 21HCODE ENDSEND START执行程序EXAM3-2.EXE,屏幕上显示结果:S=1+2×3+3×4+4×5+...+N(N+1)+ (045)EXAM3-3ORG 2000H2000 BF0030 MOV DI, 30002003 B164 MOV CL, 642005 C60500 MOV BYTE PTR[DI],0 2008 47 INC DI2009 FEC9 DEC CL200B 75F8 JNZ 2005200D F4 HLT实验三综合程序设计一、实验目的1) 掌握汇编语言程序的设计方法。

2) 熟练掌握汇编语言程序的调试方法。

二、实验内容1、选择排序法程序设计。

2、有关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 选择计数器0 00 计数器锁存命令 000 方式0 0=二进制01选择计数器 1 10 只读写最高有效位字节 001 方式1 1=BCD码(高8位) X10 方式210选择计数器 2 01只读写最低有效位字节 X11 方式3(低8位) 100 方式411 非法选择 11先写最低有效位字节 101 方式5然后写最高有效位字节0 0 1 1 0 1 1 000 选择计数器0 11先写最低有效位字节 x11 方式3 0=二进制然后写最高有效位字节1、8253的初始化编程过程如下图所示:TPC-1A教学实验箱上的8253芯片接法介绍实验要求,8253 0#计数器的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的定时脉冲?提示:计数初值=f clk/f out=T out/T clk程序清单:EXAM8-1.ASMTIM_CTL EQU 203HTIMER0 EQU 200HTIMER1 EQU 201HMODE03 EQU 36HMODE12 EQU 74HDATA SEGMENTMESS DB '8253A TIMER0 IN MODE3! COUNT=0200H',0AH,0DHDB '8253A TIMER1 IN MODE2! COUNT= 0aH',0AH,0DH,'$' DATA ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATASTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXCLIMOV DX,TIM_CTLMOV AL,MODE03OUT DX,ALMOV DX,TIMER0MOV AL,00hOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,TIM_CTLMOV AL,MODE12OUT DX,ALMOV DX,TIMER1MOV AL,0aHOUT DX,ALMOV AL,00OUT DX,ALSTIMOV DX,OFFSET MESSMOV AH,09 INT 21HRETMAIN ENDPCODE ENDSEND START实验四中断一、实验目的1、加深对微机中断系统的了解 ,熟悉8259的工作原理和工作过程,2、掌握8259的编程和中断处理程序的编制方法。

二、实验要求1、中断请求通过PC62芯总线的IRQ4端输入,中断源可以是片外8253定时器输出的脉冲,也可以是其它脉冲,2、编写程序要求主机每次响应外部中断IRQ4时,显示中断处理信息,中断十次后,程序退出。

相关主题