usakdsteen

ゆうさくですてぃーん

2021年04月03日(Sat)の独り言

の呟きは 16

 < の独り言 | の独り言 | の独り言 > 
  •  #

    比較演算
    ちゃんとフラグレジスタの確認をしないとだめそう・・・

    •  #

      (-32767) - (2) = 32767

      となって、符号ビットで大小チェックすると死ぬ・・・

    •  #

      テキトーなコードが1000行超えそう・・・

  •  #


    これ


    ' *** FACTORS ***
    Dim factor(20) As Integer
    Dim count As Integer
    Dim i As Integer
    Dim n As Integer
    Dim s As String
    Print "Number?"
    Input n
    Print "Number is " & CStr(n)
    If n < 2 Then
    Print "Invalid Number"
    Else
    count = 0
    i = 2
    Do
    Do Until n Mod i <> 0
    factor(count) = i
    count += 1
    n = n \ i
    Loop
    i += 1
    Loop While i * i <= n
    If n > 1 Then
    factor(count) = n
    count += 1
    End If
    Print "FACTORS: " & CStr(count)
    s = ""
    For i = 0 To count - 1
    s = s & CStr(factor(i)) & ", "
    If Len(s) > 60 Then
    Print s
    s = ""
    End If
    Next i
    If Len(s) > 0 Then
    Print s
    End If
    End If

    f:id:neetsdkasu:20210403020607p:plain
    •  #


      FACTORS START
      ; Print "Number?"
      OUT LB1,LL1
      ; Input n
      IN TB1,TL1
      XOR GR1,GR1
      LD GR2,TL1
      CALL C2
      LD GR2,GR0
      LAD GR1,TB1
      CALL C1
      ST GR0,I4
      ; Print ("Number is " & CStr(n))
      LD GR7,I4
      LD GR3,GR7
      LAD GR1,TB1
      LAD GR2,TL1
      CALL C5
      LAD GR1,TB2
      LAD GR2,TL2
      LAD GR3,='Number is '
      LD GR4,=10
      CALL C9
      LAD GR1,TB2
      LAD GR2,TL2
      LAD GR3,TB1
      LD GR4,TL1
      CALL C8
      OUT TB2,TL2
      ; If (n < 2) Then
      LD GR7,I4
      LAD GR6,2
      LAD GR0,=#FFFF
      CPA GR7,GR6
      JMI J30
      XOR GR0,GR0
      J30 LD GR7,GR0
      AND GR7,GR7
      JZE J29
      ; Print "Invalid Number"
      OUT LB2,LL2
      JUMP J28
      ; Else
      J29 NOP
      ; count = 0
      LAD GR7,0
      ST GR7,I2
      ; i = 2
      LAD GR7,2
      ST GR7,I3
      ; Do
      J31 NOP
      ; Do Until *1
      LD GR7,I2
      LD GR3,GR7
      LAD GR1,TB2
      LAD GR2,TL2
      CALL C5
      LAD GR1,TB1
      LAD GR2,TL1
      LAD GR3,='FACTORS: '
      LD GR4,=9
      CALL C9
      LAD GR1,TB1
      LAD GR2,TL1
      LAD GR3,TB2
      LD GR4,TL2
      CALL C8
      OUT TB1,TL1
      ; s = ""
      LAD GR1,SB5
      LAD GR2,SL5
      LAD GR3,=0
      LAD GR4,0
      CALL C9
      ; For i = 0 To (count - 1) Step 1
      LD GR7,I2
      SUBA GR7,=1
      ST GR7,T1
      LAD GR7,0
      ST GR7,I3
      J40 NOP
      LD GR1,I3
      CPA GR1,T1
      JPL J42
      ; s = (s & (CStr(factor(i)) & ", "))
      LD GR7,I3
      LD GR1,GR7
      LAD GR2,21
      CALL C12
      LD GR7,GR0
      LD GR7,IA1,GR7
      LD GR3,GR7
      LAD GR1,TB1
      LAD GR2,TL1
      CALL C5
      LAD GR1,TB1
      LAD GR2,TL1
      LAD GR3,=', '
      LD GR4,=2
      CALL C8
      LAD GR1,TB2
      LAD GR2,TL2
      LAD GR3,SB5
      LD GR4,SL5
      CALL C9
      LAD GR1,TB2
      LAD GR2,TL2
      LAD GR3,TB1
      LD GR4,TL1
      CALL C8
      LAD GR1,SB5
      LAD GR2,SL5
      LAD GR3,TB2
      LD GR4,TL2
      CALL C9
      ; If (Len(s) > 60) Then
      LD GR7,SL5
      LAD GR6,60
      LAD GR0,=#FFFF
      CPA GR7,GR6
      JPL J44
      XOR GR0,GR0
      J44 LD GR7,GR0
      AND GR7,GR7
      JZE J43
      ; Print s
      OUT SB5,SL5
      ; s = ""
      LAD GR1,SB5
      LAD GR2,SL5
      LAD GR3,=0
      LAD GR4,0
      CALL C9
      ; End If
      J43 NOP
      ; Next i
      J41 NOP
      LD GR1,I3
      LAD GR1,1,GR1
      ST GR1,I3
      JUMP J40
      J42 NOP
      ; If (Len(s) > 0) Then
      LD GR7,SL5
      LAD GR6,0
      LAD GR0,=#FFFF
      CPA GR7,GR6
      JPL J46
      XOR GR0,GR0
      J46 LD GR7,GR0
      AND GR7,GR7
      JZE J45
      ; Print s
      OUT SB5,SL5
      ; End If
      J45 NOP
      ; End If
      J28 NOP
      RET
      ; Dim count As Integer
      I2 DS 1
      ; Dim i As Integer
      I3 DS 1
      ; Dim n As Integer
      I4 DS 1
      ; Dim s As String
      SL5 DS 1
      SB5 DS 256
      ; Dim factor(20) As Integer
      IA1 DS 21
      T1 DS 1
      TL1 DS 1
      TB1 DS 256
      TL2 DS 1
      TB2 DS 256
      LL1 DC 7
      LB1 DC 'Number?'
      LL2 DC 14
      LB2 DC 'Invalid Number'
      ; FuncAbs
      C0 LD GR0,GR1
      JMI J25
      RET
      J25 XOR GR0,GR0
      SUBA GR0,GR1
      RET
      ; FuncCInt
      C1 PUSH 0,GR1
      PUSH 0,GR2
      PUSH 0,GR3
      PUSH 0,GR4
      PUSH 0,GR5
      ADDL GR2,GR1
      XOR GR0,GR0
      XOR GR4,GR4
      CPL GR1,GR2
      JZE J2
      LD GR3,0,GR1
      CPL GR3,='+'
      JNZ J4
      LAD GR1,1,GR1
      JUMP J3
      J4 CPL GR3,='-'
      JNZ J3
      LAD GR4,-1
      LAD GR1,1,GR1
      J3 CPL GR1,GR2
      JZE J2
      LD GR3,0,GR1
      SUBL GR3,='0'
      JMI J2
      CPL GR3,=9
      JPL J2
      LD GR5,GR0
      SLL GR0,3
      ADDL GR0,GR5
      ADDL GR0,GR5
      ADDL GR0,GR3
      LAD GR1,1,GR1
      JUMP J3
      J2 XOR GR0,GR4
      SUBL GR0,GR4
      POP GR5
      POP GR4
      POP GR3
      POP GR2
      POP GR1
      RET
      ; FuncMax
      C2 CPA GR1,GR2
      JMI J1
      LD GR0,GR1
      RET
      J1 LD GR0,GR2
      RET
      ; FuncMin
      C3 CPA GR1,GR2
      JMI J36
      LD GR0,GR2
      RET
      J36 LD GR0,GR1
      RET
      ; FuncCStrArgInt
      C5 CPL GR3,=#8000
      JNZ J5
      PUSH 0,GR3
      PUSH 0,GR4
      LAD GR3,='-32768'
      LAD GR4,6
      CALL C9
      POP GR4
      POP GR3
      RET
      J5 AND GR3,GR3
      JNZ J6
      LAD GR3,1
      ST GR3,0,GR2
      LD GR3,='0'
      ST GR3,0,GR1
      XOR GR3,GR3
      RET
      J6 PUSH 0,GR1
      PUSH 0,GR2
      PUSH 0,GR3
      PUSH 0,GR4
      PUSH 0,GR5
      JPL J7
      LD GR4,='-'
      ST GR4,0,GR1
      LAD GR1,1,GR1
      XOR GR3,=#FFFF
      LAD GR3,1,GR3
      J7 LAD GR4,V1
      LD GR5,GR1
      LD GR2,GR3
      LAD GR3,10
      J8 CALL C10
      ADDL GR1,='0'
      ST GR1,0,GR4
      LAD GR4,1,GR4
      LD GR2,GR0
      JPL J8
      LAD GR2,V1
      LAD GR4,-1,GR4
      J9 LD GR1,0,GR4
      ST GR1,0,GR5
      LAD GR5,1,GR5
      LAD GR4,-1,GR4
      CPL GR4,GR2
      JPL J9
      JZE J9
      LD GR0,GR5
      POP GR5
      POP GR4
      POP GR3
      POP GR2
      POP GR1
      SUBL GR0,GR1
      ST GR0,0,GR2
      RET
      V1 DS 6
      ; UtilConcatStr
      C8 PUSH 0,GR1
      PUSH 0,GR2
      PUSH 0,GR3
      PUSH 0,GR4
      LD GR0,0,GR2
      LD GR2,GR1
      ADDL GR1,GR0
      LAD GR2,256,GR2
      ADDL GR4,GR3
      J26 CPL GR1,GR2
      JZE J27
      CPL GR3,GR4
      JZE J27
      LD GR0,0,GR3
      ST GR0,0,GR1
      LAD GR1,1,GR1
      LAD GR3,1,GR3
      JUMP J26
      J27 LD GR0,GR1
      POP GR4
      POP GR3
      POP GR2
      POP GR1
      SUBL GR0,GR1
      ST GR0,0,GR2
      RET
      ; UtilCopyStr
      C9 PUSH 0,GR1
      PUSH 0,GR2
      PUSH 0,GR3
      PUSH 0,GR4
      ST GR4,0,GR2
      AND GR4,GR4
      JZE J11
      J10 LD GR2,0,GR3
      ST GR2,0,GR1
      LAD GR3,1,GR3
      LAD GR1,1,GR1
      SUBA GR4,=1
      JPL J10
      J11 POP GR4
      POP GR3
      POP GR2
      POP GR1
      RET
      ; UtilDivMod
      C10 AND GR3,GR3
      JNZ J12
      XOR GR0,GR0
      LAD GR1,-1
      RET
      J12 PUSH 0,GR2
      PUSH 0,GR3
      PUSH 0,GR4
      PUSH 0,GR5
      LD GR4,GR2
      LD GR1,GR2
      CALL C0
      LD GR5,GR0
      LD GR1,GR3
      CALL C0
      LD GR1,GR0
      LAD GR0,1
      J13 ADDL GR1,GR1
      JOV J14
      ADDL GR0,GR0
      JUMP J13
      J14 SRL GR1,1
      LAD GR1,#8000,GR1
      XOR GR2,GR2
      J15 CPL GR5,GR1
      JMI J16
      SUBL GR5,GR1
      ADDL GR2,GR0
      J16 SRL GR0,1
      JZE J17
      SRL GR1,1
      JUMP J15
      J17 LD GR5,GR4
      XOR GR5,GR3
      SRA GR5,15
      XOR GR2,GR5
      SUBA GR2,GR5
      CALL C11
      LD GR1,GR4
      SUBA GR1,GR0
      LD GR0,GR2
      POP GR5
      POP GR4
      POP GR3
      POP GR2
      RET
      ; UtilMul
      C11 PUSH 0,GR2
      PUSH 0,GR3
      PUSH 0,GR4
      PUSH 0,GR5
      XOR GR0,GR0
      XOR GR1,GR1
      LD GR4,GR2
      LD GR5,GR3
      J18 SRL GR2,1
      JOV J19
      JNZ J21
      JUMP J22
      J19 ADDL GR0,GR3
      JOV J20
      JUMP J21
      J20 LAD GR1,1,GR1
      J21 SLL GR3,1
      JUMP J18
      J22 SRL GR5,1
      SLL GR4,1
      JOV J23
      JNZ J22
      JUMP J24
      J23 ADDL GR1,GR5
      JUMP J22
      J24 POP GR5
      POP GR4
      POP GR3
      POP GR2
      RET
      ; UtilSafeIndex
      C12 PUSH 0,GR1
      PUSH 0,GR2
      LAD GR2,-1,GR2
      CALL C3
      XOR GR1,GR1
      LD GR2,GR0
      CALL C2
      POP GR2
      POP GR1
      RET
      END

  •  #

    マークダウンにHTMLを埋め込むのは邪道か?

  •  #

    https://gigazine.net/news/20210402-bacteria-with-sugar-act-brain/

    マジか・・・砂糖こわい・・・

  •  #

    https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E8%A8%98%E6%B3%95

    へぇ

  •  #

    さっさとshower time

  •  #

    https://en.wikipedia.org/wiki/Free_Java_implementations
    https://en.wikipedia.org/wiki/List_of_Java_virtual_machines
    https://en.wikipedia.org/wiki/Comparison_of_Java_virtual_machines

    ふむ・・・?

  •  #

    さっさとshower timeしないと・・・

  •  #

    https://en.wikipedia.org/wiki/Java_performance
    https://ja.wikipedia.org/wiki/Java%E3%81%AE%E6%80%A7%E8%83%BD

    なんだこのページわ

  •  #

    https://ja.wikipedia.org/wiki/Category:%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E6%AF%94%E8%BC%83
    https://en.wikipedia.org/wiki/Category:Software_comparisons

    へぇ・・・

  •  #

    ではshower time

    •  #

      さっさとshower time!!!!!!!!

 < の独り言 | の独り言 | の独り言 > 

