অনুলিপি করার নির্দেশকে সাধারণত এমওভির নাম দেওয়া হয় কেন?


23

বেশ কয়েকটি এসেম্বলারের ক্ষেত্রে একটি মান কপি করার নির্দেশকে সাধারণত "এমওভি" নাম দেওয়া হয় এবং ম্যানুয়ালগুলিতে এর বিবরণে সাধারণত "চাল" থাকে (তবে, "লোড", "স্টোর", "এক্সট্র্যাক্ট" ইত্যাদি শব্দ ব্যবহার করা যেতে পারে) etc. ) কোনও আইএসএ সন্ধান করা অস্বাভাবিক ) যা এই সম্মেলনটি অনুসরণ করে না।

অন্যদিকে, অন্যান্য প্রসঙ্গে "মুভ" "কপি" থেকে পৃথক হয়ে যায় অর্থে যে উত্সটি ধ্বংস হয়ে গেছে (উদাহরণস্বরূপ, ইউনিক্সে "এমভি" বনাম "সিপি", নরটন কমান্ডার এবং ক্লোনসগুলিতে মুভ [এফ 6] ইত্যাদি। ) এসেমব্লারের "পদক্ষেপ "টিতে উত্সের মানটি অক্ষত রেখে অর্থপূর্ণ" অনুলিপি "রয়েছে।

আমি খুঁজে পেয়েছি যে এটি কমপক্ষে আইবিএম 1401 (1959) থেকে শুরু হয়েছে , তবে, আইবিএম 360 এই শব্দটি কেবল ইন-স্টোরেজ অনুলিপি করার জন্য ব্যবহার করেছে, তবে রেজিস্টার এবং স্টোরেজের মধ্যে ক্রিয়াকলাপের জন্য নয় (যা "লোড" এবং "স্টোর" ব্যবহার করে) । তবে কেন এটি এখনও ব্যাপকভাবে ব্যবহৃত এবং "অনুলিপি" বা "স্টোর" দিয়ে প্রতিস্থাপন করা হয়নি?


5
উইকিপিডিয়া বলেছে : "এই অপারেশনের জন্য শব্দটি সরবভাবে বলা যায়, একটি ভুল জ্ঞানী: এটি কোনও জায়গা থেকে এ-বি-তে স্থানান্তরিত করার শারীরিক ধারণার সাথে সামান্যই সম্পর্কযুক্ত, এ স্থানটি খালি হয়ে যায়; পরিবর্তে একটি এমওভি একটি অনুলিপি তৈরি করে এ এ অবজেক্টের অবস্থা এবং বি এর পুরনো অবস্থাকে এই প্রক্রিয়াটিতে ওভাররাইট করে। এটি অন্য কয়েকটি সমাবেশ ভাষায় প্রতিস্থাপনের পরিবর্তে লোড , স্টোর বা অনুলিপি শব্দ ব্যবহার করে প্রতিফলিত হয় "
উয়ে কেইম

@ উউকিম হুম, প্রশ্নের আগে আমি ব্যাখ্যাটির জন্য গুগল করেছি তবে এই নিবন্ধটি খাওয়ানো হয়নি। যাইহোক এটি বর্তমান অবস্থার ব্যাখ্যা দেয় কিন্তু বাস্তব উত্সের জন্য কোনও সূত্র দেয় না ...
নেট ডেস্ক

2
@gnat আমি "নির্দেশ সেট আর্কিটেকচার" বোঝাতে চেয়েছি, ISA বাস নয়। আমি এটি পুনরায় সম্পাদন করেছি।
নেট

@ নেট ধন্যবাদ! আমি কোনওভাবেই এটি মিস করতে পেরেছি যে উইকিপিডিয়ায় বিপর্যয়ের
gnat

1
আমি সন্দেহ করি কেন এটি মূলত "অনুলিপি" এর পরিবর্তে "চাল" বলা হয়েছিল তবে এটি অনুমান করা মজাদার find উপর সমাবেশ ভাষার জন্য উইকিপিডিয়া পৃষ্ঠা , এটা, যা একটি আকর্ষণীয় ব্যাখ্যা হল "ডেটার একটি অনুলিপি চলন্ত" জন্য একটি অপারেশন যেমন যে MOV বর্ণনা করা হয়েছে। আর একটি সম্ভাবনা হ'ল এমওভির প্রকৃত ব্যবহারের ক্ষেত্রে, অপারেশনটি ধারণাগতভাবে ডেটা আন্দোলন করে; যে আমরা আর উত্স সম্পর্কে চিন্তা করি না।
বেন লি

