HOME»基本情報技術者試験掲示板»答えがマイナスになるSUBLについて(CASL2)
投稿する

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

 はなさん(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日経過したスレッドへの投稿はできません。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop