Our server costs ~$56 per month to run. Please consider donating or becoming a Patron to help keep the site running. Help us gain new members by following us on Twitter and liking our page on Facebook!
Current time: April 27, 2024, 11:50 pm

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arithmetic Expression Compiler
#37
RE: Arithmetic Expression Compiler
I've made another program in my programming language targeting Linux and GNU Assembler, an analog clock. Here it goes:
Code:
Syntax GAS
;This is yet another example of how to target Linux using GNU Assembler.
AsmStart ;What follows is code produced by GCC 9.3.0 on Linux, I don't understand much of it either, and it's not important.
   .file   "analogClock.c"
   .text
   .comm   result,4,4
   .comm   i,4,4
   .comm   x,4,4
   .comm   y,4,4
   .comm   currentSign,4,4
   .comm   centerX,4,4
   .comm   centerY,4,4
   .comm   distance,4,4
   .comm   clockRadius,4,4
   .comm   output,7360,32
   .comm   hour,4,4
   .comm   minute,4,4
   .comm   second,4,4
   .comm   angle,4,4
   .comm   endOfTheHandX,4,4
   .comm   endOfTheHandY,4,4
   .comm   coefficientOfTheDirection,4,4
   .comm   windowWidth,4,4
   .comm   windowHeight,4,4
   .comm   lowerBoundX,4,4
   .comm   upperBoundX,4,4
   .comm   lowerBoundY,4,4
   .comm   upperBoundY,4,4
   .comm   isXWithinBounds,4,4
   .comm   isYWithinBounds,4,4
   .comm   expectedY,4,4
   .comm   expectedX,4,4
   .comm   j,4,4
   .comm   ASCIIofSpaceAsFloat32,4,4
   .globl  main
   .type   main, @function
main:
.LFB0:
   .cfi_startproc
   leal    4(%esp), %ecx
   .cfi_def_cfa 1, 0
   andl    $-16, %esp
   pushl   -4(%ecx)
   pushl   %ebp
   .cfi_escape 0x10,0x5,0x2,0x75,0
   movl    %esp, %ebp
   pushl   %ecx
   .cfi_escape 0xf,0x3,0x75,0x7c,0x6
   subl    $36, %esp
   subl    $12, %esp
   leal    -20(%ebp), %eax
   pushl   %eax
   call    time
   addl    $16, %esp
   subl    $12, %esp
   leal    -20(%ebp), %eax
   pushl   %eax
   call    localtime
   addl    $16, %esp
   movl    %eax, -16(%ebp)
   movl    -16(%ebp), %eax
   movl    8(%eax), %eax
   movl    %eax, -28(%ebp)
   fildl   -28(%ebp)
   fstps   hour
   movl    -16(%ebp), %eax
   movl    4(%eax), %eax
   movl    %eax, -28(%ebp)
   fildl   -28(%ebp)
   fstps   minute
   movl    -16(%ebp), %eax
   movl    (%eax), %eax
   movl    %eax, -28(%ebp)
   fildl   -28(%ebp)
   fstps   second
   #APP
AsmEnd ;And now finally follows a program written in AEC.
windowWidth:=80
windowHeight:=23
ASCIIofSpace<=" \0\0\0" ;As integer. We know we are dealing with a...
ASCIIofNewLine<="\n\0\0\0" ;32-bit low-endian machine.
ASCIIofStar<="*\0\0\0"
i:=0
While i<windowWidth*windowHeight ;First, fill the window with spaces and newlines.
   If mod(i,windowWidth)=windowWidth-1
       AsmStart
           .intel_syntax noprefix
           fild dword ptr ASCIIofNewLine
           fstp dword ptr currentSign
           .att_syntax
       AsmEnd
   Else
       AsmStart
           .intel_syntax noprefix
           fild dword ptr ASCIIofSpace
           fstp dword ptr currentSign
           fld dword ptr currentSign
           fstp dword ptr ASCIIofSpaceAsFloat32
           .att_syntax
       AsmEnd
   EndIf
   output[i]:=currentSign
   i:=i+1
EndWhile
centerX:=windowWidth/2-mod(windowWidth/2,1)
centerY:=windowHeight/2-mod(windowHeight/2,1)
clockRadius:=(centerX<centerY)?(centerX):(centerY)-1
i:=0
While i<windowWidth*windowHeight ;Next, draw the circle which represents the clock.
   y:=i/windowWidth-mod(i/windowWidth,1) ;When I didn't put "floor" into my programming language...
   x:=mod(i,windowWidth)
   distance:=sqrt((x-centerX)*(x-centerX)+(y-centerY)*(y-centerY)) ;Pythagorean Theorem.
   If abs(distance-clockRadius)<3/4
       AsmStart
           .intel_syntax noprefix
           fild dword ptr ASCIIofStar
           fstp dword ptr currentSign
           .att_syntax
       AsmEnd
       output[i]:=currentSign
   EndIf
   i:=i+1
EndWhile
AsmStart
   .intel_syntax noprefix
   jmp ASCIIofDigits$
   ASCIIofDigits:
   .macro writeDigits startingWith=0
       .byte '0'+\startingWith,0,0,0 #".byte" is to GNU Assembler about the same as "db" is to FlatAssembler.
       .if \startingWith < 9
           writeDigits \startingWith+1
       .endif
   .endm
   writeDigits #The goal is to make Assembler output the ASCII of "0\0\0\01\0\0\02\0\0\0...9\0\0\0" inside the executable (if the instruction pointer points to it, it will, of course, be an invalid instruction).
   ASCIIofDigits$:
   .att_syntax
AsmEnd
;Label of "12"...
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+1*4] #The ASCII of '1'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
output[(centerY-clockRadius+1)*windowWidth+centerX]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+2*4] #The ASCII of '2'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
output[(centerY-clockRadius+1)*windowWidth+centerX+1]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+6*4] #The ASCII of '6'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
output[(centerY+clockRadius-1)*windowWidth+centerX]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+3*4] #The ASCII of '3'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
output[centerY*windowWidth+centerX+clockRadius-1]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+9*4] #The ASCII of '9'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
output[centerY*windowWidth+centerX-clockRadius+1]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+1*4] #The ASCII of '1'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
y:=centerY-(clockRadius-1)*cos(360/12)
y:=y-mod(y,1)
output[y*windowWidth+centerX+sin(360/12)*(clockRadius-1)]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+2*4] #The ASCII of '2'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
y:=centerY-(clockRadius-1.5)*cos(2*360/12)
y:=y-mod(y,1)
output[y*windowWidth+centerX+sin(2*360/12)*(clockRadius-1.5)]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+4*4] #The ASCII of '4'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
y:=centerY-(clockRadius-1)*cos(4*360/12)
y:=y-mod(y,1)
output[y*windowWidth+centerX+sin(4*360/12)*(clockRadius-1)]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+5*4] #The ASCII of '5'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
y:=centerY-(clockRadius-1)*cos(5*360/12)
y:=y-mod(y,1)
output[y*windowWidth+centerX+sin(5*360/12)*(clockRadius-1)]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+7*4] #The ASCII of '7'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
y:=centerY-(clockRadius-1)*cos(7*360/12)
y:=y-mod(y,1)
output[y*windowWidth+centerX+sin(7*360/12)*(clockRadius-1)]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+8*4] #The ASCII of '8'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
y:=centerY-(clockRadius-1)*cos(8*360/12)
y:=y-mod(y,1)
output[y*windowWidth+centerX+sin(8*360/12)*(clockRadius-1)]:=currentSign
;Label "10"...
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+1*4] #The ASCII of '1'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
y:=centerY-(clockRadius-1.5)*cos(10*360/12)
y:=y-mod(y,1)
output[y*windowWidth+centerX+sin(10*360/12)*(clockRadius-1.5)]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+0*4] #The ASCII of '0'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
y:=centerY-(clockRadius-1.5)*cos(10*360/12)
y:=y-mod(y,1)
output[y*windowWidth+centerX+sin(10*360/12)*(clockRadius-1.5)+1]:=currentSign
;Label "11"...
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+1*4] #The ASCII of '1'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
y:=centerY-(clockRadius-1.5)*cos(11*360/12)
y:=y-mod(y,1)
output[y*windowWidth+centerX+sin(11*360/12)*(clockRadius-1.5)]:=currentSign
AsmStart
   .intel_syntax noprefix
   fild dword ptr [ASCIIofDigits+1*4] #The ASCII of '1'.
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
y:=centerY-(clockRadius-1.5)*cos(11*360/12)
y:=y-mod(y,1)
output[y*windowWidth+centerX+sin(11*360/12)*(clockRadius-1.5)+1] := currentSign
j:=0
While j<3
   If j=0
       angle:=(mod(hour+minute/60,12))*(360/12)
   ElseIf j=1
       angle:=minute*(360/60)
   Else
       angle:=second*(360/60)
   EndIf
   endOfTheHandX:=centerX+sin(angle)*clockRadius/(j=0?2:j=1?3/2:4/3) ;Hour hand will be the shortest, and the hand that shows the seconds will be the longest.
   endOfTheHandY:=centerY-cos(angle)*clockRadius/(j=0?2:j=1?3/2:4/3)
   coefficientOfTheDirection:=(endOfTheHandY-centerY)/(endOfTheHandX-centerX)
   debugString <= "Drawing line between (%d,%d) and (%d,%d).\n\0"
   AsmStart
       .intel_syntax noprefix
       .ifdef DEBUG #Conditional assembly, this will only be assembled if you tell GNU Assembler (by modifying the file or using command line) that you want to enable debugging.
           fld dword ptr endOfTheHandY
           fistp dword ptr result
           push dword ptr result #This (pushing a "dword" onto the system stack) breaks the compatibility with 64-bit Linux (but you can still enable it by disabling debugging)!
           fld dword ptr endOfTheHandX
           fistp dword ptr result
           push dword ptr result
           fld dword ptr centerY
           fistp dword ptr result
           push dword ptr result
           fld dword ptr centerX
           fistp dword ptr result
           push dword ptr result
           lea ebx,debugString
           push ebx
           call printf
       .endif #End of the conditional assembly.
       .att_syntax
   AsmEnd
   i:=0
   While i<windowWidth*windowHeight
       lowerBoundX:=(endOfTheHandX<centerX)?(endOfTheHandX):(centerX)
       upperBoundX:=(endOfTheHandX>centerX)?(endOfTheHandX):(centerX)
       lowerBoundY:=(endOfTheHandY<centerY)?(endOfTheHandY):(centerY)
       upperBoundY:=(endOfTheHandY>centerY)?(endOfTheHandY):(centerY)
       y:=i/windowWidth-mod(i/windowWidth,1)
       x:=mod(i,windowWidth)
       isXWithinBounds:=(x>lowerBoundX | x=lowerBoundX) & (x<upperBoundX | x=upperBoundX) ;Damn... Now I understand why almost every programming language supports the "<=" and ">=" operators, no matter how much harder they make the language to tokenize.
       isYWithinBounds:=(y>lowerBoundY | y=lowerBoundY) & (y<upperBoundY | y=upperBoundY)
       If isXWithinBounds=1 & isYWithinBounds=1
           expectedY:=(x-centerX)*coefficientOfTheDirection+centerY
           expectedX:=(y-centerY)*(1/coefficientOfTheDirection)+centerX
           debugString1 <= "The point (%d,%d) is within bounds, expectedY is %d and expectedX is %d.\n\0"
           AsmStart
               .intel_syntax noprefix
               .ifdef DEBUG
                   fld dword ptr expectedX
                   fistp dword ptr result
                   push dword ptr result
                   fld dword ptr expectedY
                   fistp dword ptr result
                   push dword ptr result
                   fld dword ptr y
                   fistp dword ptr result
                   push dword ptr result
                   fld dword ptr x
                   fistp dword ptr result
                   push dword ptr result
                   lea ebx,debugString1
                   push ebx
                   call printf
               .endif
               .att_syntax
           AsmEnd
           ASCIIofLetterH<="h\0\0\0"
           ASCIIofLetterM<="m\0\0\0"
           ASCIIofLetterS<="s\0\0\0"
           If j=0
               AsmStart
                   .intel_syntax noprefix
                   fild dword ptr ASCIIofLetterH
                   fstp dword ptr currentSign
                   .att_syntax
               AsmEnd
           ElseIf j=1
               AsmStart
                   .intel_syntax noprefix
                   fild dword ptr ASCIIofLetterM
                   fstp dword ptr currentSign
                   .att_syntax
               AsmEnd
           Else
               AsmStart
                   .intel_syntax noprefix
                   fild dword ptr ASCIIofLetterS
                   fstp dword ptr currentSign
                   .att_syntax
               AsmEnd
           EndIf
           If (upperBoundX=lowerBoundX | upperBoundY=lowerBoundY) & output[i]=ASCIIofSpaceAsFloat32
               output[i]:=currentSign
           EndIf
           If (abs(expectedY-y)<3/4 | abs(expectedX-x)<3/4) & output[i]=ASCIIofSpaceAsFloat32
               output[i]:=currentSign
           EndIf
       EndIf
       i:=i+1
   EndWhile
   j:=j+1
EndWhile
;Draw some ornament...
ASCIIofLetterX<="x\0\0\0"
AsmStart
   .intel_syntax noprefix
   fild dword ptr ASCIIofLetterX
   fstp dword ptr currentSign
   .att_syntax
AsmEnd
i:=0
While i<windowWidth*windowHeight
   y:=i/windowWidth-mod(i/windowWidth,1)
   x:=mod(i,windowWidth)
   If abs(windowHeight-2*ln(1+abs((x-centerX)/2))-y)<1-abs(x-centerX)/(centerX*95/112) & x>1/2*centerX & x<3/2*centerX & output[i]=ASCIIofSpaceAsFloat32 ;The logarithmic curve looks somewhat like a lemma of a flower.
       output[i]:=currentSign
   EndIf
   i:=i+1
EndWhile
AsmStart ;And here goes how, according to GCC 9.3.0, you print the table and finish an Assembly program on 32-bit Linux (I don't understand that either, and it's not important).
#NO_APP
   movl    $0, -12(%ebp)
   jmp .L2
.L3:
   movl    -12(%ebp), %eax
   movss   output(,%eax,4), %xmm0
   cvttss2sil  %xmm0, %eax
   subl    $12, %esp
   pushl   %eax
   call    putchar
   addl    $16, %esp
   addl    $1, -12(%ebp)
.L2:
   cmpl    $1839, -12(%ebp)
   jle .L3
   movl    $0, %eax
   movl    -4(%ebp), %ecx
   .cfi_def_cfa 1, 0
   leave
   .cfi_restore 5
   leal    -4(%ecx), %esp
   .cfi_def_cfa 4, 4
   ret
   .cfi_endproc
.LFE0:
   .size   main, .-main
   .ident  "GCC: (GNU) 9.3.0"
   .section    .note.GNU-stack,"",@progbits
AsmEnd
Here is what it outputs right now (at 19:09):
Code:
                                                                             
                                    *******                                  
                                  ***  12 ***                                
                                ***11      1***                              
                               **             **                              
                               *               *                              
                              **10            2**                            
                              *            m    *                            
                             **           mm    **                            
                             *           mm      *                            
                             *          m        *                            
                             *9        h        3*                            
                             *        hh         *                            
                             *       hh          *                            
                             **     sh          **                            
                              *8   ssh         4*                            
                              **  ss           **                            
                               *               *                              
                    xxx        **  7        5 **        xxx                  
                       xxxxxxxx ***         *** xxxxxxxx                      
                             xxxxx***  6  ***xxxxx                            
                                 xxx*******xxx                                
                                    xxx xxx                                  
It's a bit weird that, in order to effectively work in your own programming language, you need to insert tons of assembly code which you yourself don't fully understand.



