स्टैक ओवरफ़्लो का कारण सबसे छोटा कोड क्या है? [बन्द है]


160

स्टैक ओवरफ्लो के सार्वजनिक लॉन्च को मनाने के लिए, स्टैक ओवरफ्लो का सबसे छोटा कोड क्या है? किसी भी भाषा का स्वागत है।

ईटीए: इस प्रश्न पर स्पष्ट होने के लिए, जैसा कि मैं एक सामयिक योजना उपयोगकर्ता के रूप में देख रहा हूं: टेल-कॉल "पुनरावृत्ति" वास्तव में पुनरावृत्ति है, और कोई भी समाधान जो एक सभ्य कंपाइलर द्वारा अपेक्षाकृत तुच्छ समाधान में परिवर्तित किया जा सकता है। गिना जाना। :-P

ETA2: मैंने अब "सर्वश्रेष्ठ उत्तर" चुना है; इस पोस्ट को देखें । योगदान करने वाले सभी को धन्यवाद! :-)

जवाबों:


212

ये सभी जवाब और कोई बेगुन नहीं? मैं उन सभी के लिए सबसे कम समाधान के लिए एक उचित राशि दांव लगाना होगा:

1

मजाक नहीं कर रहा हूं। इसे स्वयं आज़माएँ: http://www.quirkster.com/iano/js/befunge.html

संपादित करें: मुझे लगता है कि मुझे यह समझाने की आवश्यकता है। 1 ऑपरेंड ने 1 को बीफंगे के आंतरिक स्टैक पर धकेल दिया और किसी अन्य चीज की कमी इसे भाषा के नियमों के तहत लूप में डाल देती है।

प्रदान किए गए दुभाषिया का उपयोग करते हुए, आप अंततः - और मेरा अर्थ अंततः होगा - एक बिंदु पर जहां जावास्क्रिप्ट स्टैम्प जो कि Befunge स्टैक का प्रतिनिधित्व करता है, ब्राउज़र के लिए वास्तविक रूप से बहुत बड़ा हो जाता है। यदि आपके पास एक छोटा और बंधे हुए स्टैक के साथ एक सरल Befunge दुभाषिया है - जैसा कि नीचे की अधिकांश भाषाओं के साथ है - यह कार्यक्रम अधिक ध्यान देने योग्य अतिप्रवाह का कारण होगा।


8
हम्म ... लेकिन यह वास्तव में एक ढेर अतिप्रवाह या सिर्फ एक अनंत लूप है? मेरा जेएस दुभाषिया अतिप्रवाह नहीं हुआ , यह सिर्फ छुट्टी पर चला गया, इसलिए बोलने के लिए।
कोनराड रुडोल्फ

3
यह एक अनंत लूप नहीं है, क्योंकि 1 निर्देश स्टैक पर 1 धक्का देता है। आखिरकार, आपका Befunge दुभाषिया स्टैक स्पेस से बाहर निकल जाएगा, लेकिन इसमें कुछ समय लगेगा। :)
पैट्रिक

18
आपने .. मेरे ब्राउज़र को क्रैश कर दिया और .. मेरे सीपीयू प्रशंसक को ओवरड्राइव में भेज दिया।
सैम 152

2
गजब का! मेरा कंप्यूटर या ब्राउज़र (ओपेरा) दुर्घटनाग्रस्त नहीं हुआ था, लेकिन दोनों प्रोसेसर 100% पर चल रहे थे और पंखे की गति 3 थी
2

28
यहाँ एक Befunge प्रोग्राम है जो तेज़ी से आगे निकलता है: " यह संख्या की 79 प्रतियों को लोड करता है 32 हर दो बार इसे चारों ओर लपेटता है, बल्कि संख्या 1 की 2 प्रतियाँ
KirarinSnow


174

आप इसे C # .net में भी आज़मा सकते हैं

throw new StackOverflowException();

29
मेरे अंदर का पेडेंट कहता है कि यह किसी भी ढेर को खत्म करने का कारण नहीं है, बस एक अपवाद को फेंकता है। यह कहना है कि शार्क द्वारा हमला करने का सबसे तेज़ तरीका समुद्र में खड़ा होना और "शार्क का हमला" है। इसके बावजूद मैं इसे वोट करूंगा। :)
बर्नार्ड

