• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アセンブラについてです。)

アセンブラについてのシフト命令の乗算、徐算の仕組みを解説

このQ&Aのポイント
  • アセンブラにおけるシフト命令について、乗算と徐算の仕組みを理解するための具体的な例を解説します。
  • シフト命令では、8ビット符号なし整数のAL、BLに数値x,yを代入し、DXに乗算の答えを格納します。BLのビットシフトやCFの値によって演算の結果が変わります。
  • 具体的な計算手順とともに、なぜBLを右シフトし、ALを左シフトするのか、CFの値で判定するのかについて詳しく説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.3

#1です。 (スペースが削除されてるけど)左にシフトさせて計算するでしょ? ※10進数だから、左にシフトしたら10倍になってるけどね…。 2進数なら左シフトで2倍に、右シフトで1/2になる。 後は加算するだけ。

その他の回答 (2)

  • trapezium
  • ベストアンサー率62% (276/442)
回答No.2

除算はその逆 13591845 12345000 ->1 01234500 ->1 0 00012345 ->1 で引けたかどうかがそのまま答、残りが出れば剰余。更に元のビット位置以降も続ければ、小数点以下の値。 そのために最初に MSB まで (要は >=13591845 になればいい) 12345 を左シフトしとくとかのアルゴリズムが一般的。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

筆算しているのと同じ事。 12345 ×1101 10進数だけど、どうやって計算する?

claxies
質問者

補足

回答ありがとうございます。 12345 0 12345 12345 13591845 です。

関連するQ&A