উত্তর:


10

কিছু নির্দেশিকা সেটগুলিতে মেমরি থেকে রেজিস্টার লোড করতে, মেমরিতে একটি রেজিস্টার সংরক্ষণ করতে বা রেজিস্টরের মধ্যে জিনিস স্থানান্তর করার জন্য পৃথক নির্দেশাবলীর উপস্থিতি রয়েছে। কিছু সমাবেশ ভাষার ফর্মগুলি প্রতিটি কিছুর জন্য "লোড" ক্রিয়া ব্যবহার করে (যেমন জিলোগের জেড 80 স্মৃতিবিদ্যার ব্যবহার ld a,(1234h), ld (1234h),aএবং ld a,b) এবং কিছু "টি" ট্রান্সফার ব্যবহার করে (উদাহরণস্বরূপ, "এক্স ট্রান্সফার এক্স এ" এর জন্য টিএক্সএ সহ 6502) ব্যবহার করে, কিছু "পদক্ষেপ" ব্যবহার করে রেজিস্টার-টু-রেজিস্টার অপারেশনগুলিকে লোড এবং স্টোর থেকে আলাদা করার জন্য। কারও কাছে যদি 68000 এর মতো একটি নির্দেশ ফর্ম্যাট থাকে যা রেজিস্টার-থেকে-নিবন্ধকরণ, রেজিস্টার-থেকে-মেমরি, মেমরি-টু-রেজিস্টার এবং এমনকি মেমরি-টু-মেমরি ক্রিয়াকলাপের জন্য একই সাধারণ নির্দেশ ফর্ম ব্যবহার করে, ক্রিয়া "মুভ" হয় বিকল্পগুলির তুলনায় সম্ভবত একটি ভাল সাধারণ-উদ্দেশ্য ক্রিয়া।

মিনিকম্পিউটার বা মেইনফ্রেম নির্দেশাবলী 8080 এর পূর্বে আমার কোনও ধারণা নেই তবে 8080 সর্বাধিক মেমরি-অ্যাক্সেস নির্দেশাবলীর জন্য "লোড" এবং "স্টোর" এবং নিবন্ধ-থেকে-নিবন্ধকরণের নির্দেশাবলীর জন্য "মুভ" ব্যবহার করেছিল তবে বেশিরভাগ নির্দেশাবলী যা পরিচালনা করতে পারে নির্বিচারে 8-বিট রেজিস্টার "এম" তেও পরিচালনা করতে পারে যা এইচএল দ্বারা সম্বোধন করা মেমরির অবস্থান ছিল, সুতরাং "এম" থেকে বা "এমওভি" আসলে লোড বা স্টোর হিসাবে আচরণ করবে।