*1:n Mod i) <> 0)
J34 NOP
LD GR7,I4
LD GR6,I3
PUSH 0,GR6
LD GR2,GR7
POP GR3
CALL C10
LD GR0,GR1
LD GR7,GR0
LAD GR6,0
SUBA GR7,GR6
LD GR6,GR7
XOR GR6,=#FFFF
LAD GR6,1,GR6
OR GR7,GR6
SRA GR7,15
AND GR7,GR7
JNZ J35
; factor( count ) = i
LD GR7,I2
LD GR1,GR7
LAD GR2,21
CALL C12
LD GR7,GR0
LD GR6,I3
ST GR6,IA1,GR7
; count += 1
LAD GR7,1
ADDA GR7,I2
ST GR7,I2
; n = (n \ i)
LD GR7,I4
LD GR6,I3
PUSH 0,GR6
LD GR2,GR7
POP GR3
CALL C10
LD GR7,GR0
ST GR7,I4
; Loop
JUMP J34
J35 NOP
; i += 1
LAD GR7,1
ADDA GR7,I3
ST GR7,I3
; Loop While ((i * i) <= n)
J32 NOP
LD GR7,I3
LD GR6,I3
PUSH 0,GR6
LD GR2,GR7
POP GR3
CALL C11
LD GR7,GR0
LD GR6,I4
XOR GR0,GR0
CPA GR7,GR6
JPL J37
LAD GR0,=#FFFF
J37 LD GR7,GR0
AND GR7,GR7
JNZ J31
J33 NOP
; If (n > 1) Then
LD GR7,I4
LAD GR6,1
LAD GR0,=#FFFF
CPA GR7,GR6
JPL J39
XOR GR0,GR0
J39 LD GR7,GR0
AND GR7,GR7
JZE J38
; factor( count ) = n
LD GR7,I2
LD GR1,GR7
LAD GR2,21
CALL C12
LD GR7,GR0
LD GR6,I4
ST GR6,IA1,GR7
; count += 1
LAD GR7,1
ADDA GR7,I2
ST GR7,I2
; End If
J38 NOP
; Print ("FACTORS: " & CStr(count