Special Function Registers
SFR
الجدول التالى يوضح موقع كل من الـ accumulator و المخزن المساعد B
الرسم التالى يوضح موقع ال منفذ ( 1 ) ( port 1 ) العنوان من (90H ) الى (97H )
Program Status Word
PSW

يحتوى الـ PSW على التالى :-
Carry flag
CY
يستخدم اثناء عمليات الجمع او الطرح حيث يخزن فيه 1 اذا ما ظهر لدينا قيمة تنتقل الى خانة اعلى او عند الطرح و ظهور رقم اقل من امطروح منه .
الامثلة التالية تحدد وظيفة الـ Carry :-
1-
MOV A, #FFFH
ADD A, #1
ما هى حالة الـ Cary Flag ؟
FFH+1H=100H
هنا نجدأن:-
A=#00 , CY = 1
2-
MOV R5, #55H
MOV A, #0AAH
ADD A, R5
[/SIZE];
ما هى حالة الـ Cary Flag ؟
0AAH+55H = 0FFH
هنا نجد أنه لا يوجد باقى
A=FFH and CY=0 (No Carry)
Auxiliary Carry flag
AC
[SIZE="4"
]
- عند التعامل مع نظام التكويد العشرى على هيئة ثنائى ( BCD ) و تحديداً عند عمل إضافة فانه عند الانتقال من الخانة الثالثة الى الخانة الرابعة فانه ( AC ) تحمل الرقم 1 .
- مثال لتوضيح استخدام ( AC )
مطلوب معرفة حالة ( AC ) و محتوى المسجل ( Accumulator ) بعد تنفيذ التتابع التالى :-
MOV R5, #1;
MOV A, #9;
ADD A, R5
;
ا
لاجابة :-
لفهم هذا المثال يلزم مراجعة الانظمة العددية ( ليست مجال الموضوع حالياً )
A=10H (BCD) =1010 = 00010000B , AC=1
Register bank select bit
RS1 and RS0
كيفية اختيار المخزن داخل كل مصفوفة
يتم ذلك من خلال تحديد قيم ( D3 & D4 ) داخل الـ ( PSW )
و ذلك من خلال عمل تكويد بسيط يحمل اربع قيم ( 0 ، 1 ، 2 ، 3 ) و كل فيمة تعبر عن رقم المصفوفة المستخدمة .
( RS1, RS0 ) à ( 0 , 0 ) à ( Regester Bank 0 is Selected )
( RS1, RS0 ) à ( 0 , 1 ) ---> ( Regester Bank 1 is Selected )
( RS1, RS0 ) à ( 1 , 0 ) ---> ( Regester Bank 2 is Selected )
( RS1, RS0 ) ---> ( 1 , 1 ) à ( Regester Bank 3 is Selected
)
و يتم التحكم فى هذه القيم من خلال الأوامر التالية :-
SETB RS1; CLR RS0
هنا تم ضبط نظام التكويد الى الوضع ( RS1, RS0 ) = ( 1 , 0 ) و من ثم اختيار المصفوفة Regester Bank 2
لاحظ وظيفة الامر SETB و التى يمكن استخدامها مع اسم (( SFR او عنوانها مباشرة
SETB RS1 (= SETB 0D4H)
SETB RS0 (=SETB 0D3H)