山大单片机实验 下载本文

内容发布更新时间 : 2024/5/24 2:07:38星期一 下面是文章的全部内容请认真阅读。

必做实验

第二章 软件仿真实验 2.1实验1:汇编程序实验1

示例程序:

ORG 0000H AJMP MAIN ORG 0030H MAIN:

MOV SP,#60H ;堆栈底设置在60H

MOV A,#0H ;A置零

MOV R1,#30H ;起始单元地址为30H MOV R7,#10H ;R7用于计数,初值为10H

LOOP1: ;将30H开始的16个内存单元置零 MOV @R1,A INC R1 DJNZ R7,LOOP1

NOP

MOV R1,#30H

MOV R7,#10H ;重新赋计数初值和起始单元地址

1

LOOP: ;将0到F赋给30H开始的16个单元中; MOV @R1,A

INC R1 ;地址自增 INC A ;A自增 DJNZ R7,LOOP SJMP $ END

(3)示例程序的功能

将30H开始的16个内存单元清0,然后将值0到F赋给30H开始的16个单元。 (4)运行结果截图

② 自我完成实验程序

ORG 0030H MAIN:

MOV A,11111111B MOV R1,#30H MOV @R1,A MOV B,64H DIV AB INC R1 INC R1

ANL A,#0FH MOV @R1,A DEC R1

2

MOV A,B MOV B,#0AH DIV AB RL A RL A RL A RL A ADD A,B MOV @R1,A SJMP $ END

2.2实验2:汇编程序实验2

程序及其注释

ORG 0000H AJMP MAIN ORG 0030H MAIN:

MOV 30H, #45H ;待操作数存于30H单元 MOV A, 30H ;30H单元中的数送A

ANL A,#0FH ;高四位清零,保留低四位 MOV 31H,A ;结果存于31H单元 MOV A,30H ;重新取待操作数至A

ANL A, #0F0H ;低四位清零,保留高四位

SWAP A ;自交换实现待操作数的高四位表示的二进制数存于A MOV B, #10

MUL AB ;待操作数的高四位表示的二进制数乘以10

ADD A,31H ;待操作数的高四位表示的二进制数乘以10后和低四位表示的二进制数相加

3