51��Ƭ�C(j��)�Д��ĵ�����
������Д����(w��)����(sh��) ISR ��ʹ�üĴ�������ô���̎���� using ��ʹ�Æ�(w��n)�}��
1���Д����(w��)����(sh��)ʹ�� using ָ���c������(sh��)��ͬ�ļĴ����M(������(sh��)һ��ʹ�� Register bank 0)��
2���Д���(y��u)�ȼ�(j��)��ͬ��ISR ���� using ָ����ͬ�ļĴ����M������(y��u)�ȼ�(j��)��ͬ�� ISR ���ʹ�ò�ͬ�ļĴ����M����ISR �б��{(di��o)�õĺ���(sh��)ҲҪʹ�� using ָ���c�Дຯ��(sh��)��ͬ�ļĴ����M����reentranrָ�������뺯��(sh��)��
3��������� using ָ������ ISR �������C51 Ĭ�J(r��n)�x��Ĵ����M0���@�ஔ(d��ng)���Д����(w��)�����������Ȉ�(zh��)��ָ�
MOV PSW #0
�@�c(di��n)���C�����](m��i)ʹ�� using ָ���ĸ߃�(y��u)�ȼ�(j��)�Д��������Д�ʹ�ò�ͬ�ļĴ����M�ĵ̓�(y��u)�ȼ�(j��)�Дࡣ
4��ʹ�� using �P(gu��n)�I�ֽo�Д�ָ���Ĵ����M���@��ֱ���ГQ�Ĵ����M�������M(j��n)�д����� PUSH �� POP ���������Թ�(ji��)ʡRAM���g������ MCU ��(zh��)�Еr(sh��)�g���Ĵ����M���ГQ�����ā�(l��i)�f(shu��)���^���׳��e(cu��)��Ҫ��(du��)��(n��i)���ʹ����r�б��^�������J(r��n)�R(sh��)�������_��Ҫ�����Լ���(l��i)���C���e�ڳ�������ֱ�ӵ�ַ�L��(w��n)�ĕr(sh��)����һ��ҪС��֔(j��n)��!����“ʲô�r(sh��)��Ҫ�õ��Ĵ����M�ГQ”��һ�N��r�ǣ���(d��ng)��ԇ�D�ɂ�(g��)(������)���I(y��)ͬ�r(sh��)�\(y��n)�������������ĬF(xi��n)��(ch��ng)��ҪһЩ���x�ĕr(sh��)�����͕�(hu��)���������� ISR ��ʹ�Ì�(sh��)�r(sh��)����ϵ�y(t��ng) RTOS �����Ĵ����dz�������
�Ĵ����Mʹ�õ�ԭ�t��
1��8051 �����32 ��(g��)�ֹ�(ji��)�ֳ� 4 �M 8 �Ĵ������քe��Ĵ���R0 ��R7���Ĵ����M��PSW �ĵ̓�λ�x������ ISR ����MCU �����ГQ��һ��(g��)��ͬ�ļĴ����M����(du��)�Ĵ����M���L��(w��n)����λ��ַ��C51 ���g��Ҏ(gu��)��ʹ�� using �� ��ֹ�Д�ĺ���(sh��)(#pragma disable )�����ܷ��� bit �(l��i)�͵�ֵ��
2��������(main����(sh��))ʹ��һ�M���� bank 0;���Д���(y��u)�ȼ�(j��)�������Д��ʹ�õڶ��M���� bank 1;���Д���(y��u)�ȼ�(j��)�������Д��ʹ��������һ�M���� bank 2���@Ȼ��ͬ��(j��)�e���Д�ʹ��ͬһ�M�Ĵ�������(hu��)�І�(w��n)�}����?y��n)鲻�?hu��)�l(f��)���Д�Ƕ��;���߃�(y��u)�ȼ�(j��)���Д��tҪʹ���c�̓�(y��u)�ȼ�(j��)�Дͬ��һ�M����?y��n)��п��ܳ��F(xi��n)�ڵ̓�(y��u)�ȼ�(j��)�Д��аl(f��)���߃�(y��u)�ȼ�(j��)�Д����r�����g����(hu��)�Ԅ�(d��ng)�Д�Εr(sh��)��ʹ�ý^��(du��)�Ĵ�����ȡ��
3���� ISR ���{(di��o)����������(sh��)����횺��Д�ʹ����ͬ�ļĴ����M����(d��ng)�](m��i)�� NOAREGS ���������_���������g����ʹ�ý^��(du��)�Ĵ�����ַ��ʽ�L��(w��n)����(sh��)�x��(���� using �� REGISTERBANK ָ��)�ļĴ����M����(d��ng)����(sh��)�ٶ��ĺ͌�(sh��)�H���x�ļĴ����M��ͬ�r(sh��)�����a(ch��n)�������A(y��)֪�ĽY(ji��)�����Ķ����ܳ��F(xi��n)����(sh��)���f�e(cu��)�`������ֵ���ܕ�(hu��)���e(cu��)�`�ļĴ����M����
�eһ���ӣ���(d��ng)��Ҫ���Д���(n��i)���Д����{(di��o)��ͬһ��(g��)����(sh��)���ٶ����ճ�������̿���������(hu��)���F(xi��n)����(sh��)���f�w�{(di��o)�ìF(xi��n)�����@�ӵ��{(di��o)�Õ�(hu��)����(hu��)���F(xi��n)��(w��n)�}?���_������(hu��)�l(f��)��������r���t�����ɷN��r��(��������,�Ų���(hu��)���F(xi��n)��(w��n)�}:)
1����� ISR ��������ʹ��ͬһ�Ĵ����M(������ȱʡʹ��BANK 0���� ISR �](m��i)��ʹ�� using ����ָ���Ĵ����^(q��)���tȱʡҲʹ�� BANK 0)���t���������O(sh��)����
2����� ISR ��������ʹ�ò�ͬ�ļĴ����M(������ȱʡʹ��BANK 0��ISR ʹ�� using ָ�������� BANK)���t���{(di��o)�ú���(sh��)��횷��ڣ�
#pragma NOAREGS
#pragma AREGS
���ƅ���(sh��)��(du��)����ָ�����g����Ҫ��(du��)ԓ����(sh��)ʹ�ý^��(du��)�Ĵ�����ַ��ʽ;����Ҳ���� Options->C51���x��“Dont use absolute register accesses”��ʹ���д��a����ʹ�ý^��(du��)�Ĵ�����ַ��ʽ(�@������(zh��)��Ч�ʌ����н���)����Փ���ϵ���һ�N��r�����g������(hu��)�o�����뾯�������ֹ����� OVERLAY ����(sh��)���������f(shu��)����
3��߀��һ�N�k����������{(di��o)�ú���(sh��)�Ĵ��a���Ǻ��L(zh��ng)��߀�nj�ԓ����(sh��)��(f��)��һ�����ò�ͬ�ĺ���(sh��)���������@�N��r�m��ROM��������Ŀ��g��
�������(du��)using�P(gu��n)�I�ֵ�ʹ��������](m��i)���������ɲ��������o���gϵ�y(t��ng)�Լ�ȥ̎��������
#pragma disable
�ں���(sh��)ǰ����ֻ��(du��)һ��(g��)����(sh��)������ԓ����(sh��)�{(di��o)���^(gu��)�����������ɱ��Д���
�f�w������뺯��(sh��)ָ��
����������Д�����{(di��o)�õĺ���(sh��)���׳��F(xi��n)��(w��n)�}���üĴ������f����(sh��)����(n��i)��׃����RAM�У�����(sh��)����r(sh��)������(hu��)�Ɖ��ϴεĔ�(sh��)��(j��)��������ɷN������Q����(sh��)���놖(w��n)�}��
������(y��ng)�ĺ���(sh��)ǰ����“#pragma disable”����ֻ���S����������Д�֮һ�{(di��o)��ԓ����(sh��);
��ԓ����(sh��)�f(shu��)��������룺VOID func(para..) reentrant;
ָ���惦(ch��)ģʽ
��small compact ��l(f��)arge �f(shu��)�������磺
void fun1(void) small { }
��ʾ��small �f(shu��)���ĺ���(sh��)��(n��i)��׃��ȫ��ʹ�Ã�(n��i)��RAM���P(gu��n)�I�Ľ�(j��ng)���Եĺĕr(sh��)��
�ط������@������������\(y��n)���ٶ���

����admin ����ĕr(sh��)�g��2018-05-18