যখন সি লেখা হচ্ছে, পিডিপি -11 এর ম্যাক্রো -11 এর সমাবেশের ভাষাটি ছিল:
MOV #'A, R0 // 8-bit character encoding for 'A' into 16 bit register
এই জাতীয় জিনিসটি ভাষা ভাষায় প্রচলিত - কম 8 টি বিট অক্ষর কোডটি ধারণ করবে, অন্যান্য বিটগুলি 0 থেকে সাফ হয়ে গেছে PD পিডিপি -11 এমনকি ছিল:
MOV #"AB, R0 // 16-bit character encoding for 'A' (low byte) and 'B'
এটি 16 বিট রেজিস্ট্রারের নিম্ন এবং উচ্চ বাইটে দুটি অক্ষর লোড করার জন্য একটি সুবিধাজনক উপায় সরবরাহ করেছে। এরপরে আপনি এগুলি অন্য কোথাও লিখতে পারেন, কিছু পাঠ্যগত ডেটা বা স্ক্রিন মেমরি আপডেট করে।
সুতরাং, আকারগুলি নিবন্ধের জন্য চরিত্রগুলি প্রচার করার ধারণাটি বেশ স্বাভাবিক এবং আকাঙ্ক্ষিত। তবে, ধরা যাক আপনাকে হার্ড-কোডড অপকোডের অংশ হিসাবে নয়, তবে কোথাও থেকে মূল স্মৃতিতে এমন একটি রেজিস্টারে 'এ' পাওয়া দরকার:
address: value
20: 'X'
21: 'A'
22: 'A'
23: 'X'
24: 0
25: 'A'
26: 'A'
27: 0
28: 'A'
আপনি যদি এই মূল স্মৃতি থেকে একটি রেজিস্টারে কেবল একটি 'এ' পড়তে চান তবে আপনি কোনটি পড়বেন?
কিছু সিপিইউ কেবলমাত্র 16 বিট রেজিস্টারে একটি 16 বিট মান পড়তে সরাসরি সমর্থন করতে পারে, যার অর্থ 20 বা 22 এ পড়ার পরে 'এক্স' থেকে বিটগুলি সাফ করা প্রয়োজন হবে এবং সিপিইউ এক বা অন্যটির শেষতার উপর নির্ভর করে লো অর্ডার বাইটে স্থানান্তর করা দরকার।
কিছু সিপিইউগুলির জন্য একটি মেমরি-প্রান্তিক পাঠকের প্রয়োজন হতে পারে যার অর্থ হ'ল জড়িত সর্বনিম্ন ঠিকানা অবশ্যই ডেটা আকারের একাধিক হতে হবে: আপনি 24 এবং 25 ঠিকানা থেকে পড়াতে সক্ষম হতে পারেন তবে 27 এবং 28 নয়।
সুতরাং, একটি সংকলক উত্পাদক কোডটি রেজিস্টারে একটি 'এ' পেতে কিছুটা অতিরিক্ত মেমরি নষ্ট করতে পছন্দ করতে পারে এবং 0 'এ' বা 'এ' 0 হিসাবে মান এনকোড করতে পারে - এন্ডিয়ানাটির উপর নির্ভর করে এবং এটি সঠিকভাবে প্রান্তিককরণ নিশ্চিত করে ( অর্থাত্ বিজোড় মেমরি ঠিকানায় নয়)।
আমার ধারণা হ'ল সি এর কেবলমাত্র সিপিইউ কেন্দ্রিক আচরণের এই স্তরটি বহন করে, রেজিস্টার আকারের মেমরির অধিকারী চরিত্রের ধ্রুবকদের কথা চিন্তা করে, সি এর সাধারণ মূল্যায়নকে "উচ্চ স্তরের এসেমব্লার" হিসাবে বহন করে।
( Http://www.dmv.net/dec/pdf/macro.pdf এর 6-25 পৃষ্ঠাতে 6.3.3 দেখুন )