Messages In This Thread
Arithmetic Expression Compiler - by FlatAssembler - January 2, 2019 at 3:01 am
RE: Arithmetic Expression Compiler - by bennyboy - January 2, 2019 at 7:15 am
RE: Arithmetic Expression Compiler - by Angrboda - January 2, 2019 at 9:56 am
RE: Arithmetic Expression Compiler - by FlatAssembler - January 3, 2019 at 4:47 am
RE: Arithmetic Expression Compiler - by Angrboda - January 3, 2019 at 9:27 am
RE: Arithmetic Expression Compiler - by FlatAssembler - January 3, 2019 at 12:35 pm
RE: Arithmetic Expression Compiler - by bennyboy - January 3, 2019 at 9:09 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - January 9, 2019 at 5:08 am
RE: Arithmetic Expression Compiler - by bennyboy - January 9, 2019 at 5:09 pm
RE: Arithmetic Expression Compiler - by SteelCurtain - January 9, 2019 at 10:24 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - January 10, 2019 at 8:16 am
RE: Arithmetic Expression Compiler - by bennyboy - January 10, 2019 at 10:33 am
RE: Arithmetic Expression Compiler - by FlatAssembler - January 12, 2019 at 8:02 am
RE: Arithmetic Expression Compiler - by bennyboy - January 12, 2019 at 9:36 am
RE: Arithmetic Expression Compiler - by FlatAssembler - January 31, 2019 at 3:50 am
RE: Arithmetic Expression Compiler - by bennyboy - January 31, 2019 at 8:42 am
RE: Arithmetic Expression Compiler - by FlatAssembler - February 8, 2019 at 2:30 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - May 2, 2019 at 11:00 am
RE: Arithmetic Expression Compiler - by FlatAssembler - May 10, 2019 at 3:53 am
RE: Arithmetic Expression Compiler - by Smaug - May 10, 2019 at 7:45 am
RE: Arithmetic Expression Compiler - by FlatAssembler - May 25, 2019 at 2:28 pm
RE: Arithmetic Expression Compiler - by Smaug - May 31, 2019 at 5:56 am
RE: Arithmetic Expression Compiler - by FlatAssembler - June 1, 2019 at 1:50 am
RE: Arithmetic Expression Compiler - by Smaug - June 1, 2019 at 1:24 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - June 2, 2019 at 7:26 am
RE: Arithmetic Expression Compiler - by Smaug - June 6, 2019 at 4:12 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - June 7, 2019 at 8:01 am
RE: Arithmetic Expression Compiler - by Jehanne - May 31, 2019 at 7:17 am
RE: Arithmetic Expression Compiler - by FlatAssembler - August 17, 2019 at 1:50 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - October 31, 2019 at 12:50 am
RE: Arithmetic Expression Compiler - by FlatAssembler - January 4, 2020 at 9:26 am
RE: Arithmetic Expression Compiler - by FlatAssembler - May 1, 2020 at 12:08 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - May 22, 2020 at 2:40 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - May 27, 2020 at 8:52 am
RE: Arithmetic Expression Compiler - by FlatAssembler - June 14, 2020 at 9:32 am
RE: Arithmetic Expression Compiler - by FlatAssembler - June 18, 2020 at 1:12 pm
RE: Arithmetic Expression Compiler - by arewethereyet - June 18, 2020 at 1:27 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - June 18, 2020 at 3:35 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - June 24, 2020 at 3:59 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - August 22, 2020 at 1:16 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 4:24 am
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 6:51 am
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 10:56 am
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 11:37 am
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 12:02 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 1:09 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 1:37 pm
RE: Arithmetic Expression Compiler - by Angrboda - August 30, 2020 at 12:14 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 2:01 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 2:06 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 2:15 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - August 30, 2020 at 4:39 pm
RE: Arithmetic Expression Compiler - by Grandizer - September 3, 2020 at 3:43 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - August 30, 2020 at 6:55 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - September 3, 2020 at 12:08 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - September 3, 2020 at 3:18 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - September 3, 2020 at 4:51 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - September 3, 2020 at 5:06 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - September 4, 2020 at 4:05 am
RE: Arithmetic Expression Compiler - by Angrboda - September 3, 2020 at 3:10 pm
RE: Arithmetic Expression Compiler - by BrianSoddingBoru4 - September 4, 2020 at 4:17 am
RE: Arithmetic Expression Compiler - by FlatAssembler - September 21, 2020 at 3:12 pm
RE: Arithmetic Expression Compiler - by HappySkeptic - September 24, 2020 at 1:12 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - October 5, 2020 at 5:01 pm
RE: Arithmetic Expression Compiler - by HappySkeptic - October 5, 2020 at 9:12 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - October 6, 2020 at 1:55 pm
RE: Arithmetic Expression Compiler - by FlatAssembler - October 18, 2020 at 9:11 am
RE: Arithmetic Expression Compiler - by FlatAssembler - July 17, 2021 at 12:29 pm
RE: Arithmetic Expression Compiler - by arewethereyet - July 17, 2021 at 12:36 pm

Possibly Related Threads...
Thread Author Replies Views Last Post
  Compiler Theory FlatAssembler 5 1024 October 27, 2020 at 10:48 am
Last Post: Angrboda



Users browsing this thread: 2 Guest(s)