河北工业大学计算机硬件基础课答案
实验一 熟悉键盘操作及数传指令编程设计
实验目的
熟悉软件模拟调试的环境及键盘操作。
掌握汇编语言程序设计的方法,加深对指令的理解。
学会软件模拟调试和察看修改观察项的方法。
实验内容
印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。
三、实验步骤
进入调试软件环境,输入源程序;
汇编源程序;
用单步方式运行程序;
检查并记录各寄存器和存储单元内容的变化。
四、程序清单
内部RAM数据传送
需要查看的数据有30H,31H,A,R0等。
ORG 0000H
MOV R0,#30H (R0)←30H
MOV 30H,#45H (30H)←45H
MOV 31H,#46H (31H)←46H
MOV R2,30H (R2)←45H
MOV 02H,31H (02H)←46H
MOV A,#87H (A)←87H
MOV 0E0H,30H (A)←45H
MOV 30H,A (30H)←45H
MOV 31H,@R0 (31H)←45H
SJMP $
END
最终结果 : (30H)←45H (31H)←45H (A)←45H (R0)←30H
外部数据传送
需要查看的数据有外部数据存储器单元2000H,外部程序存储器单元2001H。
ORG 0000H
MOV A,#89H (A)←89H
MOV DPTR,#2000H 设DPTR指针地址
MOVX @DPTR,A (2000H)←89H
INC DPTR (DPTR)←2001H
CLR A (A)←0
MOVC A,@A+DPTR (A)←78H
SJMP $
ORG 2000H
DB 44H
DB 78H
DB 67H
END
最终结果 : (2000H)←89H (2001H)←78H
堆栈操作
需要查看的数据有50H、51H、A及SP指针和堆栈区中数据随PUSH和POP指令执行后的变化情况和数据的存放次序等。
1)可用于保护现场和恢复现场的程序
ORG 0000H
MOV SP,#5FH 设栈顶指针地址
MOV 50H,#3BH (50H)←3BH
MOV 51H,#2FH (51H)←2FH
MOV A,#12H (A)←12H
PUSH 50H 入栈 (60H)←3BH
PUSH 51H (61H)←2FH
PUSH ACC (62H)←12H
POP 0E0H 出栈 (0E0H)←12H
POP 51H (51H)←2FH
POP 50H (50H)←3BH
SJMP $
END
2)可用于数据交换的程序
ORG 0100H
MOV SP,#6FH 设栈顶指针地址
MOV 50H,#3BH (50H)←3BH
MOV 51H,#2FH (51