答えがマイナスになるSUBLについて(CASL2)

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
はなさん  
(No.1)
SUBL処理で答えが負数になる時、格納される値がなぜ2の補数になるのか分かりません。
例えばGR1に100を格納し、SUBL GR1,=200をするとします。答えは-100なのでOFとSFに1が入りFF9Cが入ります。FF9Cは-100の2の補数ですよね?SUBLは負数を扱わないのになぜこの値が入るんでしょうか。
2022.04.28 21:40
たけさん 
(No.2)
初めまして!
アセンブラ歴浅いですが、自分の知っている範囲でご説明をば...
まず、FF9Cは「-100の2の補数」ではなく「100の2の補数」です。
SUBL命令は0~65535の範囲で減算を行う命令ですが
例題の100-200を例にすると、結果が範囲を超えてー100となります
そして負数は2の補数で表現する決まりなので
>100=0000 0000 0110 0100 
>↑を反転し+1=1111 1111 1001 1100 ;100の2の補数、即ちー100(FF9C)が入る
命令文がSUBL(論理)でもSUBA(算術)でも負数は2の補数で表現することは変わらないです。
答えになっておりますでしょうか、拙い説明で申し訳ないです。
2022.04.29 16:36
はなさん  
(No.3)
ご回答ありがとうございます!
SUBLとSUBAはOFの動きが違うだけで汎用レジスタに入る値は同じということで合ってますでしょうか?
2022.04.30 13:46

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop