Hack computer
હેક કમ્પ્યુટર એ નોઆમ નિસાન અને શિમોન સ્કોકેન દ્વારા બનાવવામાં આવેલ એક સૈદ્ધાંતિક કમ્પ્યુટર ડિઝાઇન છે અને તેમના પુસ્તક, ધ એલિમેન્ટ્સ ઓફ કમ્પ્યુટિંગ સિસ્ટમ્સઃ બિલ્ડિંગ એ મોડર્ન કમ્પ્યુટર ફ્રોમ ફર્સ્ટ પ્રિન્સિપલ્સમાં તેનું વર્ણન કરવામાં આવ્યું છે. "આધુનિક" શબ્દનો ઉપયોગ કરતી વખતે, લેખકો ડિજિટલ, દ્વિસંગી મશીનનો ઉલ્લેખ કરે છે જે વોન ન્યુમેન આર્કિટેક્ચર મોડેલ અનુસાર રચાયેલ છે. હેક કમ્પ્યુટર હાર્ડવેર સિમ્યુલેટર એપ્લિકેશનમાં કમ્પ્યુટર સંસ્થા અને આર્કિટેક્ચરમાં મૂળભૂત, પરંતુ વ્યાપક અભ્યાસક્રમના ભાગ રૂપે હાથથી વર્ચ્યુઅલ બાંધકામ માટે બનાવાયેલ છે. આવો જ એક અભ્યાસક્રમ, લેખકો દ્વારા તૈયાર કરવામાં આવ્યો છે અને બે ભાગોમાં વિતરિત કરવામાં આવ્યો છે, જે બિલ્ડ એ મોડર્ન કમ્પ્યુટર ફ્રોમ ફર્સ્ટ પ્રિન્સિપલ્સઃ ફ્રોમ નંદ ટુ ટેટ્રિસ નામના વિશાળ ખુલ્લા ઓનલાઇન અભ્યાસક્રમ (એમઓઓસી) તરીકે મુક્તપણે ઉપલબ્ધ છે. અભ્યાસક્રમમાં સમાવિષ્ટ બાર પ્રોજેક્ટમાં, શીખનારાઓ બે ઇનપુટ નંદ ગેટથી શરૂઆત કરે છે અને હાર્ડવેર (મેમરી અને CPU) અને સોફ્ટવેર (એસેમ્બલર, VM, જાવા જેવી પ્રોગ્રામિંગ લેંગ્વેજ અને OS) બંને સહિત સંપૂર્ણ રીતે કાર્યરત વર્ચ્યુઅલ કમ્પ્યુટર સાથે સમાપ્ત થાય છે. કમ્પ્યુટર હાર્ડવેરના પ્રારંભિક અમલીકરણ માટે ઉપયોગમાં લેવાતા હાર્ડવેર સિમ્યુલેટર ઉપરાંત, એક સંપૂર્ણ હેક કમ્પ્યુટર ઇમ્યુલેટર પ્રોગ્રામ અને એસેમ્બલર કે જે પુસ્તકમાં વર્ણવેલ પ્રોજેક્ટ્સને ટેકો આપે છે અને ઑનલાઇન કોર્સ પણ લેખકની વેબ સાઇટ પર ઉપલબ્ધ છે. હાર્ડવેર આર્કિટેક્ચર હેક કમ્પ્યુટર હાર્ડવેરમાં બ્લોક આકૃતિમાં બતાવ્યા પ્રમાણે ત્રણ મૂળભૂત ઘટકોનો સમાવેશ થાય છે. બે અલગ અલગ 16-બીટ મેમરી એકમો અને સેન્ટ્રલ પ્રોસેસિંગ યુનિટ (CPU) છે. કારણ કે કમ્પ્યુટર દ્વારા ડેટાને 16-બીટ શબ્દોમાં ખસેડવામાં અને પ્રક્રિયા કરવામાં આવે છે, હેક કમ્પ્યુટરને 16-બીટ આર્કિટેક્ચર તરીકે વર્ગીકૃત કરવામાં આવે છે. સૂચના મેમરી, કમ્પ્યુટરના દૃષ્ટિકોણથી ફક્ત-વાંચી શકાય તેવી મેમરી તરીકે લાગુ કરવામાં આવે છે અને નિયુક્ત ROM, અમલ માટે એસેમ્બલ દ્વિસંગી પ્રોગ્રામ કોડ ધરાવે છે. રેમ તરીકે ઓળખાતી રેન્ડમ એક્સેસ મેમરી, એક્ઝિક્યુટિવ પ્રોગ્રામના ડેટા માટે સંગ્રહ પ્રદાન કરે છે અને કમ્પ્યુટરની મેમરી-મેપ્ડ I/O મિકેનિઝમ માટે સેવાઓ અને સંગ્રહ ક્ષેત્રો પ્રદાન કરે છે. ડેટા પ્રોસેસિંગ અને પ્રોગ્રામ નિયંત્રણ વ્યવસ્થાપન CPU દ્વારા પ્રદાન કરવામાં આવે છે. ત્રણેય એકમો સમાંતર બસો દ્વારા જોડાયેલા છે. રોમ અને રેમ એકમો માટે એડ્રેસ બસો (15-બીટ), તેમજ ડેટા અને સૂચના બસો (16-બીટ) સંપૂર્ણપણે સ્વતંત્ર છે. તેથી, હેક ડિઝાઇન મેમરી એકમો અને CPU વચ્ચેના બસ સંચારના સંદર્ભમાં હાર્વર્ડ આર્કિટેક્ચર મોડેલને અનુસરે છે. બધી મેમરી માત્ર શબ્દને સંબોધિત કરી શકાય છે. રીડ-ઓનલી મેમરી (ROM) હેક કમ્પ્યુટરનું ROM મોડ્યુલ વ્યક્તિગત રીતે સંબોધિત, ક્રમિક, 16-બીટ મેમરી રજિસ્ટરની રેખીય શ્રેણી તરીકે રજૂ કરવામાં આવે છે. સરનામાઓ 0 (0x0000) થી શરૂ થાય છે. મેમરી ઘટકો ક્રમિક ઉપકરણો હોવાથી, સિમ્યુલેશન એપ્લિકેશન અને કમ્પ્યુટર ઇમ્યુલેટર એપ્લિકેશન દ્વારા સિસ્ટમ ઘડિયાળ સંકેત પૂરો પાડવામાં આવે છે. ROM એડ્રેસ બસ 15 બિટ્સ પહોળી છે, તેથી પ્રોગ્રામ સૂચનાઓ માટે કુલ 32,768 વ્યક્તિગત શબ્દો ઉપલબ્ધ છે. હાલમાં સક્રિય શબ્દનું સરનામું CPU ની અંદર પ્રોગ્રામ કાઉન્ટર રજિસ્ટર દ્વારા પૂરું પાડવામાં આવે છે (નીચે જુઓ). ચોક્કસ ઘડિયાળ ચક્રમાં સૂચના સરનામા બસ પર મૂકવામાં આવેલા સરનામાં દ્વારા ઓળખાયેલ ROM મેમરી રજિસ્ટરમાં મૂલ્ય આગામી ચક્રની શરૂઆતમાં "વર્તમાન" સૂચના તરીકે ઉપલબ્ધ છે. ત્યાં કોઈ સૂચના રજિસ્ટર નથી; સૂચનાઓ હાલમાં સક્રિય ROM રજિસ્ટરમાંથી દરેક ચક્રમાં ડીકોડ કરવામાં આવે છે. રેન્ડમ એક્સેસ મેમરી (રેમ) જો કે રેમ મોડ્યુલને વ્યક્તિગત રીતે સંબોધિત કરી શકાય તેવા ક્રમિક, વાંચી શકાય તેવા, 16-બીટ મેમરી રજિસ્ટરની સતત રેખીય શ્રેણી તરીકે પણ જોવામાં આવે છે, તે કાર્યાત્મક રીતે સરનામાની શ્રેણી દ્વારા ત્રણ વિભાગોમાં ગોઠવવામાં આવે છે. સરનામાં 0 (0x000) થી 16383 (0x3FF) માં પરંપરાગત 16-બીટ, રીડ-રાઈટ રજિસ્ટર હોય છે અને તે સામાન્ય હેતુના પ્રોગ્રામ ડેટા સ્ટોરેજ તરીકે ઉપયોગ કરવા માટે હોય છે. સરનામાંઓ 16384 (0x4000) થી 24575 (0x5FFF) પરના રજિસ્ટર આવશ્યકપણે ડેટા રેમ જેવા છે, પરંતુ તેઓ બિલ્ટ-ઇન સ્ક્રીન I/O સબસિસ્ટમ દ્વારા ઉપયોગ માટે પણ નિયુક્ત કરવામાં આવે છે. આ શ્રેણીમાં સરનામાંઓ પર લખાયેલા ડેટાની કમ્પ્યુટરની વર્ચ્યુઅલ 256 x 512 સ્ક્રીન પર આઉટપુટ ઉત્પન્ન કરવાની આડઅસર હોય છે (I/O જુઓ). જો પ્રોગ્રામને સ્ક્રીન આઉટપુટની જરૂર ન હોય, તો આ શ્રેણીમાં રજિસ્ટરનો ઉપયોગ સામાન્ય પ્રોગ્રામ ડેટા માટે થઈ શકે છે. 24576 (0x6000) પર રેમ એડ્રેસ સ્પેસમાં અંતિમ સરનામું એક જ શબ્દ રજિસ્ટર ધરાવે છે, જેનું વર્તમાન મૂલ્ય હેક ઇમ્યુલેટર પ્રોગ્રામને હોસ્ટ કરતા કમ્પ્યુટર સાથે જોડાયેલા કીબોર્ડના આઉટપુટ દ્વારા નિયંત્રિત થાય છે. આ કીબોર્ડ મેમરી મેપ રજિસ્ટર ફક્ત વાંચવા માટે છે (I/O જુઓ). 24577 (0x6001) થી 32767 (0x7FF) ની શ્રેણીમાં ડેટા મેમરી સરનામાંઓ અમાન્ય છે. પસંદ કરેલ RAM મેમરી રજિસ્ટરના સ્થિતિ સંક્રમણો પણ સિસ્ટમ ઘડિયાળ સંકેત દ્વારા સંકલિત થાય છે. સેન્ટ્રલ પ્રોસેસિંગ યુનિટ (CPU) એ સાથેના આકૃતિમાં દર્શાવ્યા મુજબ, હેક કમ્પ્યુટર સેન્ટ્રલ પ્રોસેસિંગ યુનિટ (CPU) એ આંતરિક માળખા સાથે સંકલિત તર્ક એકમ છે. તે સરળ, વ્યાપારી રીતે ઉપલબ્ધ સીપીયુમાં જોવા મળતા ઘણા કાર્યો પૂરા પાડે છે. સીપીયુનું સૌથી જટિલ તત્વ અંકગણિત તર્ક એકમ (એએલયુ) છે જે કમ્પ્યુટરની ગણતરીત્મક કાર્યક્ષમતા પ્રદાન કરે છે. એએલયુ એ બે 16-બીટ ઇનપુટ ઓપરેન્ડ અને એક 16-બીટ આઉટપુટ ધરાવતું સંયુક્ત તર્ક ઉપકરણ છે. ઓપરેન્ડ્સમાંથી આઉટપુટ તરીકે ઉત્પન્ન થયેલ ગણતરી એ. એલ. યુ. ને છ ક્રમબદ્ધ, સિંગલ-બીટ ઇનપુટ્સના સમૂહ દ્વારા નિર્દિષ્ટ કરવામાં આવે છે. એએલયુ બે સિંગલ-બીટ સ્ટેટસ ફ્લેગ પણ બહાર કાઢે છે જે સૂચવે છે કે ગણતરીનું પરિણામ શૂન્ય (ઝેડઆર ફ્લેગ) છે કે નકારાત્મક (એનજી ફ્લેગ). CPUમાં બે 16-બીટ રજિસ્ટર પણ હોય છે, જેનું લેબલ D અને A હોય છે. ડી (ડેટા) રજિસ્ટર એ સામાન્ય હેતુ માટેનું રજિસ્ટર છે જેનું વર્તમાન મૂલ્ય હંમેશા એ. એલ. યુ. x ઓપરેન્ડ પૂરું પાડે છે, જો કે કેટલીક સૂચનાઓ માટે તેનું મૂલ્ય અવગણવામાં આવે છે. જ્યારે એ (સરનામું) રજિસ્ટર એ. એલ. યુ. ને વાય ઓપરેન્ડ તરીકે તેનું વર્તમાન મૂલ્ય પણ પ્રદાન કરી શકે છે જ્યારે સૂચના દ્વારા નિર્દેશિત કરવામાં આવે છે, ત્યારે તેના મૂલ્યનો ઉપયોગ ડેટા મેમરી એડ્રેસિંગ માટે અને સૂચનાઓની શાખાઓ માટે સૂચના મેમરીમાં લક્ષ્ય સરનામાં તરીકે પણ થઈ શકે છે. આ કાર્યને સરળ બનાવવા માટે, A રજિસ્ટર સીધા M તરીકે નિયુક્ત "સ્યુડો-રજિસ્ટર" સાથે સંકળાયેલું છે જે હાર્ડવેરમાં સ્પષ્ટ રીતે લાગુ કરવામાં આવતું નથી. તેથી આ એમ રજિસ્ટર એ રજિસ્ટરમાં સમાવિષ્ટ વર્તમાન મૂલ્યનું સરનામું ધરાવતી રેમમાં સમાયેલ મૂલ્યને રજૂ કરે છે. સીપીયુમાં અંતિમ મહત્વપૂર્ણ તત્વ પ્રોગ્રામ કાઉન્ટર (પીસી) રજિસ્ટર છે. પીસી એ 16-બીટ દ્વિસંગી કાઉન્ટર છે જેની નીચી 15 બિટ્સ અમલ માટે આગામી સૂચનાની સૂચના મેમરીમાં સરનામું સ્પષ્ટ કરે છે. જ્યાં સુધી શાખા સૂચના દ્વારા અન્યથા નિર્દેશિત ન કરવામાં આવે ત્યાં સુધી, પીસી દરેક ઘડિયાળ ચક્રના અંતે તેનું મૂલ્ય વધારે છે. સીપીયુમાં પ્રોગ્રામ નિયંત્રણ હેઠળ, કમ્પ્યુટરના સૂચના અમલના ક્રમમાં, પીસીને બિન-અનુક્રમિક મૂલ્ય પર સેટ કરીને ફેરફાર કરવાના તર્કનો પણ સમાવેશ થાય છે. પીસી સિંગલ-બીટ રીસેટ ઇનપુટનો પણ અમલ કરે છે જે પીસી મૂલ્યને 0 (0x0000) થી શરૂ કરે છે જ્યારે તેને તર્ક 0 થી તર્ક 1 અને પાછળ સાયકલ કરવામાં આવે છે. ઘણા વાસ્તવિક CPU ડિઝાઇનથી વિપરીત, CPU બાહ્ય અથવા આંતરિક વિક્ષેપોને અમલમાં મૂકવા અથવા કાર્ય કૉલ્સ માટે સમર્થન આપવા માટે કોઈ પ્રોગ્રામ સુલભ હાર્ડવેર મિકેનિઝમ પ્રદાન કરવામાં આવ્યું નથી. બાહ્ય ઇનપુટ અને આઉટપુટ (I/O) હેક કોમ્પ્યુટર I/O માટે મેમરી-મેપ અભિગમનો ઉપયોગ કરે છે. બિટમેપ કરેલું, વર્ચ્યુઅલ 256 x 512 સ્ક્રીન પર કાળા અને સફેદ આઉટપુટને ડેટા મેમરી સ્થાનો 16384 (0x4000) થી 24575 (0x5FF) સુધી ઇચ્છિત આઉટપુટનો બિટમેપ લખીને અસર થાય છે. આ સરનામાની શ્રેણીમાં ડેટા શબ્દોને કમ્પ્યુટર એમુલેટરની વર્ચ્યુઅલ સ્ક્રીન પર એક જ પિક્સેલની કાળી/સફેદ સ્થિતિનું પ્રતિનિધિત્વ કરતા દરેક બીટ મૂલ્ય સાથે બિટ્સની રેખીય શ્રેણી તરીકે જોવામાં આવે છે. સ્ક્રીન રેમ સેગમેન્ટના પ્રથમ મેમરી સરનામામાં શબ્દનો સૌથી ઓછો નોંધપાત્ર ભાગ સ્ક્રીનના ઉપલા ડાબા ખૂણામાં પિક્સેલને સફેદ કરે છે જો તે 0 હોય અને જો તે 1 હોય તો કાળો. પ્રથમ શબ્દમાં આગામી સૌથી નોંધપાત્ર બીટ જમણી બાજુના આગામી પિક્સેલને નિયંત્રિત કરે છે, અને તેથી વધુ. પ્રથમ 512-પિક્સેલની હરોળને સ્ક્રીન મેમરીના પ્રથમ 32 શબ્દો દ્વારા વર્ણવવામાં આવે તે પછી, બીજી હરોળ માટે આગામી 32 શબ્દો સાથે મેપિંગ એ જ રીતે ચાલુ રાખવામાં આવે છે. કમ્પ્યુટરનો બાહ્ય તર્ક સ્ક્રીન રેમ મેમરી મેપ સેગમેન્ટ વાંચે છે અને વર્ચ્યુઅલ સ્ક્રીનને અપડેટ કરે છે. જો CPU એમુલેટર પ્રોગ્રામને હોસ્ટ કરતા કમ્પ્યુટર સાથે કીબોર્ડ જોડાયેલ હોય, તો એમુલેટર RAM સરનામાં 24576 (0x6000) પર કીબોર્ડ રજિસ્ટરમાં પ્રોગ્રામ એક્ઝેક્યુશન દરમિયાન દબાવવામાં આવેલી કીને અનુરૂપ 16-બીટ બીટ સ્કેન કોડ મૂકે છે. જો કોઈ કી દબાવવામાં ન આવે, તો આ રજિસ્ટરમાં મૂલ્ય 0 છે. એમુલેટર કીબોર્ડને સક્ષમ/નિષ્ક્રિય કરવા માટે ટૉગલ બટન પ્રદાન કરે છે. એન્કોડિંગ યોજના છાપી શકાય તેવા અક્ષરો માટે ASCII એન્કોડિંગને નજીકથી અનુસરે છે. શિફ્ટ કીની અસરને સામાન્ય રીતે સન્માનિત કરવામાં આવે છે. કોડ્સ ઘણીવાર પ્રમાણભૂત પીસી કીબોર્ડ પર હાજર અન્ય કીઓ માટે પણ પ્રદાન કરવામાં આવે છે; ઉદાહરણ તરીકે, દિશા નિયંત્રણ કીઓ અને એફએન કીઓ. સંચાલન ચક્ર સીપીયુ અને મેમરી એકમોની પગલું મુજબની કામગીરી ઘડિયાળ દ્વારા નિયંત્રિત થાય છે જે હાર્ડવેર સિમ્યુલેટર અને કમ્પ્યુટર ઇમ્યુલેટર પ્રોગ્રામ્સ બંનેમાં બિલ્ટ-ઇન હોય છે. ઘડિયાળ ચક્રની શરૂઆતમાં પ્રોગ્રામ કાઉન્ટરના વર્તમાન મૂલ્ય દ્વારા ઉત્સર્જિત ROM સરનામા પરની સૂચના ડીકોડ કરવામાં આવે છે. સૂચનામાં ઉલ્લેખિત ALU ઓપરેન્ડ્સ જ્યાં જરૂરી હોય ત્યાં માર્શલ કરવામાં આવે છે. નિર્દિષ્ટ ગણતરી એએલયુ દ્વારા કરવામાં આવે છે અને યોગ્ય સ્થિતિ ફ્લેગ સેટ કરવામાં આવે છે. સૂચના દ્વારા નિર્દિષ્ટ કર્યા મુજબ ગણતરી પરિણામ સાચવવામાં આવે છે. છેવટે, પ્રોગ્રામ કાઉન્ટર આગામી જરૂરી પ્રોગ્રામ સૂચનાના મૂલ્યમાં અપડેટ કરવામાં આવે છે. જો વર્તમાન સૂચના દ્વારા કોઈ શાખા નિર્દિષ્ટ કરવામાં ન આવી હોય, તો પીસી મૂલ્ય ફક્ત વધારવામાં આવે છે. જો શાખા નિર્દિષ્ટ કરવામાં આવી હોય, તો પી. સી. ને (એ રજિસ્ટરમાંથી) અમલમાં મૂકવાની આગામી સૂચનાના સરનામાં સાથે લોડ કરવામાં આવે છે. આ ચક્ર હવે વર્તમાન પીસી મૂલ્યનો ઉપયોગ કરીને પુનરાવર્તન કરે છે. તેના હાર્વર્ડ મેમરી આર્કિટેક્ચર મોડેલને કારણે, હેક કમ્પ્યુટર વર્તમાન સૂચનાને અમલમાં મૂકવા અને એક, બે-ભાગની ઘડિયાળ ચક્રમાં આગામી સૂચનાને "લાવવા" માટે રચાયેલ છે. ઘડિયાળની ઝડપ હાર્ડવેર સિમ્યુલેટર અને CPU ઇમ્યુલેટર બંનેમાં નિયંત્રણ તત્વ દ્વારા બદલાઈ શકે છે. જોકે, પસંદ કરેલી ગતિથી સ્વતંત્ર, દરેક સૂચના સંપૂર્ણપણે એક ચક્રમાં ચલાવવામાં આવે છે. વપરાશકર્તા પ્રોગ્રામ દ્વારા એક પગલું પણ લઈ શકે છે. રોમમાં લોડ થયેલ પ્રોગ્રામનું અમલીકરણ CPUના રીસેટ બીટ દ્વારા નિયંત્રિત થાય છે. જો રીસેટ બીટનું મૂલ્ય 0 હોય, તો અમલ ઉપર વર્ણવેલ ઓપરેટિંગ ચક્ર અનુસાર આગળ વધે છે. રીસેટ બીટને 1 પર સેટ કરવાથી પીસી 0 પર સેટ થાય છે. રીસેટ બીટ મૂલ્યને શૂન્ય પર સેટ કરવાથી પછી પ્રથમ સૂચના પર વર્તમાન પ્રોગ્રામનો અમલ શરૂ થાય છે; જો કે, રેમ રીસેટ પરની અગાઉની કોઈપણ પ્રવૃત્તિના મૂલ્યો ધરાવે છે. કોઈપણ પ્રકારના વિક્ષેપો માટે કોઈ હાર્ડવેર અથવા મશીન લેંગ્વેજ સપોર્ટ નથી. ડેટા પ્રકારો ROM મેમરીમાં સંગ્રહિત મૂલ્યોએ સૂચના સેટ આર્કિટેક્ચર વિભાગમાં વર્ણવ્યા મુજબ માન્ય હેક મશીન ભાષાની સૂચનાઓનું પ્રતિનિધિત્વ કરવું આવશ્યક છે. કોઈપણ 16-બીટ મૂલ્યને રેમમાં સંગ્રહિત કરી શકાય છે. રેમમાં સંગ્રહિત મૂલ્યનો ડેટા પ્રકાર તેના સ્થાન અને/અથવા પ્રોગ્રામમાં તેના ઉપયોગ દ્વારા અનુમાન કરવામાં આવે છે. પ્રાથમિક હાર્ડવેર સમર્થિત ડેટા પ્રકાર એ 16-બીટ હસ્તાક્ષરિત પૂર્ણાંક છે, જે 2 ના પૂરક સ્વરૂપમાં રજૂ થાય છે. તેથી હસ્તાક્ષરિત પૂર્ણાંકોની શ્રેણી-32768 થી 32767 સુધીની હોય છે. રેમમાં મૂલ્યના નીચલા 15 બિટ્સ પણ નિર્દેશકના અર્થમાં રોમ અથવા રેમમાં સરનામાનું પ્રતિનિધિત્વ કરી શકે છે. સ્ક્રીન I/O માટે સોંપેલ RAM મેમરી રજિસ્ટરમાં મૂલ્યો માટે, જો સ્ક્રીન "ચાલુ" હોય તો કમ્પ્યુટરની સ્વતંત્ર I/O સબસિસ્ટમ દ્વારા 256 પંક્તિ x 512 કૉલમ વર્ચ્યુઅલ સ્ક્રીનના 16 પિક્સેલ નકશા તરીકે મૂલ્યનું અર્થઘટન કરવામાં આવશે. કીબોર્ડ મેમરીમાં કોડ મૂલ્ય પ્રોગ્રામ દ્વારા વાંચી શકાય છે અને પ્રોગ્રામ દ્વારા ઉપયોગ માટે અર્થઘટન કરી શકાય છે. ફ્લોટિંગ-પોઇન્ટ પ્રકારો માટે કોઈ હાર્ડવેર સપોર્ટ નથી. ઇન્સ્ટ્રક્શન સેટ આર્કિટેક્ચર (ISA) અને મશીન લેંગ્વેજ હેક કમ્પ્યુટરની ઇન્સ્ટ્રક્શન સેટ આર્કિટેક્ચર (ISA) અને વ્યુત્પન્ન મશીન લેંગ્વેજ અન્ય ઘણા આર્કિટેક્ચરની તુલનામાં વિરલ છે. એએલયુ દ્વારા ગણતરીને સ્પષ્ટ કરવા માટે ઉપયોગમાં લેવાતા 6 બિટ્સ 64 અલગ-અલગ સૂચનાઓને મંજૂરી આપી શકે છે, તેમ છતાં હેક કમ્પ્યુટરના આઇએસએમાં માત્ર 18 સત્તાવાર રીતે લાગુ કરવામાં આવે છે. હેક કમ્પ્યુટર હાર્ડવેરને ન તો પૂર્ણાંક ગુણાકાર (અને વિભાજન) અથવા કાર્ય કૉલ્સ માટે સીધો ટેકો હોવાથી, આ કામગીરીઓ માટે ISAમાં કોઈ અનુરૂપ મશીન લેંગ્વેજ સૂચનાઓ નથી. હેક મશીન લેંગ્વેજમાં માત્ર બે પ્રકારની સૂચનાઓ હોય છે, દરેક 16 દ્વિસંગી અંકોમાં એન્કોડેડ હોય છે. એ-સૂચનાઓ જે સૂચનાઓ સૌથી નોંધપાત્ર બીટ "0" છે તેને એ-સૂચનાઓ અથવા સરનામાની સૂચનાઓ કહેવામાં આવે છે. એ-સૂચના બીટ-ફિલ્ડને નીચે પ્રમાણે એન્કોડ કરવામાં આવે છેઃ 0b14b13b12b11b10b9b8b7b6b5b4b3b2b1b0-A-સૂચનાનું સૌથી નોંધપાત્ર બીટ "0" b14-b0 છે-આ બિટ્સ 0 થી 32767 દશાંશ શ્રેણીમાં બિન-નકારાત્મક પૂર્ણાંકની દ્વિસંગી રજૂઆત પ્રદાન કરે છે જ્યારે આ સૂચના ચલાવવામાં આવે છે, ત્યારે બાકીના 15 બિટ્સ ડાબી-શૂન્ય વિસ્તૃત હોય છે અને CPU ના A-રજિસ્ટરમાં લોડ થાય છે. આડઅસર તરીકે, તે મૂલ્ય દ્વારા રજૂ થયેલ સરનામું ધરાવતું રેમ રજિસ્ટર આગામી ઘડિયાળ ચક્રમાં અનુગામી વાંચવા/લખવાની ક્રિયા માટે સક્ષમ છે. અન્ય સૂચના પ્રકાર, જેને સી-સૂચનાઓ (ગણતરી સૂચનાઓ) તરીકે ઓળખવામાં આવે છે, તેમાં સૌથી નોંધપાત્ર બીટ તરીકે "1" હોય છે. બાકીના 15 બિટ્સ ચોક્કસ ગણતરી પરિણામ માટે ઓપરેન્ડ્સ, કરવામાં આવેલી ગણતરી અને સંગ્રહ સ્થાનને વ્યાખ્યાયિત કરવા માટે બિટ-ફિલ્ડ એન્કોડેડ છે. આ સૂચના સૌથી તાજેતરના ગણતરી પરિણામના આધારે પ્રોગ્રામ શાખાને પણ નિર્દિષ્ટ કરી શકે છે. સી-સૂચના નીચે પ્રમાણે બિટ-ફિલ્ડ એન્કોડેડ છેઃ 1x1x0ac5c4c3c2c1c0d2d1d0j2j1j0 1-સી-સૂચનાનો સૌથી નોંધપાત્ર બીટ "1" x1x0 છે-આ બિટ્સને સીપીયુ દ્વારા અવગણવામાં આવે છે અને, પરંપરા દ્વારા, દરેક હંમેશા "1" a પર સેટ કરવામાં આવે છે-આ બીટ એએલયુના "y" ઓપરેન્ડના સ્ત્રોતને સ્પષ્ટ કરે છે જ્યારે તેનો ઉપયોગ ગણતરી c0-c5 માં થાય છે-આ છ નિયંત્રણ બિટ્સ એએલયુ d2-d0 દ્વારા કરવામાં આવતા ઓપરેન્ડ્સ અને ગણતરીને સ્પષ્ટ કરે છે-આ ત્રણ બિટ્સ વર્તમાન સંગ્રહિત કરવા માટે ગંતવ્ય (ઓ) ને સ્પષ્ટ કરે છે. આ કોષ્ટકોમાં, A હાલમાં A-રજિસ્ટર D માં સમાયેલ મૂલ્યનું પ્રતિનિધિત્વ કરે છે જે હાલમાં D-રજિસ્ટર M માં સમાયેલ મૂલ્યનું પ્રતિનિધિત્વ કરે છે જે હાલમાં ડેટા મેમરી રજિસ્ટરમાં સમાયેલ મૂલ્યનું પ્રતિનિધિત્વ કરે છે જેનું સરનામું A-રજિસ્ટરમાં સમાયેલ છે; એટલે કે, M = = RAM [A] એસેમ્બલી લેંગ્વેજ હેક કમ્પ્યુટરમાં હાર્ડવેર પ્લેટફોર્મ માટે પ્રોગ્રામ્સ બનાવવા માટે ટેક્સ્ટ-આધારિત એસેમ્બલી લેંગ્વેજ છે જે હેક કમ્પ્યુટર ISA ને અમલમાં મૂકે છે. હેક એસેમ્બલી લેંગ્વેજ પ્રોગ્રામ્સ ફાઇલ નામ એક્સ્ટેંશન ધરાવતી ટેક્સ્ટ ફાઇલોમાં સંગ્રહિત થઈ શકે છે. "ASM". હેક એસેમ્બલી લેંગ્વેજ સોર્સ ફાઇલો કેસ સંવેદનશીલ હોય છે. લખાણની દરેક પંક્તિ નીચેના ઘટકોમાંથી એક ધરાવે છેઃ ખાલી વાક્ય ટિપ્પણી લેબલ ઘોષણા (વૈકલ્પિક એન્ડ-ઓફ-લાઇન ટિપ્પણી સાથે) એ-સૂચના (વૈકલ્પિક એન્ડ-ઓફ-લાઇન ટિપ્પણી સાથે) સી-સૂચના (વૈકલ્પિક એન્ડ-ઓફ-લાઇન ટિપ્પણી સાથે) આ દરેક વાક્ય પ્રકારમાં ચોક્કસ વાક્યરચના હોય છે અને તેમાં પૂર્વવ્યાખ્યાયિત અથવા વપરાશકર્તા નિર્ધારિત પ્રતીકો અથવા આંકડાકીય સ્થિરાંકો હોઈ શકે છે. ખાલી રેખાઓ અને ટિપ્પણીઓને એસેમ્બલર દ્વારા અવગણવામાં આવે છે. લેબલ ઘોષણાઓ, એ-સૂચનાઓ અને સી-સૂચનાઓ, નીચે વ્યાખ્યાયિત કર્યા મુજબ, કોઈપણ આંતરિક સફેદ-જગ્યા અક્ષરો શામેલ ન હોઈ શકે, જો કે અગ્રણી અથવા પાછળની સફેદ જગ્યાને મંજૂરી છે (અને અવગણવામાં આવે છે). ટિપ્પણીઓ બે અક્ષરના ક્રમ "//" થી શરૂ થતું કોઈપણ લખાણ ટિપ્પણી છે. ટિપ્પણીઓ માત્ર સ્રોત કોડ રેખા પર દેખાઈ શકે છે, અથવા અન્ય કોઈપણ પ્રોગ્રામ સ્રોત રેખાના અંતે પણ મૂકી શકાય છે. ટિપ્પણી ઓળખકર્તા અક્ષર ક્રમને લીટીના અંત સુધી અનુસરતા તમામ લખાણને એસેમ્બલર દ્વારા સંપૂર્ણપણે અવગણવામાં આવે છે; પરિણામે, તેઓ કોઈ મશીન કોડ ઉત્પન્ન કરતા નથી. પ્રતીકો અને આંકડાકીય અચળાંકો હેક એસેમ્બલી લેંગ્વેજ વિવિધ ચોક્કસ હેતુઓની સંખ્યા માટે આલ્ફાન્યૂમેરિક પ્રતીકોનો ઉપયોગ કરવાની મંજૂરી આપે છે. પ્રતીક મૂળાક્ષર (ઉપલા અને નીચલા કેસ) અથવા આંકડાકીય અંકોનો કોઈપણ ક્રમ હોઈ શકે છે. પ્રતીકોમાં નીચેનામાંથી કોઈપણ અક્ષરો પણ હોઈ શકે છેઃ બાર હેઠળ ("_"), સમયગાળો ("."), ડોલર ચિહ્ન ("$"), અને કોલોન (":"). પ્રતીકો આંકડાના અક્ષરથી શરૂ ન પણ થઈ શકે. પ્રતીકો કેસ સંવેદનશીલ હોય છે. વપરાશકર્તા વ્યાખ્યાયિત પ્રતીકોનો ઉપયોગ ચલ નામો અને લેબલ બનાવવા માટે થાય છે (નીચે જુઓ). હેક એસેમ્બલી લેંગ્વેજ એસેમ્બલર એસેમ્બલી લેંગ્વેજ પ્રોગ્રામ્સમાં ઉપયોગ માટે કેટલાક પૂર્વવ્યાખ્યાયિત પ્રતીકોને ઓળખે છે. પ્રતીકો R0, R1,., R15 અનુક્રમે 0 થી 15 ના પૂર્ણાંકો સાથે બંધાયેલા છે. આ પ્રતીકો સામાન્ય હેતુના રજિસ્ટરનું પ્રતિનિધિત્વ કરવા માટે છે અને પ્રતીકોના મૂલ્યો તેથી ડેટા મેમરી સરનામાં 0 થી 15 નું પ્રતિનિધિત્વ કરે છે. પૂર્વવ્યાખ્યાયિત પ્રતીકો SCREEN અને KBD પણ મેમરી-મેપ કરેલ વર્ચ્યુઅલ સ્ક્રીન આઉટપુટ (16384) અને કીબોર્ડ ઇનપુટ (24756) ની શરૂઆતના ડેટા મેમરી સરનામાનું પ્રતિનિધિત્વ કરવા માટે નિર્દિષ્ટ કરવામાં આવે છે. કેટલાક અન્ય પ્રતીકો (એસ. પી., એલ. સી. એલ., એ. આર. જી., આ અને તે) છે જેનો ઉપયોગ ઓપરેટિંગ સિસ્ટમ સોફ્ટવેર સ્ટેક બનાવવા માટે થાય છે. 0 થી 32,767 ની શ્રેણીમાં બિન-નકારાત્મક, દશાંશ અચળાંકને રજૂ કરવા માટે દશાંશ (0-9) અંકોની સ્ટ્રિંગનો ઉપયોગ કરી શકાય છે. નકારાત્મક સંખ્યા દર્શાવવા માટે બાદબાકી ચિહ્નનો ઉપયોગ કરવાની મંજૂરી નથી. દ્વિસંગી અથવા ઓક્ટલ પ્રતિનિધિત્વ સમર્થિત નથી. ચલ ચલોનું પ્રતિનિધિત્વ કરવા માટે એસેમ્બલી લેંગ્વેજ પ્રોગ્રામમાં વપરાશકર્તા વ્યાખ્યાયિત પ્રતીકો બનાવી શકાય છે; એટલે કે, નામવાળી RAM રજિસ્ટર. પ્રતીક એસેમ્બલીમાં એસેમ્બલર દ્વારા પસંદ કરેલા RAM સરનામાં સાથે જોડાયેલું હોય છે. તેથી, એસેમ્બલી લેંગ્વેજ સોર્સ કોડમાં દેખાય ત્યારે ચલને સરનામાં તરીકે ગણવા જોઈએ. ચલને એસેમ્બલી લેંગ્વેજ સોર્સ કોડમાં સ્પષ્ટ રીતે વ્યાખ્યાયિત કરવામાં આવે છે જ્યારે તેમને પ્રથમ એ-સૂચનામાં સંદર્ભિત કરવામાં આવે છે. જ્યારે એસેમ્બલર દ્વારા સ્રોત કોડ પર પ્રક્રિયા કરવામાં આવે છે, ત્યારે ચલ પ્રતીક સરનામાં 16 ની શરૂઆતમાં એક અનન્ય હકારાત્મક પૂર્ણાંક મૂલ્ય સાથે બંધાયેલ છે. સરનામાંઓ સ્રોત કોડમાં તેમના પ્રથમ દેખાવના ક્રમમાં ક્રમિક રીતે ચલ પ્રતીકો સાથે બંધાયેલા છે. પરંપરા મુજબ, વપરાશકર્તા-નિર્ધારિત પ્રતીકો કે જે પ્રોગ્રામ ચલોને ઓળખે છે તે તમામ લોઅરકેસમાં લખવામાં આવે છે. લેબલ લેબલ એ ડાબી બાજુએ "(" અને જમણી બાજુએ ")" કૌંસ દ્વારા સીમાંકિત પ્રતીકો છે. તેઓ એક અલગ સ્રોત પ્રોગ્રામ રેખા પર વ્યાખ્યાયિત કરવામાં આવે છે અને એસેમ્બલર દ્વારા સ્રોત કોડમાં આગામી સૂચનાના સૂચના મેમરી સ્થાનના સરનામાં સાથે બંધાયેલા હોય છે. લેબલ્સ માત્ર એક જ વાર વ્યાખ્યાયિત કરી શકાય છે, પરંતુ તેઓ પ્રોગ્રામની અંદર ગમે ત્યાં ઘણી વખત ઉપયોગમાં લઈ શકાય છે, તે રેખા પહેલાં પણ કે જેના પર તેઓ વ્યાખ્યાયિત કરવામાં આવે છે. પરંપરા મુજબ, લેબલો ઓલ-કેપ્સમાં દર્શાવવામાં આવે છે. તેનો ઉપયોગ શાખા સી-સૂચનાઓના લક્ષ્ય સરનામાને ઓળખવા માટે થાય છે. એ-સૂચના એ-સૂચનામાં વાક્યરચના "@xxxx" છે, જ્યાં XXXX એ 0 થી 32767 ની શ્રેણીમાં આંકડાકીય દશાંશ અચળાંક, લેબલ અથવા ચલ (પૂર્વવ્યાખ્યાયિત અથવા વપરાશકર્તા વ્યાખ્યાયિત) છે. જ્યારે ચલાવવામાં આવે છે, ત્યારે આ સૂચના એ રજિસ્ટર અને એમ સ્યુડો-રજિસ્ટરનું મૂલ્ય "XXX" દ્વારા રજૂ થયેલ 15-બીટ દ્વિસંગી મૂલ્ય પર સુયોજિત કરે છે. 15-બીટ મૂલ્ય એ રજિસ્ટરમાં 16-બીટ સુધી વિસ્તૃત ડાબી-શૂન્ય છે. એ-સૂચનાનો ઉપયોગ ત્રણમાંથી એક હેતુ માટે થઈ શકે છે. પ્રોગ્રામ નિયંત્રણ હેઠળના કમ્પ્યુટરમાં (બિન-નકારાત્મક) આંકડાકીય મૂલ્ય રજૂ કરવાનો આ એકમાત્ર માધ્યમ છે; એટલે કે, તેનો ઉપયોગ પ્રોગ્રામ સ્થિરાંકો બનાવવા માટે થઈ શકે છે. બીજું, તેનો ઉપયોગ સી-સૂચના દ્વારા અનુગામી સંદર્ભ માટે એમ સ્યુડો-રજિસ્ટર પદ્ધતિનો ઉપયોગ કરીને રેમ મેમરી સ્થાનને સ્પષ્ટ કરવા માટે થાય છે. છેવટે, સી-સૂચના જે શાખાને સ્પષ્ટ કરે છે તે શાખાના લક્ષ્ય સરનામાં તરીકે એ રજિસ્ટરના વર્તમાન મૂલ્યનો ઉપયોગ કરે છે. એ-સૂચનાનો ઉપયોગ શાખા સૂચના પહેલા લક્ષ્ય સરનામું સેટ કરવા માટે થાય છે, સામાન્ય રીતે લેબલના સંદર્ભમાં. સી-સૂચનાઓ એએલયુ ગણતરી એન્જિન અને હેક કમ્પ્યુટરની પ્રોગ્રામ પ્રવાહ નિયંત્રણ ક્ષમતાઓને નિર્દેશિત કરે છે. સૂચના વાક્યરચના ત્રણ ક્ષેત્રો દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે, જેને "કોમ્પ", "ડેસ્ટ" અને "જમ્પ" તરીકે ઓળખવામાં આવે છે. દરેક સી-સૂચનામાં કોમ્પ ક્ષેત્ર જરૂરી છે. સી-સૂચના વાક્યરચના "ડેસ્ટ = કોમ્પ; જમ્પ" છે. "=" અને ";" અક્ષરોનો ઉપયોગ સૂચનાના ક્ષેત્રોને સીમાંકિત કરવા માટે થાય છે. જો ડેસ્ટ ક્ષેત્રનો ઉપયોગ થતો નથી, તો "=" અક્ષર અવગણવામાં આવે છે. જો જમ્પ ફિલ્ડનો ઉપયોગ થતો નથી, તો ";" અક્ષર અવગણવામાં આવે છે. સી-સૂચના કોઈ આંતરિક જગ્યાઓને મંજૂરી આપતી નથી. કોમ્પ ક્ષેત્ર ઉપરના કોષ્ટકમાં વ્યાખ્યાયિત 28 દસ્તાવેજીકૃત સ્મૃતિ સંકેતોમાંથી એક હોવું જોઈએ. આ કોડને અલગ એકમો ગણવામાં આવે છે; તેઓ કોઈ આંતરિક જગ્યાઓ વિના તમામ-કેપમાં વ્યક્ત થવા જોઈએ. એ નોંધવામાં આવે છે કે 6 ALU નિયંત્રણ બિટ્સ સંભવિત રીતે 64 કોમ્પ્યુટેશનલ કાર્યોને સ્પષ્ટ કરી શકે છે; જો કે, કોષ્ટકમાં રજૂ કરાયેલા માત્ર 18 જ એસેમ્બલર દ્વારા માન્યતા માટે સત્તાવાર રીતે દસ્તાવેજીકરણ કરવામાં આવે છે. ડેસ્ટ ફિલ્ડનો ઉપયોગ ચોક્કસ ગણતરીના પરિણામને સંગ્રહિત કરવા માટે એક અથવા વધુ સ્થાનોનો ઉલ્લેખ કરવા માટે થઈ શકે છે. જો આ ક્ષેત્રને "=" સીમાંકન સાથે અવગણવામાં આવે, તો ગણતરી કરેલ મૂલ્ય સંગ્રહિત થતું નથી. માન્ય સંગ્રહ સ્થાન સંયોજનો ઉપરના કોષ્ટકમાં વ્યાખ્યાયિત સ્મૃતિ સંકેતો દ્વારા નિર્દિષ્ટ કરવામાં આવે છે. જમ્પ ફિલ્ડનો ઉપયોગ અમલમાં મૂકવાની આગામી સૂચનાના ROM માં સરનામાંને સ્પષ્ટ કરવા માટે થઈ શકે છે. જો ";" સીમાંકન સાથે ક્ષેત્ર અવગણવામાં આવે, તો વર્તમાન સૂચનાને તરત જ અનુસરીને સૂચના સાથે અમલ ચાલુ રહે છે. શાખા સરનામાનું લક્ષ્ય, ROM માં, એ રજિસ્ટરના વર્તમાન મૂલ્ય દ્વારા પ્રદાન કરવામાં આવે છે જો નિર્દિષ્ટ શાખા શરત સંતોષાય છે. જો શાખા શરત નિષ્ફળ જાય, તો અમલ ROM માં આગામી સૂચના સાથે ચાલુ રહે છે. વર્તમાન ગણતરીના મૂલ્યના આધારે છ જુદી જુદી સરખામણીઓ માટે નેમોનિક કોડ પૂરા પાડવામાં આવે છે. વધુમાં, સાતમા વિકલ્પ તરીકે બિનશરતી શાખા પૂરી પાડવામાં આવે છે. કારણ કે કોમ્પ ક્ષેત્ર હંમેશા પૂરું પાડવું આવશ્યક છે, તેમ છતાં બિનશરતી શાખા માટે મૂલ્ય જરૂરી નથી, આ સૂચનાનું વાક્યરચના "0; JMP" તરીકે આપવામાં આવે છે. સમર્થિત શાખા શરતો ઉપરના કોષ્ટકમાં સ્પષ્ટ કરવામાં આવી છે. એસેમ્બલર હેક કમ્પ્યુટરને ટેકો આપતા મુક્તપણે ઉપલબ્ધ સોફ્ટવેરમાં કમાન્ડ લાઇન એસેમ્બલર એપ્લિકેશનનો સમાવેશ થાય છે. એસેમ્બલર હેક એસેમ્બલી લેંગ્વેજ સોર્સ ટાઇલ્સ (*. એ. એસ. એમ.) વાંચે છે અને હેક મશીન લેંગ્વેજ આઉટપુટ ફાઇલો (*. હેક) બનાવે છે. મશીન લેંગ્વેજ ફાઇલ પણ એક ટેક્સ્ટ ફાઇલ છે. આ ફાઇલની દરેક પંક્તિ દ્વિસંગી અંકોની 16-અક્ષરની સ્ટ્રિંગ છે જે "ઇન્સ્ટ્રક્શન સેટ આર્કિટેક્ચર (ISA) અને મશીન લેંગ્વેજ" વિભાગમાં વર્ણવેલ સ્પષ્ટીકરણ અનુસાર સ્રોત ટેક્સ્ટ ફાઇલની દરેક અનુરૂપ એક્ઝેક્યુટેબલ લાઇનના એન્કોડિંગને રજૂ કરે છે. બનાવેલી ફાઇલને એમુલેટર યુઝર ઇન્ટરફેસ દ્વારા પૂરી પાડવામાં આવેલી સુવિધા દ્વારા હેક કમ્પ્યુટર એમુલેટરમાં લોડ કરી શકાય છે. ઉદાહરણ એસેમ્બલી લેંગ્વેજ પ્રોગ્રામ ફોલોઇંગ એ હેક એસેમ્બલી લેંગ્વેજમાં લખાયેલ એનોટેટેડ ઉદાહરણ પ્રોગ્રામ છે. આ પ્રોગ્રામ પ્રથમ સતત 100 પૂર્ણાંકોનો સરવાળો કરે છે અને ગણતરીના પરિણામને વપરાશકર્તા-નિર્ધારિત ચલમાં મૂકે છે જેને "સરવાળો" કહેવાય છે. તે પૂર્ણાંક મૂલ્યો 1 થી 100 હોવા છતાં પુનરાવર્તન કરવા માટે "વાઇલ" લૂપ રચનાનો અમલ કરે છે અને દરેક પૂર્ણાંકને "સમ" ચલમાં ઉમેરે છે. વપરાશકર્તા-નિર્ધારિત ચલ "cnt" લૂપ દ્વારા વર્તમાન પૂર્ણાંક મૂલ્ય જાળવે છે. આ પ્રોગ્રામ મેમરી-મેપ કરેલ I/O સિવાય હેક કમ્પ્યુટરની "દસ્તાવેજીકૃત" એસેમ્બલી લેંગ્વેજ ક્ષમતાઓની તમામ વિશેષતાઓને સમજાવે છે. હેક એસેમ્બલી લેંગ્વેજ સોર્સ ફાઇલની સામગ્રી બોલ્ડ ફોન્ટમાં બીજા સ્તંભમાં દર્શાવવામાં આવી છે. પંક્તિ સંખ્યાઓ નીચેની ચર્ચામાં સંદર્ભ માટે આપવામાં આવી છે પરંતુ સ્રોત કોડમાં દેખાતી નથી. એસેમ્બલર દ્વારા ઉત્પાદિત હેક મશીન કોડ અગાઉના સ્તંભમાં નિયુક્ત ROM સરનામાં સાથે છેલ્લા સ્તંભમાં દર્શાવવામાં આવ્યો છે. નોંધ લો કે પૂર્ણ-વાક્ય ટિપ્પણીઓ, ખાલી રેખાઓ અને લેબલ વ્યાખ્યા નિવેદનો કોઈ મશીન લેંગ્વેજ કોડ પેદા કરતા નથી. ઉપરાંત, વિધાનસભા ભાષાની સૂચના ધરાવતી દરેક પંક્તિના અંતે આપવામાં આવેલી ટિપ્પણીઓને સંયોજક દ્વારા અવગણવામાં આવે છે. એસેમ્બલર આઉટપુટ, છેલ્લા સ્તંભમાં દર્શાવવામાં આવ્યું છે, તે 16 દ્વિસંગી અક્ષરોની લખાણ સ્ટ્રિંગ છે, 16-બીટ દ્વિસંગી પૂર્ણાંક રજૂઆત નથી. નોંધ લો કે સૂચના ક્રમ એ-સૂચના, સી-સૂચના, એ-સૂચના, સી-સૂચના, વગેરેની પેટર્નને અનુસરે છે. આ હેક એસેમ્બલી લેંગ્વેજ પ્રોગ્રામ્સ માટે લાક્ષણિક છે. એ-સૂચના સતત અથવા મેમરી સરનામાંને સ્પષ્ટ કરે છે જેનો ઉપયોગ અનુગામી સી-સૂચનામાં થાય છે. એ-સૂચનાની ત્રણેય વિવિધતાઓ સચિત્ર છે. લીટી 11 (@100) માં, અચળ મૂલ્ય 100 એ રજિસ્ટરમાં લોડ થાય છે. લૂપ શાખાની સ્થિતિ ચકાસવા માટે વપરાતા મૂલ્યની ગણતરી કરવા માટે આ મૂલ્યનો ઉપયોગ રેખા 12 (D = D-A) માં થાય છે. લીટી 4 (@cnt) વપરાશકર્તા-નિર્ધારિત ચલ "cnt" નો પ્રથમ દેખાવ ધરાવે છે, આ નિવેદન પ્રતીકને આગામી બિનઉપયોગી RAM સરનામા સાથે જોડે છે. આ ઉદાહરણમાં, સરનામું 16 છે, અને તે મૂલ્ય એ રજિસ્ટરમાં લોડ થાય છે. ઉપરાંત, એમ સ્યુડો-રજિસ્ટર પણ હવે આ સરનામાનો સંદર્ભ આપે છે, અને રેમ [16] ને સક્રિય રેમ મેમરી સ્થાન બનાવવામાં આવે છે. એ-સૂચનાનો ત્રીજો ઉપયોગ પંક્તિ 21 (@LOOP) માં જોવા મળે છે. અહીં સૂચના બાઉન્ડ લેબલ મૂલ્યને લોડ કરે છે, જે ROM મેમરીમાં સરનામાનું પ્રતિનિધિત્વ કરે છે, A રજિસ્ટર અને M સ્યુડો-રજિસ્ટરમાં. લાઇન 22 (0; JMP) માં અનુગામી બિનશરતી શાખા સૂચના લૂપની શરૂઆતમાં નિયંત્રણ સ્થાનાંતરણને અસર કરવા માટે CPU ના પ્રોગ્રામ કાઉન્ટર રજિસ્ટરમાં M રજિસ્ટર મૂલ્યને લોડ કરે છે. હેક કોમ્પ્યુટર પ્રોગ્રામના અમલને રોકવા માટે કોઈ મશીન લેંગ્વેજ સૂચના પ્રદાન કરતું નથી. પ્રોગ્રામની અંતિમ બે રેખાઓ (@END અને 0; JMP) એક અનંત લૂપ સ્થિતિ બનાવે છે જેનો ઉપયોગ હેક એસેમ્બલી પ્રોગ્રામ્સ પરંપરાગત રીતે CPU ઇમ્યુલેટરમાં ચલાવવા માટે રચાયેલ પ્રોગ્રામ્સને સમાપ્ત કરવા માટે કરે છે. હેનેસી, જ્હોન એલ., અને પેટરસન, ડેવિડ એ. પણ જુઓ. (2019). કોમ્પ્યુટર આર્કિટેક્ચરઃ એક માત્રાત્મક અભિગમ, છઠ્ઠી આવૃત્તિ. કેમ્બ્રિજ, મેસેચ્યુસેટ્સઃ મોર્ગન કૌફમેન પબ્લિશર્સ જસ્ટિસ, મેથ્યુ. (2021). કોમ્પ્યુટર ખરેખર કેવી રીતે કામ કરે છે. સાન ફ્રાન્સિસ્કો, કેલિફોર્નિયાઃ સ્ટાર્ચ પ્રેસ નહીં. માલવિનો, આલ્બર્ટ પી., અને બ્રાઉન, જેરાલ્ડ એ. (1993). ડિજિટલ કમ્પ્યુટર ઇલેક્ટ્રોનિક્સ, ત્રીજી આવૃત્તિ. ન્યૂ યોર્ક, ન્યૂ યોર્કઃ ગ્લેનકો મેકગ્રો-હિલ નલ, લિન્ડા અને લોબર, જુલિયા. (2019). કોમ્પ્યુટર ઓર્ગેનાઇઝેશન અને આર્કિટેક્ચરની આવશ્યકતાઓ. પાંચમી આવૃત્તિ. બર્લિંગ્ટન, મેસેચ્યુસેટ્સઃ જોન્સ અને બાર્ટલેટ લર્નિંગ. પેટ, યેલ એન., અને પટેલ, સંજય જે. (2020) કોમ્પ્યુટિંગ સિસ્ટમનો પરિચયઃ બિટ્સ અને ગેટ્સથી સી અને બિયોન્ડ સુધી, ત્રીજી આવૃત્તિ. ન્યૂ યોર્ક, ન્યૂ યોર્કઃ મેકગ્રો હિલ એજ્યુકેશન. પેટઝોલ્ડ, ચાર્લ્સ. (2009). કોડઃ કમ્પ્યુટર હાર્ડવેર અને સોફ્ટવેરની છુપાયેલી ભાષા. રેડમન્ડ, વોશિંગ્ટનઃ માઈક્રોસોફ્ટ પ્રેસ. સ્કોટ, જ્હોન ક્લાર્ક. (2009). પણ એને એવડી ક્યાંથી ખબર? દરેક માટે કોમ્પ્યુટરના મૂળભૂત સિદ્ધાંતો. ઓલ્ડસમાર, ફ્લોરિડાઃ જ્હોન સી. સ્કોટ. વ્હીપલ, રિચાર્ડ. (2019). સ્ક્રેચમાંથી તમારું પોતાનું કમ્પ્યુટર બનાવો. સિએટલ, વોશિંગ્ટનઃ એમેઝોન કિન્ડલ. સંદર્ભ કમ્પ્યુટર્સ