• 締切済み

CASLIIのCPLとCPAについて

FR(フレグランスレジスタ)に設定される値を答える問題ですが、 解き方がわからないので教えてください。 (1)CPA GR0、M (2)CPL GR0、M GR0の内容 10、  M番地の内容 11の時 FRに設定あれるビット値を答える。 答え  (1)の場合(010)SF=1 (2)の場合(010)SF=1 *(010は左からOF,SF,ZFとなっています) 私がわからないのは、なぜSF=1となるかです。演算が負になるようですが、 どのように演算すると負になるのですか?

みんなの回答

回答No.2

CASL2の命令の定義を見れば明白だと思います。 FRとかSFを、名前だけで意味を知らずに覚えているのでしょうか? FR:フラグレジスタ(Flag Register) OF:オーバーフロー・フラグ(Overflow Flag)。計算結果が0~65535(または-32768~32767)の範囲を越えたときOF=1。範囲は命令により異なる。 SF:サイン・フラグ(Sign Flag)。計算結果のビット15が1のとき(負のとき)SF=1 ZF:ゼロ・フラグ(Zero Flag)。計算結果が0のときZF=1 http://www.cs.info.mie-u.ac.jp/~toshi/lectures/introcomp/casl-ops.html http://masudahp.web.fc2.com/casl2/casl2100.html http://masudahp.web.fc2.com/casl2/index.html

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

> FR(フレグランスレジスタ) 香りレジスタではなく,Flag Registerです。 > わからないのは、なぜSF=1となるかです。 > 演算が負になるようですが、 > どのように演算すると負になるのですか? 公式サイトで公開されている「アセンブラ言語の仕様」の p.4 (3)比較演算命令 および p.3 (5)フラグ設定値の意味 を参照。 http://www.jitec.ipa.go.jp/1_13download/shiken_yougo_ver2_2.pdf 10<11 だから,SF(Sign Flag)は負です。

関連するQ&A