電子書籍の厳選無料作品が豊富!

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となるかです。演算が負になるようですが、
どのように演算すると負になるのですか?

A 回答 (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/i …
http://masudahp.web.fc2.com/casl2/casl2100.html
http://masudahp.web.fc2.com/casl2/index.html
    • good
    • 0

> FR(フレグランスレジスタ)



香りレジスタではなく,Flag Registerです。


> わからないのは、なぜSF=1となるかです。
> 演算が負になるようですが、
> どのように演算すると負になるのですか?

公式サイトで公開されている「アセンブラ言語の仕様」の
p.4 (3)比較演算命令 および
p.3 (5)フラグ設定値の意味 を参照。
http://www.jitec.ipa.go.jp/1_13download/shiken_y …

10<11 だから,SF(Sign Flag)は負です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!