अच्छा - क्या कोई अंतर है? क्या आप इसे पकड़ सकते हैं और जारी रख सकते हैं? या यह बिल्कुल # में एक stackoverflow की तरह है? उस मामले में, यह किसी भी तरह से एक स्टैवेरोफ़्लो है, क्योंकि यह एक से अप्रभेद्य है ... हालांकि - उपरोक्त सभी कारणों के लिए उत्थान
मो।

18
यदि कोई ढेर जंगल में किसी को पकड़ने के लिए चारों ओर से बहता है, तो क्या यह अपवाद नहीं है?

मैं 'सबसे छोटा' नहीं कहूंगा क्योंकि यह नहीं है कि आप उस तरह के एक-लाइनर को संकलित कर सकते हैं। यह करता है जल्दी से एक ढेर अतिप्रवाह फेंक हालांकि मुझे लगता है कि।
डोमिनिक के


119

मेरा वर्तमान सबसे अच्छा (x86 असेंबली में) है:

push eax
jmp short $-1

जिसके परिणामस्वरूप ऑब्जेक्ट कोड के 3 बाइट्स ( 50 EB FD) होते हैं। 16-बिट कोड के लिए, यह भी संभव है:

call $

जिसके परिणामस्वरूप 3 बाइट्स ( E8 FD FF) भी होते हैं।


6
"संकलन" (या असेंबलिंग) के बाद बाइट्स की गिनती कोड-गोल्फ नहीं है।
लुई ब्रांडी

37
सवाल कहता है "[...] स्टैक ओवरफ्लो का कारण सबसे छोटा कोड क्या है?" यह स्रोत कोड, व्याख्या किए गए कोड, मशीन कोड, ऑब्जेक्ट कोड या प्रबंधित कोड को निर्दिष्ट नहीं करता है ...
एंडर्स सैंडविग

रिकॉर्ड के लिए, शिन का गोल्फ सर्वर आपको ऑब्जेक्ट कोड को न्याय करने के लिए भेजने की अनुमति देता है, हालांकि यह आपके सभी ईएलएफ हेडर की भी गणना करेगा। हम्म ....
क्रिस जेस्टर-यंग

देखें, उदाहरण के लिए, golf.shinh.org/p.rb?FizzBuzz#x86 इसके कुछ उदाहरणों के लिए। (मैं ईमानदारी से नहीं जानता कि लोग 99-बाइट ईएलएफ बायनेरिज़ कैसे बना सकते हैं, हालांकि।) :-P
क्रिस जेस्टर-यंग

7
@ लब्रैंडी: ऐसे काफी लोग हैं जो ऑब्जेक्ट कोड को सीधे लिख सकते हैं। मैं इसे x86 के लिए नहीं कर सकता, लेकिन एक निश्चित माइक्रोप्रोसेसर के लिए जो मैं कर सकता हूं। मैं ऐसे कोड गिनाऊंगा।
जॉय

113

PIC18

PIC18 जवाब टी द्वारा दिए गए निम्न निर्देश में परिणाम (बाइनरी):

overflow
   PUSH
   0000 0000 0000 0101
   CALL overflow
   1110 1100 0000 0000
   0000 0000 0000 0000

हालाँकि, CALL अकेले एक स्टैक ओवरफ़्लो का प्रदर्शन करेगा:

CALL $
1110 1100 0000 0000
0000 0000 0000 0000

छोटा, तेज़ PIC18

लेकिन RCALL (सापेक्ष कॉल) अभी भी छोटी है (वैश्विक मेमोरी नहीं है, इसलिए अतिरिक्त 2 बाइट्स की कोई आवश्यकता नहीं है):

RCALL $
1101 1000 0000 0000

तो PIC18 पर सबसे छोटा एक एकल निर्देश है, 16 बिट्स (दो बाइट्स)। यह 2 निर्देश चक्र प्रति लूप लेगा। निर्देश चक्र के अनुसार 4 घड़ी चक्र में आपको 8 घड़ी चक्र मिले हैं। PIC18 में 31 स्तर का स्टैक है, इसलिए 32 वें लूप के बाद यह 256 घड़ी चक्रों में स्टैक को ओवरफ्लो करेगा। 64 मेगाहर्ट्ज पर, आप स्टैक को 4 माइक्रो सेकंड और 2 बाइट्स में ओवरफ्लो करेंगे ।

PIC16F5x (और भी छोटे और तेज)

हालाँकि, PIC16F5x श्रृंखला 12 बिट निर्देशों का उपयोग करती है:

CALL $
1001 0000 0000

