মধ্যে পার্থক্য AMD64 এবং মধ্যে i386 যে AMD64 হয় 64-বিট যখন মধ্যে i386 হয় 32 বিট । এটি কোরটিতে উপলব্ধ রেজিস্টারগুলির প্রস্থ (বিটগুলিতে)।
মূলত 32-বিট সিপিইউ কোর সবচেয়ে বেশি যে সংখ্যাটি একবারে পরিচালনা করতে পারে তা হ'ল 4.29 বিলিয়নেরও বেশি, যখন একটি 64-বিট কোর 18.44 বিলিয়ন, বিলিয়নেরও বেশি কিছু পরিচালনা করতে পারে।
আধুনিক পিসিগুলিতে করগুলি 64৪-বিট বা একটি 32-বিট প্রসেসরের হিসাবে আচরণ করতে সক্ষম আপনি নির্ভর করে যে অপারেটিং সিস্টেমটি ইনস্টল করেছেন তার কোনও সংস্করণ on
-৪-বিট কোডটি 32-বিট কোডের চেয়ে দ্রুত চলতে পারে কারণ এটি চলতে চলতে বড় সংখ্যার সাথে ডিল করতে পারে বা 64৪-বিট কোরগুলিতে আরও রেজিস্টার রয়েছে তাই বাহ্যিক স্মৃতিতে জিনিস না রেখে আরও কিছু জিনিস সংরক্ষণ করতে পারে store যদিও কোনও গ্যারান্টি নেই যে প্রসেসরের অতিরিক্ত বৈশিষ্ট্যগুলির সুবিধা নিতে কোডটি লেখা না থাকলে 64৪-বিট কোডটি দ্রুত চলবে।
32-বিট সিস্টেমে সংকলন করা একটি 64-বিট সিস্টেমের চেয়ে আলাদা কোড তৈরি করবে। আপনি দুটি সিস্টেমে অ্যাসেম্বলি কোড সংকলন করে এটি প্রমাণ করতে পারেন। ধরে নেওয়া আপনার সি ফাইলটি myfile.cgcc -S myfile.c
উভয় সিস্টেমে চেষ্টা করে দেখুন এবং myfile.s এর তুলনা করুন
32-বিট সিস্টেমের জন্য ভাল লিখিত কোডটি একটি 64-বিট সিস্টেমে সংকলন করা এবং চালানো উচিত তবে সমস্ত কোডটি ভালভাবে লিখিত হয় না। অনেক প্রোগ্রামার সিস্টেম সম্পর্কে অনুমান করে যা সত্য নাও হতে পারে: যেমন নিবন্ধের প্রস্থ বা বাইট অর্ডার।
আপনার উত্স কোড অ্যাক্সেস না করে সমস্যাটি কী তা দেখতে পাওয়া মুশকিল তবে এটি একটি segmenation fault
ইঙ্গিত দেয় যে প্রোগ্রামটির অন্তর্ভুক্ত নয় এমন মেমরির অ্যাক্সেস করার চেষ্টা করা হয়েছে। এটি উদাহরণস্বরূপ, ইঙ্গিত করতে পারে যে mem_ptr একটি 32-বিট পয়েন্টার যা 32-বিট সিস্টেমে সূক্ষ্ম তবে একটি 64-বিট সিস্টেমে a৪- বিট পয়েন্টার হওয়া দরকার।