usakdsteen

ゆうさくですてぃーん

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

の呟きは 13

 < の独り言 | の独り言 | の独り言 > 
  •  (UPD ) #

    RustのClippyさんがイラっとくる指摘をしてきた
    clippy::map_entryというやつ

    mutable borrowがあるから
    わざわざcontains_keyとinsertを分離して書いてるのにentry使えとか言ってくる

    言われたままentryを使うとmutable borrowd激おこしてくる

    イラっとくる

    •  #

      contains_keyの結果をletバインドしてからifでくくってやると何も言わなくなるの草

  •  #

    さて、問題は
    キャスル2で
    文字列から整数への変換処理のコードが
    脳内にないことだが

    •  #

      ATOI START
      XOR GR0,GR0 ; 戻り値 GR0
      RET
      SLEN DC 5
      SBUF DC '-1234'
      END

      さて、、

      •  #

        1文字目が符号かどうかのチェックが必要
        +か-か

      •  (UPD ) #

        シフトではオーバーフロー検知できないんだよね・・・送り出された最後のビットがOFに入るから、2以上のシフトで溢れても最後のビットがたまたま0だったら、検知できない・・・

        •  #

          10倍は
          3ビットシフトと1ビットシフトの和だから

          上位3ビットのいずれかが立ってれば3ビットシフト時にオーバーフロー?
          まぁその後の和でもオーバーフローしうるけど

          •  #

            上位3ビットに対してANDした上で
            JNZでオーバーフローは検知できそう、か?

            •  (UPD ) #

              上位3ビットにビットが立ってる
              は言い換えると、0x1FFF より大きい数字、なのでCPLが使えて

              仮に
              GR0 これまで読み込んだ数値の上位桁分
              GR1 読み込んだ数字を数値にしたもの (GR2 - '0')
              として

              CPL GR0,=#1FFF
              JPL OVERFLOW
              LD GR3,GR0
              SLL GR3,=3
              ADDL GR3,GR0
              JOV OVERFLOW
              ADDL GR3,GR0
              JOV OVERFLOW
              ADDL GR3,GR1
              JOV OVERFLOW
              LD GR0,GR3

              または
              CPL GR0,=#1FFF
              JPL OVERFLOW
              LD GR3,GR0
              SLL GR3,=3
              LD GR4,GR0
              SLL GR4,=1
              ADDL GR3,GR4
              JNZ OVERFLOW
              ADDL GR3,GR1
              JNZ OVERFLOW
              LD GR0,GR3

              こんな感じ?

              •  #

                結構な行数になるから
                キャスル2のコード自体をparseできるようにしないと
                全部を内部形式で記述するのはしんどすぎる

                •  #

                  parseを書くのがしんどすぎる

                  •  #

                    (omitted)

  •  #

    すごい人はすごいんだなあ・・・と感じた

  •  #

    shower time

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