फिर से, दो निर्देश चक्र प्रति लूप, 4 निर्देश प्रति घड़ी तो 8 घड़ी चक्र प्रति लूप।

हालांकि, PIC16F5x में दो स्तरीय स्टैक हैं, इसलिए तीसरे लूप पर यह 24 निर्देशों में ओवरफ्लो करेगा। 20 मेगाहर्ट्ज पर, यह 1.2 माइक्रो सेकंड और 1.5 बाइट्स में बह जाएगा ।

इंटेल 4004

इंटेल 4004 एक 8 बिट कॉल सबरूटीन अनुदेश है:

CALL $
0101 0000

जिज्ञासु के लिए जो एक आस्की 'पी' से मेल खाता है। एक 3 स्तर के ढेर के साथ जो कुल 32.4 माइक्रो सेकंड और एक बाइट के लिए 24 घड़ी चक्र लेता है । (जब तक आप अपने 4004 ओवरक्लॉक नहीं करते - आओ, आप जानते हैं कि आप चाहते हैं।)

जो कि befunge उत्तर जितना छोटा है, लेकिन वर्तमान दुभाषियों में चल रहे befunge कोड की तुलना में बहुत अधिक है।




55

हर कार्य के लिए सही टूल की जरूरत होती है। एसओ ओवरफ्लो भाषा से मिलो , स्टैक ओवरफ्लो का उत्पादन करने के लिए अनुकूलित:

so

7
यदि आप कम से कम कोड के साथ ओवरफ्लो उत्पन्न करने के लिए एक विशेष भाषा बना रहे हैं, तो जाहिर है आप चाहते हैं (1) खाली इनपुट स्टैक ओवरफ्लोिंग कोड (शायद एक छोटा बाइनरी जो विधानसभा कोड प्रविष्टि से उत्पन्न मूल कोड चलाता है) या (2) बनाता है ) सभी इनपुट प्रोग्राम बाइनरी कहते हैं।
जेरेड अपडेटेड

हम्म, ट्यूरिंग पूरा नहीं। मुझे नहीं पता कि क्या आप इसे अभी तक कोई भाषा कह सकते हैं ...
एडम डेविस

42

टेक्स:

\def~{~.}~

का परिणाम:

! TeX क्षमता पार हो गई, क्षमा करें [इनपुट स्टैक आकार = 5000]।
~ -> ~
    ।
~ -> ~
    ।
~ -> ~
    ।
~ -> ~
    ।
~ -> ~
    ।
~ -> ~
    ।
...
<*> \ def ~ {~।} ~

LaTeX:

\end\end

का परिणाम:

! TeX क्षमता पार हो गई, क्षमा करें [इनपुट स्टैक आकार = 5000]।
\ end # 1 -> \ csname अंत # 1
                      यदि @ ई ... \ endcsname \ @checkend {# 1} \ expandafter \ endgroup \
<*> \ अंत \ अंत

चूंकि ~यह सक्रिय है, इसलिए इसका उपयोग किया जा सकता है \a। और मैंने दुर्घटना से पूरी तरह से एलईटीएक्स कोड की खोज की। :)
जोश ली

35

Z-80 कोडांतरक - स्मृति स्थान पर 0x0000:

rst 00

एक बाइट - 0xC7 - 0x0000 को संबोधित करने के लिए स्टैक और कूदने के लिए वर्तमान पीसी को धकेलने का अंतहीन लूप।


2
मुझे याद है कि एक खाली eprom सभी 0xffs होगा जो rst 7 (= कॉल 0x0038) निर्देश हैं। यह एक आस्टसीलस्कप के साथ अपने हार्डवेयर डिबगिंग के लिए उपयोगी होगा। पता बस 64K अंतरिक्ष के माध्यम से चक्र होगा क्योंकि स्टैक बार-बार बह निकला, 0x0038 से 0xff की रीड के साथ इंटरसेप्ड।
बिल फोस्टर

29

अंग्रेजी में:

recursion = n. See recursion.

32
कोई भी समझदार मानव मस्तिष्क टेल-कॉल इस एक की व्याख्या को भी अनुकूलित करेगा, और उड़ा नहीं। :-P
क्रिस जस्टर-यंग

73
क्रिस, समझदार मानव दिमाग इन दिनों दुर्लभ हो रहे हैं।
जेसन जेड

20
दुर्लभता ... तुम्हारा मतलब है कि वे मौजूद हैं?
एडम लर्मन

