8月8日
堆栈:在8051单片机中,有一个称为堆栈 (Stack) 的特殊存储空间,其作用主要用于保存上下文 (也称为现场)
典型的,当执行程序的过程中遇到跳转指令时,就需要将当前PC指向的下一跳指令的地址保存起来,等待执行完跳转指令时再将所保存的下一条指令的地址恢复到程序地址寄存器中。
在处理器核内的运算器中,最核心的功能单元就是8位的算术逻辑单元(Arithmetic and Logic Unit,ALU) 可以算术运算,包括8位的加、减、乘和除运算,递增、递减、BCD十进制调整和比较运算,逻辑运算,按位运算,包括置位、复位、取补、如果没有设置则跳转操作、如果设置则跳转并且清除操作和移入/移出进位标志寄存器。
累加器(Accumulator,ACC) 简写为A,用于大多数指令结果的累加器,累加器位于SFR地址为0xE0的位置。
B寄存器:在乘法和除法运算中,B寄存器有特殊用途。对于在其他情况,它作为普通寄存器。B寄存器位于SFR地址为0xF0的位置。 乘法操作:参与乘法运算的一个操作数保存在B寄存器中,另一个保存在A寄存器中并且,在乘法运算后,乘积的高8位保存在B寄存器中,乘积的低8位保存在A寄存器中。 除法操作:参与除法运算的被除数保存在A寄存器中,[除数保存在B寄存器中。并且在除法运算后,所得的商保存在A寄存器中,余数保存在B寄存器中。
程序状态字:
在程序状态字 (Program Status Word,PSW) 寄存器中,保存一些具有特殊含义的位,这些位反映当前8051 单片机内处理器核的工作状态。该寄存器位于SFR空间地址为0xD0的位置。 RS1和RS0,寄存器组选择位用于选择不同的寄存器组。
OV,溢出标志:ADD、ADDC、SUBB、MUL和DIV指影响该位状态。 RSV,保留位 P,奇偶标志位:在指令每条指令后,设置或清除该位。该位表示累加器ACC中“1”的个数。 如果累加器A中“1”的个数为奇数时,将P设置为“1”;否则,如果累加器A中“10的个数为偶数时,将P设置为”0“
字节存储顺序 小端:在小端模式中,先保存最低有效位,或者是低字节比如:一个十六位的整数0x1234,使用小端方式连续占用两个字节。
8位单片机存储器结构和地址空间 程序存储器、内部数据存储器、外部数据存储器。
程序Flash存储器-程序存储器空间映射
中断服务程序的入口地址(也称为中断向量) 也放在程序存储单元低地址空间
在程序存储单元中,对于每个中断来说都有一个固定的入口地址当外部中断进入8051 CPU并得到响应后,8051 CPU就自动跳转到相应的中断入口地址执行程序。
内部数据RAM存储器,卡片扩展RAM。 外部数据存储器-外部数据存储器访问控制 STC15系列40引脚以上的单片机具有扩展64KB外部数据存储器和I/O口的能力。 STC32系列单片机处理器核兼容MCS-251 ISA,真正实现了1位/8位/16位和32位的操作。
在MCS-251 ISA中,对于24位地址总线进行了定义,高8位表示访问的段空间,低16位表示当前访问段空间的具体存储单元位置,使用xxxx xxxx : yyyy yyyy yyyy yyyy表示。
Flash存储器和EEPROM (共128kB)。内部RAM区域-EDATA (共4KB)。内部扩展RAM区域-XDATA (共8KB)。
|