لغة تبادل المسجلات  لغة تبادل البيانات بين المسجلات هي نوع من اللغات الوسيطة وهي العمليات المكروية (الأعمال التي تقوم بها وحدة المعالجة المركزية عند تنفيذها لدورة الأمر) وهي أساس معظم الأنظمة الرقمية التسلسلية، وتعتبر العمليات المكروية أكثر بساطة من لغة التجميع ( Assembly Language) ومن الأمثلة على العمليات المكروية نذكر :  يعتبر المعالج أنك ذاهب لشراء غالون من الحليب أولا سوف تتوجه إلى سيارتك وتغلق باب المنزل ثم ستضع المفتاح في السيارة ثم ستشغل السيارة وتذهب إلى المتجر وتنزل من السيارة وتشتري الحليب تم تعود وتركب سيارتك وتتوجه ثانية إلى المنزل.  يمكنك أن تعتبر كل خطوة قمت بها حتى حصلت على الحليب عملية مكروية وعند أداء هذه العمليات بترتيبها الصحيح يمكنك أن تؤدي أعمالا كبيرة وكذلك النظام الرقمي التسلسلي يؤدي وظائفه بنفس الطريقة التي اشتريت بها الحليب فهو يؤدي أعماله بعمليات مكروية متتالية ومتسلسة بترتيب معين يمكنه على سبيل المثال من نقل أو تعديل البيانات في مسجل ما، فوحدة المعالجة المركزية تودي عمليات مكروية متسلسة لجلب وفك تشفير وتنفيذ التعليمات.  إن البيانات المنقولة باللعمليات المكروية تؤدي نصف المهمة المطلوبة نظرا لانه يجب علينا أن نراعي الشروط المخصصة لنقل البيانات وكيفية نقلها وزمن نقلها لتحقيق الفائدة المرجوة منها، هذه الشروط تضمن لنا أن تكون العلميات المكروية قد نفذت بالترتيب الصحيح.  العملية المكروية هي بالتحديد العملية التي تكون نتيجتها مخزنة في مسجل ما أو في موقع ذاكري ويمكن أن تكون العملية بسيطة كنسخ مسجل إلى مسجل آخر أو موقع ذاكري أو معقدة كجمع قيمتي مسجلين وتخزين الناتج في مسجل ثالث.  عند تصميم النظم الرقمية التسلسية فإن المصمم يمكن أن يحدد أولا كيفية تصرف النظام باستخدام التعليمات المكروية ومن ثم يصمم البنية الصلبة للنظام ويصل بين هذه العمليات والبنية التي قام بتصميمها.  لنكون تصورا عن هيكلية العمليات المكروية نفترض نظاما رقميا مكونا من مسجلين كل منهما بطول واحد بت X & Y إن العملية المكروية التي تنسخ محتويات المسجل Y إلى المسجل X يمكن أن توصف كما يلي X<--Y وأحيانا توصف كما يلي Y<--X وسنستخدم الصغة الأولى في هذه المقالة.  إن العملية المكروية لا تحدد كيفية نسخ المسجل Y إلى المسجل X ولكنها تحدد فقط أنه يجب أن تتم عملية النسخ فالعملية المكروية ربما تطبق عن طريق اتصال مباشر كما في الشكل  أو عن طريق ممر كما في الشكل  إن كلا التطبيقين صحيح لتأدية العملية المكروية ولكن المصمم يختار الطريقة الأنسب لنظامه الذي قام بتصميمه  إن مجموعة العمليات المكروية غالبا ما تكون كافية لتصميم ممر بياناتها، كما أن الارتباطات بين المكونات يستخدم لنقل البيانات، هذه المجموعة لا تحدد الشروط التي سيتم من خلالها نقل البيانات. لنفترض أن عملية نقل البيانات يجب أن تحدث عندما يكون مدخل التحكم a في الجهد العالي (واحد منطقي)، عندها يمكن أن نعبر عن عملية النقل هذه كما يلي  IF a THEN X<--Y  إن لغة تبادل المسجلات ولغة وصف البنية الصلبة غالبا ما تستخدم الترقيم المضغوط بالشكل التالي : Condition : Micro-Oporation عملية مكروية : شرط  البنية الصلبة لنقل البيانات المشروطة موضحة بالشكلين التاليين  النقل المباشر  النقل عبر الممر  إن أحد أهم طرق تحسين النظام هي تنفيد أكثر من عملية مكروية في نفس اللحظة وعندها نفصل بين العمليات بفواصل غير منقوطة، فعلى سبيل المثال إذا أردنا نقل محتوى المسجل Z إلى Y ونقل محتوى المسجلY إلى X  نكتب السطر التالي a : X<--Y,Y<--Z أو a : Y<--Z ،X<--Y  ونعبر عنه كبنية صلبة بالشكل التالي  عندما يكتب الدكتور عبارة على السبورة فإنه من الممكن للعديد من الطلاب أن يقرؤوا تلك العبارة بنفس اللحظة، كذلك الأمر بالنسبة للمسجلات فإنه بإمكاننا نقل بيانات المصدر إلى أكثر من هدف في نفس اللحظة، من جهة أخرى فإننا من الخطأ أن نكتب العبارة التالية  a : X<--Z، X<--Y  وهذا شيء بديهي لن أعقب عليه  تمكننا لغة تبادل المسجلات من نقل مجموعات من المسجلات إلى مسجلات مقابلة بتعليمة واحدة فإذا أردنا مثلا نقل المسجلات Y0,Y1,Y2,Y3 إلى المسجلات X0,X1,X2,X3 على الترتيب نكتب السكر التالي  (a : X(3-0)<-- Y(3-0  الجمع X<--X+Y  الطرح X<--X-Y أو X<--Y -X  الزيادة X<--X+1  الانقاص X<--X-1  و المنطقية X<--X ^ Y أو X<--Y ^ X  أو المنطقية X<--X v Y أو X<--Y v X  عدم التماثل X<--X (+)Y  النفي المنطقي X<--/X أو 'X<--X  إزاحة خطية لليسار (shl(x  إزاحة خطية لليمين (shr(x  إزاحة دائرية لليسار (cil(x  إزاحة دائرية لليمين (cir(x  إزاحة رياضية لليسار (ashl(x  إزاحة رياضية لليمين (ashr(x  إزاحة عشرية لليسار (dshl(x  إزاحة عشرية لليمين (dshr(x  في الإزاحة الخطية لليسار نهمل البت الأخير من اليسار ونزيح البتات خانة واحدة لليسار ثم نضع في اليمين صفرا مثال : 0110 --> 1011  في الإزاحة الخطية لليمين نهمل البت الأخير من اليمين ونزيح البتات خانة واحدة لليمين ثم نضع في اليسار صفرا مثال : 0101 --> 1011  في الإزاحة الدائرية لليسار ننقل البت الأخير من اليسار ونضعه في اليمين مثال : 0111 --> 1101  في الإزاحة الدائرية لليمين ننقل البت الأخير من اليسار ونضعه في اليسار مثال : 1101 --> 1011  في الإزاحة الرياضية ننفذ نفس عملية الإزاحة الخطية إلا أننا نترك الخانة اليسرى على حالها باعتيارها خانة إشارة مثال : 1110 --> 1011  وتستخدم الإزاحة العشرية عند الترميز الثنائي بالصيغة المجمعة BCD  كا الأسهم يجب أن تكون من اليمين إلى اليسار ة إذا صادفت سهما من اليسار إلى اليمين فتجاهل الاتجاه واعتبره نحو اليسار (((-->)))  يملك متحكم مخزن الهاتف حساسين خارجيين، الأول : C يحدد فيما إذا كانت السيارة موجودة في  الحجرة C=1 عندما تكون السيارة موجودة وإلا فإن C=0  الحساس الثاني يحدد فيما إذا كانت العملة النقدية مودعة في الحجرة أم لا وله الحالات التالية :  I1I0 = 00 العملة النقدية مودعة بالحجرة  I1I0 = 01 العملة من مادة النيكل  I1I0 = 10 العملة من مادة النحاس  I1I0 = 11 العملة من مادة الفضة  كما تملك الحجرة خرجين ضوئيين وخرج منبه :  عندما تدخل سيارة حجرة الأدوات يضيء الضوء الأحمر (R) ويبقى مضيئا حتى يودع السائق على الأقل 35 سنتا وعندها ينطفئ الضوء الأحمر ويضيء الضوء الأخضر (G) ويبقى الضوء الأخضر مضيئا حتى تغادر السيارة الحجرة  وعندها يضيى الضوء الأحمر مرة أخرى، إذا غادرت السيارة حجرة الهاتف دون أن تدفع كامل الرسوم يبقى الضوء الأحمر مضيئا ويبدء المنبه بإصدار صوت الإنذار ويبقى صوت الإنذار إلى أن تدخل سيارة أخرى الحجرة.  نلاحظ أن  R-------G-----A-------الشرط--------------الحالة  0 0 1 لا يوجد سيارة في الحجرة Snocar  0 0 1 يوجد سيارة وتم دفع 0 سنتا S0  0 0 1 يوجد سيارة وتم دفع 5 سنتا S5  0 0 1 يوجد سيارة وتم دفع 10 سنتا S10  0 0 1 يوجد سيارة وتم دفع 15 سنتا S15  0 0 1 يوجد سيارة وتم دفع 20 سنتا S20  0 0 1 يوجد سيارة وتم دفع 25 سنتا S25  0 0 1 يوجد سيارة وتم دفع 30 سنتا S30  0 1 0 يوجد سيارة وتم دفع 35 سنتا Spaid  1 0 1 غادرت السيارة دون دفع كامل القيمة Scheat  /*الجدول التالي يوضح*/  R—G—A—الحالات الآنية—C---I1I0---الحالات التالية  0 0 1 S0 xx 1 Snocar  0 0 1 Snocar xx 0 Spaid  0 0 1 S0 xx 1 Scheat  1 0 1 Scheat xx 0 S0  0 0 1 S5 01 1 S0  0 0 1 S10 10 1 S0  0 0 1 S25 11 1 S0  1 0 1 Scheat xx 0 S5  0 0 1 S10 01 1 S5  0 0 1 S15 10 1 S5  0 0 1 S30 11 1 S5  1 0 1 Scheat xx 0 S10  0 0 1 S15 01 1 S10  0 0 1 S20 10 1 S10  0 1 0 Spaid 11 1 S10  1 0 1 Scheat xx 0 S15  0 0 1 S20 01 1 S15  0 0 1 S25 10 1 S15  0 1 0 Spaid 11 1 S15  1 0 1 Scheat xx 0 S20  0 0 1 S25 01 1 S20  0 0 1 S30 10 1 S20  0 1 0 Spaid 11 1 S20  1 0 1 Scheat xx 0 S25  0 0 1 S30 01 1 S25  0 1 0 Spaid 10 1 S25  0 1 0 Spaid 11 1 S25  1 0 1 Scheat xx 0 S30  0 1 0 Spaid 01 1 S30  0 1 0 Spaid 10 1 S30  0 1 0 Spaid 11 1 S30  و الشكل التالي يبين مخطط الحالات بدو إظهار شروط الانتقال والتي بيناها في الجدول السابق  بما أن الآلة تملك 10 حالات، نحتاج إلى 4 بتات لتشفير هذه الحالات، لذلك سنستخدم المسجل T الذي سيحوي قيمة البتات الأربعة و  T-----R—G—A----الحالة  0 0 1 0000 Snocar  0 0 1 0001 S0  0 0 1 0010 S5  0 0 1 0011 S10  0 0 1 0100 S15  0 0 1 0101 S20  0 0 1 0110 S25  0 0 1 0111 S30  0 1 0 1000 Spaid  1 0 1 1001 Scheat  0 0 1 1010—1111 غير مستتخدمة  من شروط المسألة ومن مخطط الحالة أصبح بإمكاننا كتابة يكون على الشكل التالي :  1. Snocar C: T<--0001  2. Spaid C': T<--0000  3. ScheatC: T<--0001  4. S0 C': T<--1001  5. S0 CI1'I0: T<--0010  6. S0 CI1I0': T<--0011  7. S0 CI1I0: T<--0110  8. S5 C': T<--1001  9. S5 CI1'I0: T<--0011  10. S5 CI1I0': T<--0100  11. S5 CI1I0: T<--0111  12. S10 C': T<--1001  13. S10 CI1'I0: T<--0100  14. S10 CI1'I0: T<--0101  15. S10 CI1I0: T<--1000  16. S15 C': T<--1001  17. S15 CI1'I0: T<--0101  18. S15 CI1I0': T<--0110  19. S15 CI1I0: T<--1000  20. S20 C': T<--1001  21. S20 CI1'I0: T<--0110  22. S20 CI1I0': T<--0111  23. S20 CI1I0: T<--1000  24. S25 C': T<--1001  25. S25 CI1'I0: T<--0111  26. S25 CI1I0': T<--1000  27. S25 CI1I0: T<--1000  28. S30 C': T<--1001  29. S30 CI1'I0: T<--1000  30. S30 CI1I0': T<--1000  31. S30 CI1I0: T<--1000  32. T3(T2+T1): T<--0000  كما أن  1. Spaid C': R<--1, G<--0  2. ScheatC: R<--1, G<--0, A<--0  3. SnocarC: R<--1, G<--0, A<--0  4. S0C': A<--1  5. S5C': A<--1  6. S10C': A<--1  7. S10CI1I0: R<--0, G<--1  8. S15C': A<--1  9. S15CI1I0: R<--0, G<--1  10. S20C': A<--1  11. S20CI1I0: R<--0, G<--1  12. S25C': A<--1  13. S25CI1I0': R<--0, G<--1  14. S25CI1I0: R<--0, G<--1  15. S30C': A<--1  16. S30CI1'I0: R<--0, G<--1  17. S30CI1I0': R<--0, G<--1  18. S30CI1I0: R<--0, G<--1  19. T3(T2+T1) : R<--1, G<--0, A<--0  و بالتالي يكون  1. (S0+S5+S10+S15+S20+S25+S30)C': T<--1001  2. SpaidC': T<--0000  3. (Snocar+Scheat)C: T<--0000  4. S0 CI1'I0: T<--0010  5. S0 CI1I0': T<--0011  6. S0 CI1I0: T<--0110  7. S5 CI1'I0: T<--0011  8. S5 CI1I0': T<--0100  9. S5 CI1I0: T<--0111  10. S10 CI1'I0: T<--0100  11. S10CI1I0': T<--0101  12. S10 CI1I0: T<--1000  13. S15 CI1'I0: T<--0101  14. S15 CI1I0': T<--0110  15. S15 CI1I0: T<--1000  16. S20 CI1'I0: T<--0110  17. S20 CI1I0': T<--0111  18. S20 CI1I0: T<--1000  19. S25 CI1'I0: T<--0111  20. S25 CI1: T<--1000  21. S30C(I1+I0): T<--1000  22. T3(T2+T1) : T<--0000  23. Spaid C': R<--1, G<--0  24. (Snocar+Scheat)C: R<--1, G<--0, A<--0  25. (S0+S5+S10+S15+S20+S25+S30)C': A<--1  26. (S10+S15+S20+S25+S30)CI1I0: R<--0, G<--1  27. (S25+S30)CI1I0': R<--0, G<--1  28. S30CI1'I0: R<--0, G<--1  29. T3(T2+T1) : R<--1, G<--0, A<--0 \\\\\\\\\\\  Official Site 2  international  RTL Group4