"অনুলিপি" এবং "সরানো" এর মধ্যে পার্থক্য হিসাবে, আমি সন্দেহ করি যে কোডটি রেজিস্টার তৈরি করতে বা ধ্বংস করতে পারে না এই সত্যটির সাথে অনেক কিছু করার আছে; তারা ঠিক আছে। কোড সিকোয়েন্সের আচরণ বর্ণনা করার ক্ষেত্রে mov bx,ax / mov ax,1234, প্রথম নির্দেশটি বিএক্সকে কুঠার অনুলিপি করে বলতে কি আরও বেশি অর্থবোধ করে এবং দ্বিতীয় নির্দেশটি মানটিকে ধ্বংস করে axএবং এটি 1234 মানের সাথে প্রতিস্থাপন করে, বা এটি প্রথম দেখার জন্য আরও অর্থবোধ করে? নির্দেশকে বিএক্স থেকে কুড়াল পর্যন্ত স্থানান্তরিত করা হয়েছে (কুড়ালিতে মানটি "" যত্ন নেই "), এবং দ্বিতীয় নির্দেশটি 1234 দিয়ে কুঠার (যা যত্নশীল ছিল না) বোঝায়? কখনও কখনও উত্স রেজিস্টারগুলি নিবন্ধক-স্থানান্তর নির্দেশের পরেও অর্থবহ হয় তবে যেহেতু নির্দেশটি সেটি হবে কিনা তা নির্দেশ করার জন্য সেটটিতে কিছুই নেই,


আপনার উত্তরটি সমর্থন করার মতো কোনও প্রমাণ আমার কাছে নেই, তবে এটি অবশ্যই ঠিক ঠিক শোনাচ্ছে। লোড / স্টোর অপারেশনগুলি মেমোরি / ক্যাশে যাওয়ার কারণে সিপিইউ / মাইক্রোকোডে আলাদা পথ গ্রহণ করতে চলেছে, তবে রেজিস্টারগুলির মধ্যে চলাচল এককচক্র (অন্য পাইপলাইন পর্যায়ে অপেক্ষা করার প্রয়োজন নেই) হতে পারে এবং তাই পার্থক্যের মূল্যবান। তবে এটি মুভ-বনাম-অনুলিপিটির ব্যাখ্যা দেয় না ...
JBRWilkinson

একমত। উদাহরণস্বরূপ মেমরি-ম্যাপযুক্ত ইনপুট ডিভাইসগুলি বিবেচনা করুন। উত্সের অবস্থানটি পড়া এটি সংশোধন করতে পারে - উদাহরণস্বরূপ আপনি হার্ডওয়্যার সারি থেকে যে আইটেমটি পড়েছেন তা পরের সারিবদ্ধ আইটেমটির সাথে প্রতিস্থাপন করুন। এটি অনুলিপিটির পরিবর্তে চলাফেরা করার মতো শোনাচ্ছে - উত্সটি আর সেই তথ্যটি ধারণ করে না, কেবল গন্তব্যস্থলটি করে। এবং সেই আচরণটি সিপিইউ দ্বারা সিদ্ধান্ত নেওয়া হয় না, এটি সেই মেমরি-ম্যাপযুক্ত ডিভাইস দ্বারা সিদ্ধান্ত নেওয়া হয়।
স্টিভ 314

অ্যাসেম্বলির ভাষাগুলি মিমোনমিক্স ব্যবহার করে যা "সিপিইউ কেন্দ্রিক"। এটি হ'ল সিপিইউ'র রেজিস্টারগুলির দৃষ্টিকোণ থেকে সমস্ত কিছুর নামকরণ করা হয়েছে। সুতরাং, "লোড" সাধারণত একটি রেজিস্টারে একটি কপি অনুলিপি করে, যেখানে "স্টোর" সাধারণত একটি রেজিস্টার থেকে মেমরিতে অনুলিপি করে। তাহলে এক রেজিস্টার থেকে অন্য রেজিষ্টারে কোনও কপি অনুলিপি বলার কী আছে? "সরানো" একটি সুস্পষ্ট পছন্দ। যদি একই মাইক্রোকোড অপারেশন উভয়ই সঞ্চালন করে (68000 হিসাবে), "মুভ" লোড / স্টোরের জন্য আরও সাধারণ পছন্দ। "অনুলিপি" ব্যবহার করা যেতে পারে তবে রিডানড্যান্ট হতে পারে যেহেতু সত্যিকারের "চাল" নামে কোনও জিনিস নেই, যেখানে উত্সটি খালি রেখে দেওয়া হয়েছে।
ডকসালভাইজার

@ ডকসালভেজ: যদি একটি 32-বিট রেজিস্টার 32 টি ফ্লিপ ফ্লপ বা ল্যাচগুলির একটি স্থির গোছা থাকে যা সর্বদা উপস্থিত থাকে, "সরানো" অগত্যা কোনও অর্থবোধ করে না। নিবন্ধের নাম পরিবর্তন করে আর্কিটেকচারগুলিতে, তবে একটি "মুভ" অপারেন্ড যা উত্সকে অকার্যকর করে দেয় ভার্চুয়াল রেজিস্টার মুক্ত করে দক্ষতার উন্নতি করতে পারে। আমি যেমন একটি জিনিস করা হচ্ছে কথা শুনিনি করেছি, কিন্তু আমি কোনো আর্কিটেকচারের যা ছিল জানি না পরিকল্পিত মনে রেজিস্টার-পুনঃনামকরনের সঙ্গে।
সুপারক্যাট

@ সুপের্যাট: কম্পিউটার হার্ডওয়্যারে, সমস্ত রেজিস্টার এবং সমস্ত মেমরির অবস্থানগুলিতে সর্বদা একটি মান থাকে। আসলে "নাল" বা "খালি" বলে কোনও জিনিস নেই। আমরা রেজিস্টার বা মেমরির বিষয়বস্তুগুলি অবৈধ হলে তা চিহ্নিত করতে স্বেচ্ছাসেবী কনভেনশন ব্যবহার করি। খুব প্রায়শই, আমরা "0" কে "নাল" হিসাবে চিহ্নিত করি তবে সর্বদা তা নয়। উদাহরণস্বরূপ মেমরির ব্লকের "নাল" অবস্থাটি অন্য কোনও স্থানে সঞ্চিত ঠিকানাগুলি শুরু করে এবং শেষ করে নির্দেশ করা যেতে পারে। পাশাপাশি রয়েছে আরও অনেক কৌশল। চূড়ান্তভাবে, ভাষা স্মৃতিবিদ্যাগুলি স্বেচ্ছাসেবী হলেও আমরা সর্বাধিক বিস্তৃত বিকল্পের জন্য চেষ্টা করি।
ডকসালভ্যাজার

0

আপনি অবশ্যই ঠিক বলেছেন। মুভি নির্দেশের সমস্ত উদাহরণ আসলে একটি অনুলিপি না হলে।

কারও কারও কাছে এমন একটি ছদ্মবেশী নির্দেশনা রয়েছে যা এমনকি একটি মুভিও নেই

add dest=source+zero.

আরও বুঝতে হবে যে আসকি সিনট্যাক্স নির্বিচারে, মেশিন কোডের অর্থ কিছু এবং এটি প্রসেসরের জন্য সংজ্ঞায়িত এবং সংশোধন করা হয়। প্রসেসর স্রষ্টা / বিক্রেতারা বেশিরভাগ সময় নির্দেশ সেটটি (মেশিন কোড) সংজ্ঞায়িত করতে এবং অংশে একটি সংশ্লেষ সংজ্ঞায়িত করার জন্য তৈরি করেন যা তারা তৈরি করেছেন বা সেই সমাবেশ ভাষাটিকে মেশিনে রূপান্তর করতে কমিশন দিয়েছিলেন তাদের প্রসেসরের জন্য কোড। আপনি অবশ্যই উদাহরণস্বরূপ gnu এসেম্বলারের মধ্যে যেতে পারেন (যার নিজস্ব কাজটি করার প্রবণতা রয়েছে এবং প্রসেসর বিক্রেতাদের সিনট্যাক্সটি কোনওভাবে অনুসরণ না করা) এবং একটি অনুলিপি সিউডো নির্দেশ যুক্ত করুন।

কেসগুলি ব্যবহার করুন: ভাল আজকাল বেশিরভাগ সমাবেশ ভাষার কোডটি সংকলক তৈরি করা হয় এবং মুভ নির্দেশাবলী প্রায়শই একটি রেজিস্টর থেকে অন্য রেজিস্টারে একটি মান স্থানান্তর করতে ব্যবহৃত হয় যাতে উত্সের নিবন্ধ (স্মৃতি অবস্থান ইত্যাদি) পুনরায় ব্যবহার করা যায়। সেই প্রসেসরের জন্য কলিং কনভেনশনের কারণে বা কিছু নির্দেশাবলী বা নির্দেশের সেটগুলি অर्थোগোনাল নয়, তাই আপনাকে জিনিসগুলি চারপাশে সরিয়ে নিতে হবে। অবশ্যই কিছু সময় আছে যখন কোনও মানের একটি অনুলিপি পছন্দ হয় এবং মুভটি সেই অনুলিপি তৈরি করতে ব্যবহৃত হতে পারে।

আমি সন্দেহজনকভাবে সন্দেহ করি যে আমরা কখনই জানতে পারি যে ব্যক্তি বা দল প্রথমে এই পদটি নিয়েছিল এবং কেন তারা অনুলিপি থেকে সরানো বেছে নিয়েছিল। কারণ আমরা এটিতে অভ্যস্ত হয়ে পড়েছি আমরা প্রতিটি নতুন নির্দেশ সেট সহ এটি পুনরায় ব্যবহার করার ঝোঁক। যেমন ইতিমধ্যে উল্লিখিত কিছু নির্দেশিকাতে রেজিস্ট্রার ভিত্তিক লোড এবং স্টোর নির্দেশাবলী ব্যবহার করা হয় যেখানে একটি অপারেন্ড একটি নিবন্ধক এবং অন্যটি একটি ঠিকানা এবং কেবল নিবন্ধকের ক্ষেত্রে মামলা (গুলি) নিবন্ধ করার জন্য মুভ। এবং অন্যান্য নির্দেশাবলী সেটগুলি রেজিস্টার বা মেমরির জন্য অপরেন্ডের জন্য মুভি ব্যবহার করে। যদিও আপনি যে কোনও / অনেকগুলি ওপেন সোর্স এসেম্বাবলারের কাছে অবশ্যই অনুলিপি যুক্ত করতে পারেন, এর ব্যবহারের সাথে ট্র্যাকশন পাওয়া আরও কঠিন হবে। আপনি যদি এমন কোনও জায়গায় কাজ করেন যেখানে আপনার মূল সিনট্যাক্সের উপর নিয়ন্ত্রণ রয়েছে (একটি নতুন প্রসেসর তৈরির জায়গার জন্য কাজ করুন) যেখানে আপনি নিবন্ধকে সরানোর জন্য নিবন্ধকে আদেশ করতে পারেন, তাকে অনুলিপি বলা হয়,


-4

কোনও নির্দেশ প্রতিস্থাপনের অর্থ পশ্চাতে সামঞ্জস্যতা ভঙ্গ করা। নতুন সিনট্যাক্স সহ একটি সমাবেশকারী পুরানো বাক্য বাক্সের সাথে লিখিত কোডটি একত্রিত করতে সক্ষম হবেন না - যদি না সেই কোডটি সেই নির্দেশনাটি ব্যবহার না করে (এবং কেবলমাত্র এমন কোনও সংসদীয় কোড যা MOVআপনি ব্যবহার করেন না এমন শব্দটি সিনট্যাক্স উদাহরণগুলিতে রয়েছে) যা অন্যান্য নির্দেশাবলী দেখায় ...)

