实验一 汇编语言程序设计实验
一、实验目的
1、熟悉keil开发环境
2、掌握汇编语言的常用指令
3、掌握汇编语言设计方法
二、实验器材
1、电脑一台
2、单片机实验箱
三、实验步骤
1、打开keil开发环境,新建一个工程项目。
2、新建一个xxx.asm文件,在这个文件中写入相应的程序代码
3、程序写完后,点击keil开发环境上的“Rebuild”图标,编译所写的程序,在“build output”窗口中会显示编译的相关信息,如错误警告等信息,根据相应的信息来检查所写的程序,直到没有错误和提示信息为止。
4、编译通过后,点击keil开发环境上的调试图标,进入调试界面调试程序,如与预期的结果一致,则程序编写正确,否则就要去查找程序中的错误,直到结果与预期的一致为止。
四、实验内容
(1) 请同学们分析以下指令执行之后的结果,将结果写在”;”后面,并在keil开发环境中进行验证
程序1:
ORG 0000H
START:LJMP MAIN
ORG 0030H
MAIN: MOV A,#30H ;
MOV R0,#20H ;
MOV 20H,#52H ;
MOV A,@R0 ;
MOV @R0,#05H ;
MOV DPTR,#4000H ;
MOVX @DPTR,A ;
END
程序2:思考如果改变累加器A中的数值,寄存器R1中的结果是否也会发生改变?
ORG 0000H
START:LJMP MAIN
ORG 0030H
MAIN: MOV A,#3 ;
MOV DPTR,#TABLE
MOVC A,@A+DPTR ;
MOV R1,A ;
TABLE: DB 30h,31h,32h,33h,34h
END
程序3:思考地址单元50H和51H中数据是否会发生变化?在keil的调试界面要查看某一个地址单元中的数据,如在“memory”的窗口中输入“i:0x50”,则为查看50H地址单元中数据
ORG 0000H
START:LJMP MAIN
ORG 0030H
MAIN: MOV 50H,#01H MOV 51H,#02H PUSH 50H PUSH 51H POP 50H POP 51H END
程序4:
;
;
;
;
;
;
ORG 0000H
START:LJMP MAIN
ORG 0030H
MAIN: MOV A,#83H MOV R0,#17H ;
MOV 17H,#34H ;
ANL A,#17H ;
ORL 17H,A ;
XRL A,@R0 ;
CPL A ;
END
程序5:
ORG 0000H
;
START:LJMP MAIN
ORG 0030H
MAIN: MOV 40H,#08H ;
MOV R1,#40H ;
MOV A,@R1 ;
RL A ;
MOV R0,A ;
RL A ;
RL A ;
ADD A,R0 ;
MOV @R1,A ;
END
程序6:将内部RAM中30H~33H的数依次送到70H~7FH单元中。
ORG 0000H
START:LJMP MAIN
ORG 0030H
MAIN: MOV 30H,#02H MOV 31H,#03H ;
MOV 32H,#05H ;
MOV R0,#30H ;
MOV R1,#70H ;
MOV R2,#10H ;
LOOP: MOV A,@R0 MOV @R1,A ; INC R0 ;
INC R1 ;
;
;
DJNZ R2,LOOP ;
END
五、心得体会
Example :
1. 不想编译的file,在左边工程栏里面点右键Options for File ,把右边Always Build
的勾去掉就好。
2. 在此编辑框内我们输入“字母:数字”,D、 I、 X、 C分别代表着直接寻址的片内
RAM、间接寻址的片内RAM、扩展的外部RAM和ROM。
因篇幅问题不能全部显示,请点此查看更多更全内容