11
Google पुनरावर्तन
CodeFusionMobile

29

एक और PHP उदाहरण:

<?
require(__FILE__);

4
आपको कोष्ठक को छोड़ कर भी छोटा किया जा सकता है (लेकिन पहले के स्थान पर स्थान सहित)।
एलेक्स

26

बेसिक में निम्नलिखित के बारे में कैसे:

10 GOSUB 10

(मेरे पास एक बेसिक दुभाषिया नहीं है जिससे मैं डरता हूँ, ऐसा अनुमान है)।


3
वास्तव में स्टैक ओवरफ्लो नहीं है क्योंकि BASIC एक स्टैकलेस भाषा है। यहां तक ​​कि VB (जिसमें एक स्टैक होता है) इस पर अतिप्रवाह नहीं होगा क्योंकि यह सिर्फ कूद रहा है, स्टैक फ्रेम नहीं बना रहा है।
डैनियल स्पाइवाक

21
यह एक GOSUB, नहीं है GOTO। चूंकि यह RETURNकहाँ से बुलाया गया था, निश्चित रूप से यह एक स्टैक का उपयोग कर रहा है।
टॉम

3
हाँ मै सह्मत हूँ। मेरे पास 80 के दशक में बेसिक में कई ढेर थे ।
निक नेप

6
मैं इसे केवल मनोरंजन के लिए याबेसिक में चलाता था, और इसने लगभग मेरा कंप्यूटर ले लिया। शुक्र है कि ईश्वर मल्लोक आखिरकार असफल हो गया, लेकिन मैं कल की तरह नहीं चल रहा था।
एडम रोसेनफील्ड

2
उफ़ क्षमा करें एडम ... मुझे uni पर एक समय की याद दिलाता है जब किसी ने गलती से एक प्रोग्राम लिखा था जो पुनरावर्ती रूप से कांटा गया था: पूरे सिलिकॉन ग्राफिक्स सर्वर को नीचे ले गया।
stusmith

26

मुझे Cody का जवाब बहुत पसंद था, इसलिए यहाँ C ++ में मेरा समान योगदान है:

template <int i>
class Overflow {
    typedef typename Overflow<i + 1>::type type;
};

typedef Overflow<0>::type Kaboom;

किसी भी तरह से एक कोड गोल्फ प्रविष्टि नहीं है, लेकिन फिर भी, मेटा स्टैक अतिप्रवाह के लिए कुछ भी! :-P


21

यहाँ मेरा सी योगदान है, 18 पात्रों में वजन:

void o(){o();o();}

यह पूंछ-कॉल अनुकूलन के लिए बहुत कठिन है! :-P


4
मेरे लिए संकलित नहीं करता है: "` मुख्य 'के लिए अपरिभाषित संदर्भ ": पी
एंड्रयू जॉनसन

1
मुझे समझ नहीं आता: ओ () 2x को क्यों कहते हैं?
दीना

3
@ दीना: मेरी प्रतियोगिता की बाधाओं में से एक यह था कि टेल-कॉल ऑप्टिमाइज़ेशन की पुनरावृत्ति के रूप में गणना नहीं की जाती है; यह सिर्फ एक पुनरावृत्त पाश है। यदि आपने केवल एक बार ओ () लिखा है, तो टेल-कॉल को इस तरह से (एक सक्षम कंपाइलर द्वारा): "ओ: जेएमपी ओ" में अनुकूलित किया जा सकता है। ओ के 2 कॉल के साथ, कंपाइलर को कुछ का उपयोग करना पड़ता है जैसे: "ओ: कॉल ओ; जेम्प ओ"। यह पुनरावर्ती "कॉल" निर्देश है जो स्टैक ओवरफ्लो बनाता है।
क्रिस जस्टर-यंग

आप सही हैं - मैंने उस हिस्से पर ध्यान नहीं दिया। स्पष्टीकरण के लिए धन्यवाद।
दीना


17

जावास्क्रिप्ट

कुछ और पात्रों को ट्रिम करने के लिए, और खुद को और अधिक सॉफ्टवेयर की दुकानों से बाहर निकालने के लिए, आइए साथ चलते हैं:

eval(i='eval(i)');

15

ग्रूवी:

main()

$ ग्रूवी स्टैक.ग्रोव

Caught: java.lang.StackOverflowError
    at stack.main(stack.groovy)
    at stack.run(stack.groovy:1)
 ...