সংকলকগণ সাধারণত সমাবেশ কোড উত্পন্ন করে এবং স্বয়ংক্রিয়ভাবে এটি সমাবেশকারীর কাছে প্রেরণ করে, যাতে নতুন এসেম্বলারের সাথে মানানসই তাদের পরিবর্তন করতে হবে। যদি কোনও ভাষা ইনলাইন অ্যাসেমব্লিকে অনুমতি দেয় তবে পুরাতন উত্স কোড যা MOVনির্দেশাবলী সহ ইনলাইন এসেম্ব্লার ব্যবহার করে তা আর কাজ করবে না।

সুতরাং, আমরা একটি বিশাল কোড ভাঙ্গা সম্পর্কে কথা বলছি, এবং কি জন্য? এটি ভাষাটিকে আর পাঠ্যযোগ্য করে তুলবে না, কারণ কয়েকটি উচ্চ স্তরের ভাষার বিপরীতে আপনার কাছে অ্যাসেম্বলি না জেনে সংসদীয় কোড কী করার তা বলার কোনও সম্ভাবনা নেই, এবং যদি আপনি সমাবেশ জানেন তবে আপনি কী জানেন তা MOVজানেন।

শূন্য লাভের সাথে বিশাল ব্যয় সহজে নির্দেশ দেয় যে নির্দেশিকাটির নাম পরিবর্তন করা হয়নি।


