ページ 1 / 1
アセンブラわかる方いますでしょうか。基礎の基礎です。
Posted: 2017年6月26日(月) 22:11
by 見習い
あるレジスタに正の整数xを設定後、
「レジスタの値を2ビット左へシフトして,xを加える。」
オーバーフローや符号が変わることは考慮しなくてよい。
TEST START MAIN
X DC 1
MAIN
LD GR1,X
SLL GR1,2
ADDL GR1,X
RET
END
これでいいんでしょうか。RPUSH、RPOPなどは必要ですか?
C言語じゃないのにすみません。
Re: アセンブラわかる方いますでしょうか。基礎の基礎です。
Posted: 2017年6月26日(月) 22:16
by みけCAT
アセンブラは対象のCPUによって大きく変わりますが、対象のCPUやアセンブラは何でしょうか?
Re: アセンブラわかる方いますでしょうか。基礎の基礎です。
Posted: 2017年6月26日(月) 22:22
by 見習い
ええ…そうなんですか…?
特に指定はないです。アセンブラ言語で作成せよとだけ…。
CPUっていうのは、coreのようなものでしょうか。
いま使っているのはcorei5です。
アセンブラはちょっとわからないですすみません…
Re: アセンブラわかる方いますでしょうか。基礎の基礎です。
Posted: 2017年6月26日(月) 23:01
by かずま
情報処理試験のアセンブラ(CASL II)ですね。
Re: アセンブラわかる方いますでしょうか。基礎の基礎です。
Posted: 2017年6月26日(月) 23:13
by 見習い
そうです!
Re: アセンブラわかる方いますでしょうか。基礎の基礎です。
Posted: 2017年6月27日(火) 00:17
by 白い変人
偶々、家に昔使った基本情報の参考書が有ったので、CASLⅡの仕様を見てみたのですが、「TEST START MAIN」という書き方はOKなのか疑問でした。(もしかするとOKなのかも分からないけど。)
STARTの後に来るオペランドは[実行開始番地]と定義されており、[実行開始番地]を定義する命令も必要とされているみたいだからです。
それで、質問者様は恐らくMAINをラベルとして定義したかったのかもしれませんが、言語仕様を見た所、行の種類にはラベルは省略可であっても、他に必須項目が有る様です。
つまり、MAINだけを書いてラベルとして[実行開始番地]を定義するという事は言語仕様上不可能と思われます。
それで、動作(と言っても存在しない機械らしいですけど。)するように添削しますと、
コード:
TEST START
LD GR1,X
SLL GR1,2
ADDL GR1,X
RET
X DC 1
END
これで、十分な気がします。
Re: アセンブラわかる方いますでしょうか。基礎の基礎です。
Posted: 2017年6月27日(火) 01:18
by 見習い
そうなんですね。わさわざすみません…(;_;)
助かりますありがとうございます!