计算机硬件技术基础软件实验讲义..doc
文本预览下载声明
指令系统和汇编语言程序设计实验
本章实验主要包括指令系统和汇编语言程序设计两部分。采用软件模拟调试的方法,目的在于通过这些实验可以使学生巩固所学知识,加深对MCS-51单片机内部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。
指令系统实验
实验一 熟悉键盘操作及数传指令编程设计
实验目的
熟悉软件模拟调试的环境及键盘操作。
掌握汇编语言程序设计的方法,加深对指令的理解。
学会软件模拟调试和察看修改观察项的方法。
实验内容
印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。
三、实验步骤
进入调试软件环境,输入源程序;
汇编源程序;
用单步方式运行程序;
检查并记录各寄存器和存储单元内容的变化。
四、程序清单
内部RAM数据传送
需要查看的数据有30H,31H,A,R0等。
ORG 0000H
MOV R0,#30H
MOV 30H,#45H
MOV 31H,#46H
MOV R2,30H
MOV 02H,31H
MOV A,#87H
MOV 0E0H,30H
MOV 30H,A
MOV 31H,@R0
SJMP $
END
外部数据传送
需要查看的数据有外部数据存储器单元2000H,外部程序存储器单元2001H。
ORG 0000H
MOV A,#89H
MOV DPTR,#2000H
MOVX @DPTR,A
INC DPTR
CLR A
MOVC A,@A+DPTR
SJMP $
ORG 2000H
DB 44H
DB 78H
DB 67H
END
堆栈操作
需要查看的数据有50H、51H、A及SP指针和堆栈区中数据随PUSH和POP指令执行后的变化情况和数据的存放次序等。
1)可用于保护现场和恢复现场的程序
ORG 0000H
MOV SP,#5FH
MOV 50H,#3BH
MOV 51H,#2FH
MOV A,#12H
PUSH 50H
PUSH 51H
PUSH ACC
POP 0E0H
POP 51H
POP 50H
SJMP $
END
2)可用于数据交换的程序
ORG 0100H
MOV SP,#6FH
MOV 50H,#3BH
MOV 51H,#2FH
PUSH 50H
PUSH 51H
POP 50H
POP 51H
SJMP $
END
4.数据交换
记录每条指令运行后的结果,从而加深对各种不同的交换指令的理解。
ORG 0000H
MOV A,#58H
SWAP A
MOV 40H,A
MOV A,#30H
MOV R0,#30H
MOV @R0,#09H
XCHD A,@R0
MOV 50H,#1
MOV A,#89H
XCH A,50H
MOV R7,#3
XCH A,R7
XCH A,@R0
SJMP $
END
思考题
寄存器寻址与寄存器间接寻址有什么区别?
PC指针与SP指针有什么区别?
DPTR指针与Ri(R0,R1)指针有什么区别?
立即寻址与直接寻址有什么区别?
同一个特殊功能寄存器不同表达形式。
实验二 数传指令和算数运算指令编程设计
实验目的
掌握数据块的传送操作和算术运算指
显示全部