मशीन पुस्तिका

इमोजी निर्देश संदर्भ

इमोजी या उसका निर्देश नाम लिखें। R0–R7 सुरक्षित पूर्णांक रखते हैं; R0 संचायक है। मेमोरी में 256 बाइट पते (0–255) हैं। गणित पूरे पूर्णांक रखता है; बिट क्रियाएँ चिह्न वाले 32-बिट मान लेती हैं।

लेबल कोलन पर समाप्त होते हैं। जंप खाली पंक्तियाँ और टिप्पणियाँ छोड़कर लेबल या शून्य-आधारित निर्देश क्रमांक लेते हैं। # टिप्पणी शुरू करता है। LOAD [10] मेमोरी पढ़ता है; LOAD 10 स्थिर संख्या 10 लोड करता है।

सभी 25 निर्देश
इमोजीनिर्देश नाम और मानव्यवहारप्रयोगशाला
📥LOAD मान [रजिस्टर]मान, रजिस्टर या मेमोरी बाइट लोड करें।
LOAD · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 42
PRINT
HALT

अपेक्षित आउटपुट: 42

प्रयोगशाला खोलें →
💾STORE [मान] पतामान की निचली बाइट मेमोरी में लिखें।
STORE · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 42
STORE 10
STORE 511 11
LOAD [10]
PRINT
LOAD [11]
PRINT
HALT

अपेक्षित आउटपुट: 42, 255

प्रयोगशाला खोलें →
📋COPY स्रोत-रजिस्टर गंतव्य-रजिस्टरएक रजिस्टर दूसरे में प्रतिलिपि करें।
COPY · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 7 R1
COPY R1 R2
LOAD R2
PRINT
HALT

अपेक्षित आउटपुट: 7

प्रयोगशाला खोलें →
➕ADD मानR0 में मान जोड़ें।
ADD · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 10
ADD 5
PRINT
HALT

अपेक्षित आउटपुट: 15

प्रयोगशाला खोलें →
➖SUB मानR0 से मान घटाएँ।
SUB · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 10
SUB 3
PRINT
HALT

अपेक्षित आउटपुट: 7

प्रयोगशाला खोलें →
✖️MUL मानR0 को मान से गुणा करें।
MUL · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 6
MUL 7
PRINT
HALT

अपेक्षित आउटपुट: 42

प्रयोगशाला खोलें →
➗DIV गैर-शून्य-मानR0 को भाग दें, ऋण अनंत की ओर पूर्णांक करें।
DIV · प्रयोगशाला में निर्देश आज़माएँ →
LOAD -9
DIV 4
PRINT
HALT

अपेक्षित आउटपुट: -3

प्रयोगशाला खोलें →
📊MOD गैर-शून्य-मानR0 का चिह्न वाला शेष लें।
MOD · प्रयोगशाला में निर्देश आज़माएँ →
LOAD -9
MOD 4
PRINT
HALT

अपेक्षित आउटपुट: -1

प्रयोगशाला खोलें →
🔀AND मानR0 और मान पर बिट वाला AND करें।
AND · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 13
AND 5
PRINT
HALT

अपेक्षित आउटपुट: 5

प्रयोगशाला खोलें →
🔃OR मानR0 और मान पर बिट वाला OR करें।
OR · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 5
OR 2
PRINT
HALT

अपेक्षित आउटपुट: 7

प्रयोगशाला खोलें →
❌NOTR0 के सभी चिह्न वाले 32 बिट उलटें।
NOT · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 255
NOT
PRINT
HALT

अपेक्षित आउटपुट: -256

प्रयोगशाला खोलें →
🔄XOR मानR0 और मान पर बिट वाला XOR करें।
XOR · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 42
XOR 6
PRINT
HALT

अपेक्षित आउटपुट: 44

प्रयोगशाला खोलें →
⚖️CMP मानR0 से मान घटाकर फ्लैग लगाएँ; R0 रखें।
CMP · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 7
CMP 7
JUMP_IF_ZERO same
LOAD 0
JUMP show
same: LOAD 1
show: PRINT
HALT

अपेक्षित आउटपुट: 1

प्रयोगशाला खोलें →
⏭️JUMP लक्ष्यलेबल या शून्य-आधारित निर्देश क्रमांक पर जाएँ।
JUMP · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 1
JUMP show
LOAD 99
show: PRINT
HALT

अपेक्षित आउटपुट: 1

प्रयोगशाला खोलें →
❓JUMP_IF_ZERO लक्ष्यसंग्रहित शून्य फ्लैग सच हो तो जंप करें।
JUMP_IF_ZERO · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 0
JUMP_IF_ZERO show
LOAD 99
show: PRINT
HALT

अपेक्षित आउटपुट: 0