वोट दिया क्योंकि यह बहुत दिलचस्प है। ग्रूवी संकलक में एक अधिक कष्टप्रद कमजोरी का प्रस्ताव करता है, हालांकि (इस तरह के टेल-कॉल को संकलन-समय पर इनलाइन किया जा सकता है)।
डैनियल स्पाइवाक

क्या आप सुनिश्चित हैं कि यह एक टेल कॉल है? कि कार्यक्रम के अंत में गिरने से दुभाषिया खोल नहीं है?
हारून

15

कृपया मुझे बताएं कि " GNU " का संक्षिप्त नाम क्या है ।


4
या ईइन (ईइन ईमैक्स नहीं है), या ज़ेवी (ज़ीवेई शुरू में ईइन था)। :-पी
क्रिस जस्टर-यंग

या YAML, या वाइन, या XNA, या बाकी के किसी भी en.wikipedia.org/wiki/Recursive_acronym
TM।

Drei (Drei वास्तव में Emacs Incognito है), Fier (Fier is Emacs Reinvented) - ठीक है, इसलिए मैंने अभी उन लोगों को बनाया :-)
Ferruccio

14
Person JeffAtwood;
Person JoelSpolsky;
JeffAtwood.TalkTo(JoelSpolsky);

यहाँ कोई पूंछ पुनरावृत्ति के लिए उम्मीद है!


1
हे, मजाकिया। वार्तालापों से संबंधित, "इको चैम्बर प्रभाव" का विचार काफी दिलचस्प है, भी। नहीं ढेर ढेर अतिप्रवाह-उत्प्रेरण, लेकिन अभी भी।
क्रिस जस्टर-यंग

8
क्या यह एक शून्य सूचक अपवाद नहीं होगा? क्षमा करें, मुझे पता है कि यह एक मजाक है।
दोपहर

12

C - यह सबसे छोटा नहीं है, लेकिन यह पुनरावृत्ति-मुक्त है। यह पोर्टेबल भी नहीं है: यह सोलारिस पर दुर्घटनाग्रस्त हो जाता है, लेकिन कुछ एलाका () कार्यान्वयन यहां एक त्रुटि लौटा सकते हैं (या मॉलोक () कॉल कर सकते हैं)। प्रिंटफ () के लिए कॉल आवश्यक है।

#include <stdio.h>
#include <alloca.h>
#include <sys/resource.h>
int main(int argc, char *argv[]) {
    struct rlimit rl = {0};
    getrlimit(RLIMIT_STACK, &rl);
    (void) alloca(rl.rlim_cur);
    printf("Goodbye, world\n");
    return 0;
}

स्टैक को वास्तव में छोटा करने के लिए आप "अलिमित -s16" भी कर सकते हैं। लगभग 16 से छोटा और कार्यक्रम भी नहीं चलता है (अपर्याप्त आर्गन्स जाहिरा तौर पर!)।
एंड्रयू जॉनसन


11

कोशिश करें और एक ही बर्गर पर 4 से अधिक पैटीज़ लगाएं। स्टैक ओवरफ़्लो।


1
यहां न्यूजीलैंड में हमारे पास बर्गर विस्कॉन्सिन है, जहां वे बड़े लेकिन पतले पैटीज का उपयोग करते हैं। मुझे यकीन है कि यदि आप चाहते हैं तो आप उनमें से 4 से अधिक स्टैक कर सकते हैं; हालांकि यह एक बहुत महंगा बर्गर होगा!
क्रिस जस्टर-यंग

हो सकता है: alafista.com/2010/05/10/… शायद नहीं: cheaplightning.blogspot.com/2010/06/…
BCS

मम… इन-एन-आउट। en.wikipedia.org/wiki/In-n-out#Menu
cbednarski

11

अजगर :

so=lambda:so();so()

वैकल्पिक रूप से:

def so():so()
so()

और अगर पायथन अनुकूलित पूंछ कॉल ...

o=lambda:map(o,o());o()

आपके लिए भाग्यशाली, पायथन टेल-कॉल ऑप्टिमाइज़ेशन नहीं करता है; अन्यथा, यह अब तक दो अन्य उत्तरों की तरह अयोग्य होगा। :-P
क्रिस जेस्टर-यंग

10

