絶品ゆどうふのタレ

ふと気づいたことを綴るだけのメモ

8086命令セットの細かいメモ

勉強会で教えてもらったので、忘れないようにメモ

pop csが無い理由

xchg ax,ax -> nop の理由

lea ax,axなどの命令が割り当てられていないのはなぜか

  • lea ax,[bx]
    • ax = bxの代入
    • カッコを外して代入をする命令
  • lea ax,[bx+5] と、ディスプレースメントつきの場合
    • ax = bx +5 の計算が1命令で出来て便利、という使い方
  • そのため、lea ax,axの命令だと、そもそもカッコがないので、この命令はありえない。
    • なので、この命令はない

in, out命令のword/byte切り替えについて

  • portの指定が1byteのままなのは何故か?

  • I/O空間自体は、0000 - FFFFまである

  • しかし、この中で即値で指定できるのは00FFまで。
  • それより上については、dxに入れて(Variable Portで)使う。
    • おそらく、8080とか8bit時代の仕様を引ずっているのでは。