实验三 查表与子程序设计练习

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三查表与子程序设计练习

一、实验目的

1.掌握子程序调用的原理

2.掌握主程序和子程序间的参数传递机制

3.掌握现场保护的方法

4.熟悉查表指令,会编写查表程序

二、实验内容

(1)编写程序,利用子程序实现将片内RAM中30H-3FH单元内容置为FFH。要求通过寄存器和堆栈分别传递参数实现。

寄存器:

MOV R0,#30H

MOV A,#0FFH

LOOP:LCALL L

CJNE R0,#40H,LOOP

SJMP $

NOP

L:MOV @R0,A

INC R0

RET

END

堆栈:

MOV SP,#5FH

MOV 70H,#30H

MOV 71H,#16

PUSH 70H

PUSH 71H

SJMP $

NOP

L:POP DPH

POP DPL

POP 07H

POP 00H

MOV A,#0FFH

L2:MOV @R0,A

INC R0

DJNZ R7,L2

PUSH DPL

PUSH DPH

RET

END

(2)利用查表程序,计算0~10的平方。要求分别用MOVC A,@A+DPTR和MOVC A,@A+PC

两种指令实现。

○1MOV DPTR #TABLE

MOV R1,#0

MVO R0,#40H

L:MOV A,R1

MOVC A,@A+DPTR

MOV @R0,A

INC R1

INC R0

CJNE R0,#4BH,L

SJMP $

NOP

TABLE:DB 0,1,4,9,16,25,36,49,64,81,100

END

○2MOV R1,#0

MOV R0,#30H

L:MOV A,R1

ADD A,#09H

MOVC A,@A+PC

MOV @R0,A

INC R0

INC R1

CJNE R1,#08H,L

SJMP $

NOP

TABLE:DB 0,1,4,9,16,25,36,49,64,81,100

END

三、实验要求与步骤

(1)画出程序流程图

(2)分配内存工作区及有关端口地址

(3)编写程序(给出详细注释)

(4)运行程序,分析运行结果

四、实验报告要求

编出相应的程序,列出程序清单,给出详细注释,并对运行结果加以分析。

相关文档
最新文档