අතර වෙනස AMD64 සහ i386 බව ය AMD64 වේ 64-bit අතර i386 වේ 32-bit . හරයේ ඇති ලේඛනයේ පළල (බිටු වලින්) මෙයයි.
මූලික වශයෙන් බිට් 32 ක CPU හරයක් එක් වරකට හැසිරවිය හැකි විශාලතම සංඛ්යාව බිලියන 4.29 ඉක්මවන අතර 64-bit හරයකට බිලියන 18.44, බිලියන ගණනකට වඩා ටිකක් හැසිරවිය හැකිය.
නවීන පරිගණකවල ඇති හරයන් ඔබ ස්ථාපනය කර ඇති මෙහෙයුම් පද්ධතියේ කුමන අනුවාදය මත පදනම්ව 64-බිට් හෝ 32-බිට් 32 ප්රොසෙසරයක් ලෙස හැසිරීමට හැකියාව ඇත.
64-බිට් කේතය 32-බිට් කේතයට වඩා වේගයෙන් ධාවනය වීමට නැඹුරු වන්නේ එයට විශාල සංඛ්යාවක් සමඟ ගනුදෙනු කළ හැකි නිසා හෝ 64-බිට් මධ්යයේ වැඩි ලේඛනයක් ඇති නිසා බාහිර මතකයේ තැන්පත් කිරීමකින් තොරව තවත් දේවල් ගබඩා කළ හැකිය. ප්රොසෙසරයේ අමතර විශේෂාංග වලින් වාසි ලබා ගැනීම සඳහා කේතය ලියා නොමැති නම් 64-බිට් කේතය වේගයෙන් ක්රියාත්මක වන බවට සහතිකයක් නැත.
32-බිට් පද්ධතියක් සම්පාදනය කිරීමෙන් 64-බිට් පද්ධතියකට වඩා වෙනස් කේතයක් නිපදවනු ඇත. පද්ධති දෙකෙහි එකලස් කිරීමේ කේතයට සම්පාදනය කිරීමෙන් ඔබට මෙය ඔප්පු කළ හැකිය. ඔබේ C ගොනුව myfile.c යැයි උපකල්පනය කිරීම gcc -S myfile.c
පද්ධති දෙකටම උත්සාහ කර myfile.s සංසන්දනය කරන්න
32-බිට් පද්ධතියක් සඳහා හොඳින් ලියා ඇති කේතය 64-බිට් පද්ධතියක් සම්පාදනය කර ක්රියාත්මක කළ යුතු නමුත් සියලු කේත හොඳින් ලියා නැත. බොහෝ ක්රමලේඛකයින් සත්ය නොවන පද්ධතිය ගැන උපකල්පන කරයි: ලියාපදිංචි පළල හෝ බයිට් අනුපිළිවෙල වැනි.
ඔබේ ප්රභව කේතයට ප්රවේශ නොවී ගැටලුව කුමක්දැයි බැලීමට අපහසු නමුත් එයින් segmenation fault
ඇඟවෙන්නේ වැඩසටහනට අයත් නොවන මතකයට ප්රවේශ වීමට උත්සාහයක් ගෙන ඇති බවයි. උදාහරණයක් ලෙස, mem_ptr යනු 32-බිට් පොයින්ටරයක් වන අතර එය බිට් 32 පද්ධතියක් මත හොඳයි, නමුත් 64-බිට් පද්ධතියක 64-බිට් පොයින්ටරයක් විය යුතුය.