ASCII में R16K1S60 स्क्रीन परिधीय के लिए आउटपुट लिखता है। पाउडर खिलौना बचाने पर चलाता है2012356
। (जानकारी के लिए हेडर में लिंक देखें)
कार्यक्रम का बाइट आकार संकलित परिणाम है (सेल प्रयुक्त 2 *), न कि विधानसभा।
आप जानते हैं कि जब आप लोगो ने अपने बाइटकोड से ज्यादा जगह ले ली तो आपने अच्छा प्रदर्शन किया है।
a:
mov ex, ip
mov ax, .string
mov sp, ip
mov dx, 0x1000
send sp, dx
.loop:
mov bx, [ax]
cmp bx, ip
je .end
cmp bx, ip
je .newline
shr bx, cx, 8
and cx, 0x00FF
.inner:
send sp, cx
sub bx, ex
jnz .inner
.reentry:
add ax, ex
jmp .loop
.newline:
add dx, 0x0020
send sp, dx
jmp .reentry
.string:
dw 0x0120
dw 0x135F
dw 0x000C
dw 0x012F
dw 0x1320
dw 0x015C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x017C
dw 0x1320
dw 0x017C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x017C
dw 0x1320
dw 0x017C
dw 0x000C
dw 0x152D
dw 0x000C
dw 0x015C
dw 0x0A5F
dw 0x0420
dw 0x055F
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x0220
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x0120
dw 0x012F
dw 0x000C
dw 0x0B20
dw 0x017C
dw 0x012F
dw 0x0009
.end:
hlt
व्याख्या
विधानसभा कोड ऊपर एक सरल संपीड़न एल्गोरिथ्म लागू करता है, शब्द 0x000C के साथ एक नई लाइन और 0x0009 निष्पादन को रोकने के लिए कमांड है।
अन्य शब्दों को केवल इस तरह एन्कोड किया गया है: 0xTTCC
ASM इसके लिए उपलब्ध हर रजिस्टर का उपयोग करता है, जिसमें कुछ कम इस्तेमाल किए जाने वाले भी शामिल हैं:
इंस्ट्रक्शन पॉइंटर, कुछ बाइट्स को बचाने के लिए कुछ ज्ञात मूल्यों को त्वरित रूप से प्राप्त करने के लिए (एक इंस्टेंशन में एक निरंतर मूल्य जो इसे रजिस्टर करने के लिए एक अतिरिक्त बाइट का उपयोग नहीं करता है)
स्टैक पॉइंटर का उपयोग 6 वें सामान्य प्रयोजन रजिस्टर के रूप में किया जाता है, क्योंकि कोई भी कोड स्टैक का उपयोग नहीं करता है।
केवल AX, BX, CX और DX वास्तव में महत्वपूर्ण डेटा के लिए उपयोग किए जाते हैं। EX और SP का उपयोग कुछ स्थिरांक को संग्रहीत करने के लिए किया जाता है जो अक्सर उपयोग किए जाते हैं।
यह कुछ हद तक सरल है, और इसमें जीतने की संभावना कम है, लेकिन यह लिखने में मजेदार था!
पुराने उत्तर के लिए संशोधन इतिहास देखें (यह ASM के संदर्भ में उतना ही बड़ा है)
funfact: यदि इसे शब्दों में (R16K1S60,16 बिट्स के मामले में) मापा गया था, तो यह 72 बाइट्स में pyth उत्तर से छोटा होगा