子程序设计
- 格式:ppt
- 大小:1.30 MB
- 文档页数:30


实验五 子程序设计
一. 实验目的和要求:
学习子程序的结构、特点以及子程序的设计和调试方法。
二.实验任务
学习使用汇编语言编译软件,验证及编写、调试实验内容。
三.实验设备和软件
PC、MASM.EXE、LINK.EXE、DEBUG.EXE
四.实验内容
1、编写求和的子程序,求数组ARRAY中所有元素之和并存于SUM单元中。
要求:1、子程序名:SUM1
2、子程序功能:求字节数组和
3、入口参数:SI=数组首地址,CX=数组长度
4、出口参数:AX=数组和
DATA SEGMENT
ARRAY DB 1,2,3,4,5,6
COUNT EQU $-ARRAY
SUM DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,ARRAY
MOV CX,COUNT
CALL SUM1
MOV SUM,AX
MOV AH,4CH
INT 21H
SUM1 PROC NEAR
CMP CX,0
JZ EXIT
MOV AX,0
AGAIN:ADD AL,[SI]
ADC AH,0
INC SI
LOOP AGAIN
EXIT: RET
SUM1 ENDP
CODE ENDS
END START
循环程序及子程序设计
1、软件延时
【实验原理】
延时程序的延时时间主要与两个因素有关,一是所用晶振,二是延时程序的循环次数,一旦晶振确定以后,则主要是如何设计与计算需给定的延时循环次数。
汇编语言常用延时程序所用到的指令
指令 占用机器周期数
MOV Rn,#Data 1
DJNZ Rn,rel 2
RET 2
NOP 1
【实验程序】
编写15us、5ms、1s延时程序
(1)15us延时程序
MOV R0,#6
D1: DJNZ R0,D1
RET
(2)5ms延时程序
MOV R1,#10
D1: MOV R0,#248
D2: DJNZ R0,D2
DJNZ R1,D1
RET
(3)1s延时程序
MOV R2,#8
D1: MOV R1,#249
D2: MOV R0,#250
D3: DJNZ R0,D3
DJNZ R1,D2
DJNZ R2,D1
RET 【实验要求】
(1)能根据延时要求设计与计算需给定的延时循环次数。
(2)运行源程序检查结果。
2、拉幕灯:使8个发光二极管顺序点亮并保持,然后按相反顺序变化,形如拉幕效果。
【实验程序】
ORG 0000H
START: MOV R2,#08H ;设置循环次数
实验三 子程序设计
1、实验目的:
(1) 熟悉汇编语言的编辑、汇编、连接、运行的全过程。
(2) 了解汇编语言的程序结构、学习调用过程实现输入输出及用INCLUDE命令包含文件的方法。
(3) 子程序设计
2.实验步骤:
(1) 用编辑软件记事本或EDIT 编辑一个扩展文件名为ASM的汇编语言源程序。
(2) 用汇编程序TASM 汇编上述的汇编语言源程序,形成目标代码文件。(扩展名为OBJ)
(3) 用连接程序TLINK连接目标代码文件,形成可执行文件。(扩展名为EXE)
(4) 运行可执行文件。观察执行结果,以验证其正确性。
3.实验内容:
(1)从键盘上输入若干个十进制数(-32767
.model small
.stack 256
.data
count=5
array dw count dup (?)
in_message db "please enter data:$"
out_message db "sort result is :$"
.code
.startup
mov ah,9
lea dx,in_message
int 21h
mov cx,count
mov si,offset array
again: call read ;输入count数据存入array数组中
call dpcrlf
mov [si],bx
inc si
inc si
loop again
mov cx,count ;排序(升序)
dec cx
again2: lea si,array
mov di,cx
again1: mov ax,[si]
cmp ax,[si+2]
《精密制造与自动化》
基于PC—DI MS的通用程序设计及子程序的应用
刘兆平刘越花严红
九江职业技术学院机电设备系(332007)
摘要着重阐述了基于PC.DIMS软件的三坐标领域如何借助特征参数与数据文件编辑通用程序和子程序,以
及在测量程序里如何调用子程序实现产品的自动检测。
关键词PC.DIMS三坐标特征参数通用程序子程序
PC—DIMS作为一种全新计量测试软件,如何正
确应用其全部功能显得尤为重要。它编程、修改可
在同一环境下进行,因此更方便,并且测量过后就
能生成自动测量程序。一般测量机编程软件除了自
学习还提供了语言编程如DEA的TUTOR系统提供
了DEAPPL语言。而PC.DIMS虽然只提供学习编
程而没有语言,但提供智能模块如:INPUT语句,
LOOP循环、条件(IF、ELSEIF)语句、变量参数、
逻辑运算(ASSIGN)等等,它也能编辑通用测量
程序。
1通用程序的设计
1.1利用COMMENT的INPUT读入特征参数
对于同一产品系列的不同零件,它们相同加工
工序要检测的关键参数、形位公差是相同的,此时
若用自学习编辑测量程序,就需要编辑多个测量程
序,由于它们要实现的功能是相同的,如法兰的外
径、均分孔数、分度圆直径等等,这些参数决定了
产品的型号,在实际测量时其也起了决定性作用,
编程时把这些参数设计成变量,从程序外读入(通
过Comment里的input),这样运行程序时输入不同
型号的特征参数,就可适用不同产品的检测。
图1是起始角
为30。、分度圆为
100 ITUTI 的
8. ̄b8mm法兰均分
孑L的位置检测,利
用变量从程序外读
入特征参数,通过
建模和循环程序实
现检测。
按图l建立
50 一 匦
, ・o ‘ 厂\\ j
t ■/ 、、。 一 一
图1均分孔零件示意 XOY坐标系,若均分:fL:fL径为dm,孔数目为N,
分度圆直径为DM,起始角为A。其中所测的每个