アセンブラ平成29年春
回答ありがとうさん
(No.1)
https://www.fe-siken.com/kakomon/29_haru/pm12.html
アセンブラの演算で
頭がこんがらがってきてしまい
わからなくなってしまったので
良ければ教えてください。
この問題では
64ビットで一つの数を表すという設定での
ひとつの数は重ならない連続する4つのアドレスを使用。
2つの数を加算する演算を行っていくために
プログラム1のなかで
ADDA GR0,0,GR3
ADDA GR0,0,GR4
というように同じ桁に相当する部分を加算していく。
桁あふれはGR5に退避させて
GR0にもどして
そのあとアドレスを違う桁にそれぞれ動かしていく…
となると思うのですが
読んでいるうちにこんがらってきてしまい
18,19行の
SUBL GR4,=1
SUBL GR3,=1
が
GR4のアドレスの値からマイナスをするようにも読めてしまいます。
レジスタ同士の演算のときはアドレスの値どうしを演算する、
レジスタとアドレス(リテラル含む)を演算するときは
レジスタのアドレスにたいして演算しているのでしょうか。
よろしくお願いします。
アセンブラの演算で
頭がこんがらがってきてしまい
わからなくなってしまったので
良ければ教えてください。
この問題では
64ビットで一つの数を表すという設定での
ひとつの数は重ならない連続する4つのアドレスを使用。
2つの数を加算する演算を行っていくために
プログラム1のなかで
ADDA GR0,0,GR3
ADDA GR0,0,GR4
というように同じ桁に相当する部分を加算していく。
桁あふれはGR5に退避させて
GR0にもどして
そのあとアドレスを違う桁にそれぞれ動かしていく…
となると思うのですが
読んでいるうちにこんがらってきてしまい
18,19行の
SUBL GR4,=1
SUBL GR3,=1
が
GR4のアドレスの値からマイナスをするようにも読めてしまいます。
レジスタ同士の演算のときはアドレスの値どうしを演算する、
レジスタとアドレス(リテラル含む)を演算するときは
レジスタのアドレスにたいして演算しているのでしょうか。
よろしくお願いします。
2021.03.03 12:05
回答ありがとうさん
(No.2)
①ADDA GR0,0,GR4
0+GR4で求められるアドレスにある値とGR0の値を加算
②ADDA GR0,GR4
GR0とGR4の値を加算する。
という違いでしたね。
0が肝なのがきちんと読めていませんでした。
0+GR4で求められるアドレスにある値とGR0の値を加算
②ADDA GR0,GR4
GR0とGR4の値を加算する。
という違いでしたね。
0が肝なのがきちんと読めていませんでした。
2021.03.03 12:15
広告
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
広告