实验报告
- 格式:docx
- 大小:15.05 KB
- 文档页数:3
实验报告
实验一 实验名称:汇编指令练习
1. 实验目的和要求
(1) 掌握keil软件和STC-ISP 软件的使用方法
(2) 熟悉相关程序的调试方法
(3) 熟悉51单片机的相应指令和基本编程方法
2. 主要仪器设备
电脑
3. 实验内容
①实验先将30H~33H单元赋值一个非零常熟,然后查看该单元内的内容是否赋值正确。
源程序:
ORG 0000H
LJMP main
ORG 50H
main:
MOV 30H , #01H ;
MOV 31H , #02H ;
MOV 32H , #03H ;
SJMP $
END
实验结果说明:通过“memory window”可见,30H—31H单元内存储的数字分别为01,02,03。
②先将30H~33H单元内容赋值,再传送到50H~53H,最后查看两对应单元的内容是否一致。
源程序:
ORG 0000H
LJMP main
ORG 50H
main:
MOV 30H , #01H ;
MOV 31H , #02H ;
MOV 32H , #03H ;
MOV 50H,30H;
MOV 51H,31H;
MOV 52H,32H;
SJMP $
END
实验结果说明:通过“memory window”可见两对应单元的内容一致。
③已知R0=32H,A=48H,(32)=80H,(40H)=08H。指出执行下列程序段后上述各个单元内容的变化。
源程序: ORG 0000H
LJMP main
ORG 40H
main:
MOV R0 , #32H ;
MOV A , #48H ;
MOV 32H , #80H ;
MOV 40H,#08H;
MOV A,@R0;(此时A=80H,psw.0=1)
MOV @R0,40H;(此时32H单元内容变为08H)
MOV 40H,A; (此时40H单元内容变为80H)
MOV R0,#35H; (此时R0=80H)
SJMP $
END
实验结果说明:实验结果请看上述程序括号中单步执行后的变化。
④已知A=7AH,R0=30H, (30H)=A5H,PSW=80H,请指出以下各条指令的执行结果。
源程序:
ORG 0000H
LJMP main
ORG 40H
main:
MOV A,#7AH;
MOV R0,#30H;
MOV PSW,#80H;
MOV 30H,#80H;
XCH A,R0; 【此时R0=30H,A=7AH变成R0=7AH,A=30H】
(XCH A,30H;)【此时(30H)=80H,A=7AH变成(30H)=7AH,A=80H】
(XCH A,@R0;)【此时((R0))=80H,A=7AH变成((R0))=7AH,A=80H】
(XCHD A,@R0;)【此时((R0))=80H,A=7AH变成((R0))=8AH,A=70H】
(SWAP A;)【此时A=7AH变成A=A7H】
(XCHD A,R0;)【此条指令无法执行显示“error INVALID REGISTER”】
(ADD A,30H; )【此时A=7AH变成A=FAH,PSW=81H变为PSW=00H】
(ADD A, #30H; )【此时A=7AH变成A=AAH,PSW=81H变为PSW=04H】
(ADDC A,30H;)【此时A=7AH变成A=FBH,PSW=81H变为PSW=01H】
(SUBB A,30H;)【此时A=7AH变成A=F9H,PSW=81H变为PSW=84H】
SJMP $
END
实验结果说明:实验结果请看上述程序括号中单步执行后的变化。针对出错那条指令,将之改为“MOV 30H,R0;XCHD A,@R0;”则最后结果为A=7AH变成A=70H
⑤已知SP=60H,(30H)=24H,(31H)=10H,试分析执行下列指令后各储存单元中的内容以及形相应的内容及相应堆栈区域有何变化。
PUSH 30H;
PUSH 31H; POP DPL;
POP DPH;
源程序:
ORG 0000H
LJMP main
ORG 40H
main:
MOV 30H,#24H;
MOV 31H,#10H;
MOV SP,#60H;
PUSH 30H;【sp=61h,sp_max=61H】
PUSH 31H; 【sp=62h,sp_max=62H】
POP DPL;【sp=61h ,dptr=0000h变为dptr=0010h】
POP DPH; 【sp=60h ,dptr=0000h变为dptr=2410h】
SJMP $;
END
实验结果说明:实验结果请看上述程序括号中单步执行后的变化。