प्रयोगशाला खोलें →
🔁LOOP गिनतीजोड़ीदार RETURN पर समाप्त खंड दोहराएँ।
LOOP · प्रयोगशाला में निर्देश आज़माएँ →
LOOP 0
LOAD 99
PRINT
RETURN
LOAD 1
LOOP 3
PRINT
ADD 1
RETURN
HALT

अपेक्षित आउटपुट: 1, 2, 3

प्रयोगशाला खोलें →
🛑RETURNलूप चक्कर समाप्त करें या सबरूटीन से लौटें।
RETURN · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 7
CALL increment
PRINT
HALT
increment: ADD 1
RETURN

अपेक्षित आउटपुट: 8

प्रयोगशाला खोलें →
📞CALL लक्ष्यसबरूटीन बुलाएँ और अगला निर्देश बचाएँ।
CALL · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 3
CALL square
PRINT
LOAD 4
CALL square
PRINT
HALT
square: MUL R0
RETURN

अपेक्षित आउटपुट: 9, 16

प्रयोगशाला खोलें →
🖨️PRINTवर्तमान R0 मान आउटपुट में जोड़ें।
PRINT · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 3
PRINT
PRINT
HALT

अपेक्षित आउटपुट: 3, 3

प्रयोगशाला खोलें →
📲INPUTR0 में पूर्णांक पढ़ें; इनपुट खाली हो तो प्रतीक्षा करें।
INPUT · प्रयोगशाला में निर्देश आज़माएँ →
INPUT
PRINT
HALT

पूर्णांक इनपुट: -5

अपेक्षित आउटपुट: -5

प्रयोगशाला खोलें →
⬆️PUSHR0 डेटा स्टैक पर रखें।
PUSH · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 42
PUSH
LOAD 0
POP
PRINT
HALT

अपेक्षित आउटपुट: 42

प्रयोगशाला खोलें →
⬇️POPडेटा स्टैक से मान R0 में निकालें।
POP · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 11
PUSH
LOAD 22
PUSH
POP
PRINT
POP
PRINT
HALT

अपेक्षित आउटपुट: 22, 11

प्रयोगशाला खोलें →
⏹️HALT (या STOP)वर्तमान निर्देश पर रुकें।
HALT · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 7
PRINT
HALT
LOAD 99
PRINT

अपेक्षित आउटपुट: 7

प्रयोगशाला खोलें →
💤SLEEP मिलीसेकंडबुलाने वाले से मिलीसेकंड विलंब माँगें।
SLEEP · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 1
PRINT
SLEEP 100
LOAD 2
PRINT
HALT

अपेक्षित आउटपुट: 1, 2

प्रयोगशाला खोलें →
⏸️NOPमान और फ्लैग बदले बिना आगे बढ़ें।
NOP · प्रयोगशाला में निर्देश आज़माएँ →
LOAD 7
CMP 7
NOP
JUMP_IF_ZERO show
LOAD 0
show: PRINT
HALT

अपेक्षित आउटपुट: 7

प्रयोगशाला खोलें →

फ्लैग, लूप और कॉल

Z का अर्थ नवीनतम परिणाम शून्य है। N ऋणात्मक और O चिह्न वाली 32-बिट सीमा के बाहर बताता है। किसी भी रजिस्टर में LOAD, COPY, गणित, बिट क्रिया, POP और INPUT फ्लैग बदलते हैं। CMP, R0 बदले बिना R0 में से मान घटाकर फ्लैग लगाता है। JUMP_IF_ZERO तुलना परिणाम सहित Z जाँचता है।

LOOP गिनती एक बार पकड़ता है और जोड़ीदार RETURN तक खंड दोहराता है; शून्य खंड छोड़ता है। CALL अलग वापसी-पता स्टैक लेता है। बुलाए फ़ंक्शन का RETURN बाहरी लूप जारी करने से पहले बुलाने वाले को लौटता है। PUSH और POP अलग डेटा स्टैक लेते हैं। SP 255 से शुरू होकर कुल डेटा और कॉल गहराई से घटता है, अधिकतम 256 प्रविष्टियाँ।

DIV ऋण अनंत की ओर पूर्णांक करता है; MOD चिह्न वाला शेष है। STORE निचली बाइट लिखता है (−1 से 255)। INPUT सुरक्षित पूर्णांक तक प्रतीक्षा करता है। SLEEP प्रयोगशाला में समयबद्ध विलंब माँगता है; नियत VM खुद प्रतीक्षा नहीं करता। प्रोग्राम HALT या अंत तक पहुँचकर समाप्त हो सकते हैं; अमान्य शाखा लक्ष्य त्रुटि हैं।

प्रयोगशाला में निर्देश आज़माएँ →