मैं इस पोस्ट के बाद "सबसे अच्छा जवाब" का चयन कर रहा हूं। लेकिन पहले, मैं कुछ बहुत ही मूल योगदानों को स्वीकार करना चाहूंगा:

  1. अकु के हैं। हर एक स्टैक ओवरफ्लो पैदा करने का एक नया और मूल तरीका तलाशता है। F (x) ⇒ f (f (x)) करने का विचार वह है जिसे मैं अपनी अगली प्रविष्टि, नीचे में खोजूंगा। :-)
  2. कोडी की एक जिसने नेमारल कंपाइलर को एक स्टैक ओवरफ्लो दिया।
  3. और (थोड़ा सा), गेटकीलर के एक ढेर अतिप्रवाह अपवाद को फेंकने के बारे में। :-P

जितना मैं ऊपर से प्यार करता हूं, चुनौती कोड गोल्फ करने के बारे में है, और उत्तरदाताओं के लिए निष्पक्ष होने के लिए, मुझे सबसे छोटे कोड को "सर्वश्रेष्ठ उत्तर" देना होगा, जो कि बेफुंज प्रविष्टि है; मुझे विश्वास नहीं है कि कोई भी हरा सकता है (हालांकि कोनराड ने निश्चित रूप से कोशिश की है), इसलिए पैट्रिक को बधाई देता हूं!

बड़ी संख्या में स्टैक-ओवरफ़्लो-बाय-रिकर्सशन समाधानों को देखकर, मुझे आश्चर्य होता है कि किसी के पास (वर्तमान लेखन के रूप में) वाई कॉम्बिनेटर को नहीं लाया (देखें प्राइमर के लिए डिक गेब्रियल का निबंध, व्हाई वाई ऑफ वाई )। मेरे पास एक पुनरावर्ती समाधान है जो वाई कॉम्बिनेटर के साथ-साथ अकु के च (एफ (एक्स)) दृष्टिकोण का उपयोग करता है। :-)

((Y (lambda (f) (lambda (x) (f (f x))))) #f)

8

यहाँ स्कीम से एक और दिलचस्प है:

((लैम्ब्डा (x)) (xx)) (लैम्ब्डा (x)) (xx))

बहुत अच्छा है, और इसके लिए एक अच्छी समरूपता भी है। इसके अलावा, (लैम्ब्डा (x) (xx)) फॉर्मूलेशन का उपयोग करने के लिए: (((lambda (x)) (xx)) #f) का भी बहुत मज़ा है!
क्रिस जस्टर-यंग

ओह, यह सुंदर है। यह रूबी में भी काम करता है, हालाँकि इस योजना में उतना सुंदर नहीं है: lambda {| x | x.call x} .call lambda {| x | x.call x}
वेन कॉनराड

7

जावा

जावा समाधान का थोड़ा छोटा संस्करण।

class X{public static void main(String[]a){main(a);}}

5
या (पात्रों की एक ही संख्या): सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग ... ए) {मुख्य ();}
माइकल मायर्स

या TDD लोग (वर्ण की एक ही नंबर) के लिए: सार्वजनिक वर्ग ${@org.junit.Test सार्वजनिक शून्य $ () {$ ();}}
mhaller

हालांकि अभी भी सबसे छोटा नहीं है (मेरा जवाब देखें)
ड्रेक


5

3 बाइट्स:

label:
  pusha
  jmp label

अपडेट करें

के अनुसार (?) (? वर्ष) इंटेल प्रलेखन , यह भी 3 बाइट्स:

label:
  call label


यह 32-बिट मोड में 3 बाइट्स है। अच्छा जवाब, यह देखते हुए कि यह मेरे उत्तर की तुलना में बहुत अधिक तेजी से भर जाएगा!
क्रिस जस्टर-यंग

P पेंगुइनin.cz/~literakl/intel/j.html#JMP के अनुसार , jmp 8, 16 या 32 बिट सापेक्ष गंतव्य पते के साथ 3 बाइट्स है। पूसा भी 1 बाइट्स है, जो कुल 4 को बनाता है
एंडर्स

लघु, निकट, और दूर, तीन प्रकार के jmp हैं। शॉर्ट जेम्प (0xEB ओपकोड का उपयोग करके) दो बाइट्स है। गंतव्य अगले निर्देश से -128 और 127 बाइट्स के बीच होना चाहिए। :-)
क्रिस जस्टर-यंग

शायद आप ठीक कह रहे हैं। मैं अपने कोडर को खोदने और सत्यापित करने के लिए बहुत आलसी हूं ...;)
एंडर्स सैंडविग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.