微机原理实验指导书(3)

2020-04-17 00:57

实验五 子程序设计

一、实验目的

1.通过程序调试,观察子程序调用及嵌套过程,进一步理解CALL指令和RET指令的功能。 2.掌握子程序(或过程)调用时参数传递的方法。 二、实验内容

(1)调试程序PCS5_1.ASM,使实现函数y?(a?b)2(a和b均为0~65535之间的值),并在屏幕上显示y的值(十六进制形式)。

;PCS5-1.ASM TO BE DEBUGED DATA SEGMENT A DW 125 B DW 90

Y DW 3 DUP(0) Z DW 0,0 DATA ENDS

STA SEGMENT STACK’STACK’ DW 50 DUP(‘S’) STA ENDS

CODE SEGMENT

ASSUME CS:CDOE,DS:DATA,SS:STA STAR PROC FAR PUSH DS XOR AX,AX PUSH AX

MOV AX,DATA

MOV DS,AX

MOV AX,A MOV Z,AX MOV Z+2,AX

CALL MLT MOV AX,B MOV Z,AX MOV Z+2,AX CALL MLT MOV AX,A MOV Z,AX MOV AX,B MOV Z+2,AX CALL MLT ADD Y,AX ADC Y+2,DX

11

ADC Y+4,0 CALL DSP6 RET STAR ENDP MLT PROC

MOV AX,Z MOV BX,Z+2 MUL BX ADD Y,AX MLT DSP6 L1: DSP6 DSPAL G1: G2: G3: 12

ADC Y+2,DX ADC Y+4,0 RET ENDP PROC

LEA SI,Y ADD SI,5 MOV CX,6

MOV AL,BYTE CALL DSPAL DEC SI LOOP L1 RET ENDP PROC

PUSH AX PUSH BX PUSH CX PUSH DX

MOV BH,AL MOV BL,2 码 MOV CL,4 SHR AL,CL CMP AL,10 JGE G2

OR AL,30H JMP G3

ADD AL,37H MOV DL,AL MOV AH,2 INT 2lH DEC BL JZ G4

MOV AL,BH AND AL,0FH

PTR[SI] JMP G1

G4: POP DX

POP CX

POP BX POP AX RET DSPAL ENDP CODE ENDS END STAR 程序调试通过后,在DEBUG环境下观察CALL和RET指令执行时堆栈指针的变化及堆栈中压入和弹出的内容。

三、编程提示

1.子程序(过程)传递参数的方法,除简单情况利用数据段单元传递外,还有以下三种方法: (1)用寄存器传递,适用于参数个数少的情况。

(2)利用堆栈传递参数,适用于参数较多且子程序有嵌套、递归调用的情况。高级语言的过程(函数)的参数传递很多采用此方法。

(3)用程序存储器中的参数表传递,这个参数表紧跟在调用指令的后面。

2.用堆栈传递参数的方法是:在主程序中先把参数压入堆栈然后调用子程序。

3.用程序存储器传递参数的方法是在主程序中把要传递的参数直接放在调用指令的后面。传递的参数可以是参数的值(在本例中是乘数的值本身),也可以是参数的地址(在本例中是乘数存放的地址)。

四、思考题

1.画出PCS5_1.ASM程序层次结构框图。

2.假如MLT是一个远过程,画出第三次执行CALL MLT指令后堆栈中数据存放图。

3.怎样利用堆栈传送参数?第三次执行CALL MLTSS指令后,根据D命令所显示的堆栈内容画出堆栈中数据存放图并写出取参数的指令。

4.怎样利用程序存储器传送参数的地址?为什么返回主程序前要调整返回地址?怎样调整?

五、实验报告

1.打印一份程序清单。

2. 回答思考题。

13

实验六 8255A控制交通信号灯实验

一、实验目的

1.通过对红、绿、黄LED发光二极管的控制熟练掌握8255A可编程并行接口的编程方法。 2.学习单板方式下扩展简单I/O接口的方法以及双色灯的使用。 3.进一步学习微处理器的编程技术。

二、实验设备

1.IBMPC机或其兼容机一台(PC/XT或具有ISA总线的PC/AT以上微机)。 2.T598爱迪克实验箱一套。 3.万用表一块。 三、实验内容

编写程序控制8255A可编程并行接口芯片,使实验台上的红、绿、黄发光二极管按照十字 路口交通信号灯的燃灭规律发光。当按下任意键则停止运行,返回DOS。 四、实验步骤

1.设计电路并在实验台上连接线路,如图所示。应连线如下:

将DG1~DG4,DR1~DR4用导线连至8255的PC0~PC7,8255的CS片选接至138译码处的200H插孔。

2.编写程序,用8255A控制发光二极管,模拟交通信号灯的亮灭规律,按任意键返回DOS。 3.运行程序,验证所编程序的正确性。 五、编程提示

14

1.要完成本实验,首先必须了解交通信号灯的亮灭规律。设有一个十字路口,1、3为南北方向,2、4为东西方向。

(1)初态为4个红灯全亮,禁止通行。 (2)1、3路口绿灯亮,2、4路口红灯亮。 (3)1、3路口绿灯灭 (4)1、3路口黄灯闪烁。 (5)4个路口红灯全亮。

(6)2、4路口绿灯亮,同时1、3路口红灯亮。 (7)2、4路口绿灯灭。 (8)2、4路口黄灯闪烁。 (9)转向(1)循环执行。

2.参考程序流程图如图所示。

开始初始状态东西南北都是红灯状态1南北绿灯,东西红灯状态2南北绿灯闪转黄灯,东西红灯状态3南北红灯,东西绿灯状态4南北红灯,东西绿灯闪转黄灯

六、思考题

1.数据段中开辟PB单元起什么作用?

2.8255A是否可以不通过驱动器而直接驱动LED发光二极管?为什么? 七、实验报告

1.画出实验电路。 2.打印程序清单。

3. 回答思考题。

15


微机原理实验指导书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机应用基础(专科)无纸化考试Windows xp综合练习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: