3-1 P89V51单片机中的存储器有哪些种类?它们是如何分布的,起什么作用?
3-2 哪些存储器区的地址是重叠的?如何通过指令的寻址方式来区别?请具体说明
(1)XCODE和XDATA的寻址区别;
(2)XDATA与IDATA的寻址区别;
(3)IDATA与DATA的寻址区别;
(4)SFR与IDATA的寻址区别;
(5)XDATA与IDATA的寻址区别;
(6)XDATA与DATA的寻址区别;
(7)片内XDATA与片外XDATA的寻址区别;
(8)位地址与字节地址。
3-3 SFR有哪些寻址方式?当前工作寄存器有哪些寻址方式?位可寻址SFR中的位有哪些寻址方式?
3-4 某专用寄存器地址为 98H,它可以按位寻址吗?
3-5 若PSW的内容为 18H (即RS1=RS0=1),则通用寄存器R0的地址是什么?
3-6 请总结位数据传送指令的特点。
3-7 在【实验 3-1】中,假设:
(1)传送的数据只有 100B,请修改程序并调试通过;
(2)传送的数据仍然为 256B,但目的地址从 0030H开始,请修改程序并调试通过;
(3)传送的数据为 300B,目的地址仍然从 0000H开始,请修改程序并调试通过;
(4)传送的数据为 1000B,目的地址仍然从 0100H开始,请修改程序并调试通过。
(5)如果XCODE中表格的数据少于传送程序中传送的个数,程序运行后会出现什么情况?(通过实验后说明)
3-8 在【实验 3-2】中,为什么放入R1中的高位地址要加 1?(请查阅《附录A 标准 8051单片机指令说明》中的关于DJNZ Rn,rel的说明。)
3-9 在【实验 3-2】中,假设:
(1)传送的数据字节数多于 65 280,请修改程序并调试通过;
(2)传送的数据字节数少于 256,请修改程序并调试通过;
(3)请采用其他方式对传送的数据字节数进行计数和判断,修改程序并调试通过。
3-10 在【实验 3-3】中,请自行设计一些特殊的条件,如数据块的起始地址和大小,根据这些特殊条件优化或修改程序并调试通过。
3-11 如果把IDATA中80H~ FFH中的数据送到外部XDATA中的0000H~ 7FFFH单元中(128B一循环),请设计程序并调试通过。
3-12 在【实验 3-5】中,如果不用MOV @R0,A这条指令,请修改程序并调试通过。
3-13 下列指令中哪些是非法指令?
3-14 对不可以位操作的寄存器如何对其中的一位置位或清零操作?又如何判断其中的某一位为 0或为 1?请用合适的指令或程序说明如何实现上述目的。