የቁልፍ ልዩነት - የማሽን ጥገኛ እና ከማሽን ነጻ ኮድ ማመቻቸት
የኮምፒውተር ፕሮግራሞች ተግባራትን ለማከናወን ለሃርድዌር የተሰጡ መመሪያዎች ናቸው። እነዚህ ፕሮግራሞች በአብዛኛው የተጻፉት በከፍተኛ ደረጃ ቋንቋዎች ነው, እና ኮምፒዩተሩ ያንን ቋንቋ አይረዳውም. ስለዚህ፣ ማቀናበሪያ እነዚህን መመሪያዎች ወደ ማሽን ኮድ ወይም ኢላማ ኮድ ለመቀየር ስራ ላይ ይውላል። የታለመውን ኮድ ለመገንባት በበርካታ ደረጃዎች ውስጥ ያልፋል. ኮድ ማመቻቸት ከእነዚህ ውስጥ አንዱ ነው. እንደ ማሽን ጥገኛ እና የማሽን ገለልተኛ ኮድ ማመቻቸት ያሉ ሁለት የማሻሻያ ቴክኒኮች አሉ። በማሽን ጥገኛ እና በማሽን ገለልተኛ ኮድ ማመቻቸት መካከል ያለው ቁልፍ ልዩነት የማሽኑ ጥገኛ ማመቻቸት በዕቃ ኮድ ላይ ሲተገበር የማሽን ገለልተኛ ኮድ ማመቻቸት በመካከለኛው ኮድ ላይ መተግበር ነው።
የማሽን ጥገኛ ኮድ ማመቻቸት ምንድነው?
የምንጩን ኮድ ወደ የነገር ኮድ ወይም ኢላማ ኮድ ሲቀይሩ አቀናባሪው ብዙ ደረጃዎችን ያልፋል። በመጀመሪያ፣ የምንጭ ኮዱ ቶከን ለሚፈጥር ለሌክሲካል ተንታኝ ተሰጥቷል። ከዚያ፣ ውጤቱ የተፈጠሩት ቶከኖች በሎጂክ ቅደም ተከተል ውስጥ መሆናቸውን ለሚመረምር የአገባብ ተንታኝ ይሰጣል። ያ ውፅዓት የሚሰጠው ለትርጉም ተንታኝ ነው። እንደ p=q + r; እንደ ኮድ ቁራጭ እንዳለ አስብ።
እዚህ፣ p፣q ኢንቲጀር ናቸው፣ ግን r ተንሳፋፊ ነው። የፍቺ ተንታኝ በመጠቀም፣ የ c ኢንቲጀር ተለዋዋጭ ወደ ተንሳፋፊነት ይቀየራል። ስለዚህ, የትርጉም ትንተና ያደርጋል. የትርጉም ተንታኝ ውፅዓት ወደ መካከለኛ ኮድ ጀነሬተር ይሄዳል። መካከለኛ ኮድ ይመልሳል ከዚያም ወደ ኮድ አመቻች ይሄዳል። ኮድ ማመቻቸት የእውነተኛ ምንጭ ኮድን ትርጉም ሳይቀይሩ አስፈላጊ ያልሆኑትን የፕሮግራም መግለጫዎችን የማስወገድ ሂደት ነው። የግዴታ ማመቻቸት አይደለም ነገር ግን የዒላማ ኮድን የማስኬጃ ጊዜን ያሻሽላል።የኮድ አመቻች ውፅዓት ለኮድ ጀነሬተር ተሰጥቷል፣ እና በመጨረሻም፣ የዒላማው ኮድ ተገንብቷል።
ስእል 01፡ የአቀናባሪው ደረጃዎች
በማሽን ጥገኛ ኮድ ማመቻቸት ውስጥ፣ ማመቻቸት በምንጭ ኮድ ላይ ይተገበራል። በቂ የሀብት መጠን መመደብ በዚህ ማመቻቸት የፕሮግራሙን አፈፃፀም ሊያሻሽል ይችላል።
የማሽን ገለልተኛ ኮድ ማመቻቸት ምንድነው?
በመሃከለኛ ኮድ ማመቻቸት ሲደረግ የማሽኑ ገለልተኛ ኮድ ማመቻቸት ይባላል። የማሽን ገለልተኛ ኮድ ማመቻቸትን ለማግኘት የተለያዩ ቴክኒኮች አሉ። የሚገለጹት የሚከተሉትን ምሳሌዎች በመጠቀም ነው።
ከታች የኮድ መስመሮችን ያንብቡ።
ለ (j=0፤ j<10፤ j ++) {
b=x+2፤
a[j]=5 j;
}
ከላይ ባለው ኮድ መሰረት b=x+2 በየድግግሞሽ ይሰላል። ለ አንዴ ከተሰላ አይለወጥም። ስለዚህ ይህ መስመር ከሉፕ ውጭ እንደሚከተለው ሊቀመጥ ይችላል።
b=x+2፤
ለ(j=0፤ j< 10፤ j++)
{a[j]=5j;
}
ይህ የኮድ እንቅስቃሴ ይባላል።
ከታች የኮድ መስመሮችን ያንብቡ።
j=5;
ከሆነ (j==10) {
a=b+20፤
}
ከላይ ባለው ኮድ መሠረት 'if block' በጭራሽ አይሰራም ምክንያቱም j እሴት በጭራሽ ከ 10 ጋር እኩል አይሆንም። ቀድሞውኑ በዋጋው 5 ላይ ተጀምሯል ። ስለዚህ ፣ ይህ እገዳ ሊወገድ ይችላል። ይህ ዘዴ የሞተ ኮድ ማስወገድ ነው።
ሌላው ዘዴ የጥንካሬ ቅነሳ ነው። እንደ ማባዛት ያሉ አርቲሜቲክ ስራዎች ተጨማሪ ማህደረ ትውስታ፣ ጊዜ እና ሲፒዩ ዑደቶችን ይፈልጋሉ። እነዚህ ውድ መግለጫዎች እንደ b=a2 ባሉ ርካሽ መግለጫዎች ሊተኩ ይችላሉ. ወይም በመደመር ሊተካ ይችላል፣ b=a + a;
ከታች ያለውን ኮድ ይመልከቱ።
ለ (j=1፤ j <=5፤ j ++) {
እሴት=j5;
}
ከማባዛት ይልቅ ኮዱ በሚከተለው መልኩ ሊቀየር ይችላል።
int temp=5;
ለ (j=1፤ j<=5፤ j++) {
ሙቀት=ሙቀት + 5፤
እሴት=ሙቀት፤
}
በአሂድ ጊዜ ቋሚ የሆኑትን አገላለጾች መገምገም ይቻላል። የማያቋርጥ መታጠፍ ይባላል. እንደ b[j+1]=c [j+1]፤ የመሳሰሉ ሊገለጽ ይችላል
ይልቁንስ እንደሚከተለው ሊቀየር ይችላል።
n=j +1፤
b[n]=c[n]፤
እንደሚከተለው ቀለበቶች ሊኖሩ ይችላሉ።
ለ (j=0፤ j<5፤ j++) {
printf("a\n")፤
}
ለ (j=0፤ j <5፤ j++) {
printf("b\n");
}
a እና bን በማተም ሁለቱም ተመሳሳይ የድግግሞሽ ብዛት አላቸው። ሁለቱም እንደሚከተለው ለሉፕ ወደ አንድ ሊጣመሩ ይችላሉ።
ለ (j=0፤ j <5፤ j++) {
printf("a \n");
printf("b\n");
}
ሌላው ጠቃሚ ቴክኒክ የጋራ ንዑስ አገላለጽ መወገድ ነው። ስሌቱን ለመሥራት ተመሳሳይ መግለጫዎችን በአንድ ተለዋዋጭ መተካት ነው. ከታች ያለውን ኮድ ይመልከቱ።
a=bc + k;
d=b c + m;
ይህ ኮድ እንደሚከተለው ሊቀየር ይችላል።
temp=bc;
a=temp + k;
d=temp + m;
bcን ደጋግሞ ማስላት አያስፈልግም። የተባዛው እሴት በተለዋዋጭ ውስጥ ተከማችቶ እንደገና ጥቅም ላይ ሊውል ይችላል።
በማሽን ጥገኛ እና በማሽን ገለልተኛ ኮድ ማመቻቸት መካከል ያለው ተመሳሳይነት ምንድን ነው?
ሁለቱም የኮድ ማበልጸጊያ ናቸው
በማሽን ጥገኛ እና በማሽን ገለልተኛ ኮድ ማመቻቸት መካከል ያለው ልዩነት ምንድን ነው?
የማሽን ጥገኛ እና የማሽን ገለልተኛ ኮድ ማመቻቸት |
|
የማሽን ጥገኛ ኮድ ማመቻቸት በነገር ኮድ ላይ ይተገበራል። | የማሽን-ገለልተኛ ኮድ ማመቻቸት ወደ መካከለኛ ኮድ ይተገበራል። |
በሃርድዌር ተሳትፎ | |
የማሽን ጥገኛ ማመቻቸት የሲፒዩ መዝገቦችን እና ፍፁም የማስታወሻ ማጣቀሻዎችን ያካትታል። | የማሽን ነጻ ኮድ ማመቻቸት የሲፒዩ መዝገቦችን ወይም ፍፁም የማስታወሻ ማጣቀሻዎችን አያካትትም። |
ማጠቃለያ - የማሽን ጥገኛ እና ከማሽን ገለልተኛ ኮድ ማመቻቸት
የኮድ ማመቻቸት ሁለት የማሻሻያ ቴክኒኮችን ያቀፈ ሲሆን እነሱም የማሽን ጥገኛ እና የማሽን ገለልተኛ ኮድ ማመቻቸት። በማሽን ጥገኛ እና በማሽን ገለልተኛ ኮድ ማመቻቸት መካከል ያለው ልዩነት የማሽኑ ጥገኛ ማመቻቸት በነገር ኮድ ላይ ሲተገበር የማሽኑ ገለልተኛ ኮድ ማመቻቸት በመካከለኛ ኮድ ላይ መተግበሩ ነው።
የፒዲኤፍ የማሽን ጥገኛ ስሪት ያውርዱ ከማሽን ነጻ ኮድ ማበልጸጊያ
የዚህን ጽሁፍ ፒዲኤፍ ስሪት አውርደው እንደ ጥቅስ ማስታወሻ ከመስመር ውጭ ዓላማ መጠቀም ይችላሉ። እባክዎን የፒዲኤፍ እትምን እዚህ ያውርዱ በማሽን ጥገኛ እና በማሽን ገለልተኛ ኮድ ማመቻቸት