3
এই প্রশ্ন জিজ্ঞাসা উত্তর কিভাবে?
gnat

2
প্রশ্ন চিহ্ন দিয়ে শেষ হওয়া একমাত্র বাক্যটি 'তবে কেন এটি এখনও বহুল ব্যবহৃত এবং "অনুলিপি" বা "স্টোর" দিয়ে প্রতিস্থাপন করা হয়নি?' '
ইদান আরে

2
এটি কয়েক দশক ধরে স্ক্র্যাচ থেকে নকশা করা (যেমন পিছনের সামঞ্জস্যের সীমাবদ্ধতা ব্যতীত) অসংখ্য আইএসএ দ্বারা কেন নির্দেশনার নামকরণ করা হয়েছিল তা ব্যাখ্যা করে না। এছাড়াও, যদি কোনও বিক্রেতার পিছনে সামঞ্জস্য থাকা সত্ত্বেও স্মৃতিচারণ পরিবর্তন করতে চায় তবে তারা একটি উপনাম সরবরাহ করতে পারে এবং এর ব্যবহারের প্রচার করতে পারে।

1
"ওপি" কী বোঝায়? এবং, আমি আসল ব্যাখ্যা দেখিনি।
নেট

1
আমি মূল পোস্টার এবং আমি, S / 360 মেমরি কোষের মধ্যে অনুলিপি রাষ্ট্র হইবে না "কিছুটা ভিন্ন অপারেশন" কিন্তু একই অনুলিপি শুধুমাত্র বিশেষ ক্ষেত্রে দেখা যায়। প্রশ্নটি এখনও এখনও অমীমাংসিত।
নেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.