รหัสเครื่อง x86_64 (ลินุกซ์), 175 99 76 ไบต์
0000000000400080 <_start>:
400080: 66 bf 09 00 mov $0x9,%di
0000000000400084 <_table.L2>:
400084: 6a 0a pushq $0xa
400086: 89 fe mov %edi,%esi
0000000000400088 <_table.L3>:
400088: 89 f0 mov %esi,%eax
40008a: f7 e7 mul %edi
000000000040008c <_printInteger>:
40008c: 6a 20 pushq $0x20
40008e: 3c 0a cmp $0xa,%al
400090: 7d 02 jge 400094 <_printInteger.L1>
400092: 6a 20 pushq $0x20
0000000000400094 <_printInteger.L1>:
400094: 66 31 d2 xor %dx,%dx
400097: b3 0a mov $0xa,%bl
400099: 66 f7 f3 div %bx
40009c: 83 c2 30 add $0x30,%edx
40009f: 52 push %rdx
4000a0: 66 85 c0 test %ax,%ax
4000a3: 75 ef jne 400094 <_printInteger.L1>
4000a5: 6a 3d pushq $0x3d
4000a7: 66 57 push %di
4000a9: 80 04 24 30 addb $0x30,(%rsp)
4000ad: 6a 78 pushq $0x78
4000af: 66 56 push %si
4000b1: 80 04 24 30 addb $0x30,(%rsp)
4000b5: ff ce dec %esi
4000b7: 75 cf jne 400088 <_table.L3>
4000b9: ff cf dec %edi
4000bb: 75 c7 jne 400084 <_table.L2>
00000000004000bd <_printChars>:
4000bd: 66 ba 00 08 mov $0x800,%dx
4000c1: b0 01 mov $0x1,%al
4000c3: 66 bf 01 00 mov $0x1,%di
4000c7: 48 89 e6 mov %rsp,%rsi
4000ca: 0f 05 syscall
นี่เป็นดัมพ์ของไฟล์ไบนารีและทั้งหมดนี้คือ 175 ไบต์ โดยทั่วไปแล้วมันจะทำสองลูปเดียวกันกับที่คำตอบทั้งหมดทำ แต่การพิมพ์ไปที่คอนโซลนั้นค่อนข้างยากและโดยทั่วไปแล้วจำเป็นต้องกดอักขระเพื่อพิมพ์ลงบนสแต็กในทางกลับกันจากนั้นจึงสร้าง syscall เข้าสู่ stdout
ตอนนี้ฉันได้ปรับปรุงสิ่งนี้เพื่อให้การดำเนินการเขียนเพียง 1 ครั้ง (เร็วขึ้น!) และมีหมายเลขเวทย์มนตร์ (ว้าว!) และโดยการกดผลลัพธ์ทั้งหมดลงบนสแต็กย้อนกลับก่อนที่จะสร้าง syscall ฉันยังใช้รูทีน exit เนื่องจากใครต้องการรหัสออกที่เหมาะสม
นี่คือการเชื่อมโยงไปของฉันเป็นครั้งแรกและครั้งที่สองความพยายามในไวยากรณ์เดิมของพวกเขา
ฉันยินดีต้อนรับทุกคนที่มีคำแนะนำอื่น ๆ เกี่ยวกับวิธีการปรับปรุง ฉันยังสามารถอธิบายเหตุผลในรายละเอียดเพิ่มเติมได้ถ้าใครอยากรู้
(นอกจากนี้จะไม่พิมพ์ช่องว่างเพิ่มเติมเพื่อทำให้คอลัมน์ทั้งหมดอยู่ในแนวเดียวกัน แต่ถ้าจำเป็นฉันสามารถใส่ตรรกะลงไปด้วยค่าใช้จ่ายอีกไม่กี่ไบต์)
แก้ไข: ตอนนี้พิมพ์พื้นที่เพิ่มเติมและ golfed ลงมากยิ่งขึ้น! มันกำลังทำเรื่องบ้า ๆ บอ ๆ กับตัวรีจิสเตอร์และอาจไม่เสถียรถ้าโปรแกรมนี้จะขยายตัว
for
ลูป? ส่วนไหนที่น่าสนใจ (น่าสนใจ)?