• 締切済み

アセンブリ言語の問題について質問します。

アセンブリ言語の問題について質問します。 言語はCOMETIIのCASLIIです。 今現在、LD.ST,LAD,AND,OR,XOR,比較,分岐命令まで習った段階です。 問題は (1)A番地からNブロック分(1ブロック256語)のメモリに、 それぞれのアドレスの下位バイトの値(#00~#FF)を書き込み (2)書き込まれたNブロック分のメモリの内容を、 B番地からNブロック分のメモリに転送するプログラムを完成させよ。 ただしAは#8100,Bは#8500,Nは2をDC命令で設定のこと。 宜しくお願いします!

noname#119744
noname#119744

みんなの回答

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.2

それで、質問は何? 問題は書いてありますが、肝心な質問がありません。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

http://www.jitec.jp/1_20casl2/casl2dl_001.html CASLIIシュミレータをダウンロードしましたか?。 とっかかりが分らないのなら、 情報処理試験の過去の問題を見てこれに近い事例があるか探してみる、 なにか自分でやってみることです。 「書き込み」はxx命令、「書き込まれた」はxx命令を使うだろう、 そんなところから探ってみる。 LDはどういうときに使っている、 STはどういうときに使っている、 ・・・・ 使われ方からも整理してみる。 どこまでできて、どこまでできてないか明確にする。

関連するQ&A

  • アセンブリ言語について

    現在電気工学科の学生です。アセンブリ言語の講義を受けているんですが、試験で単位が取れる自信がありません。。。全くわからないことだらけです。C言語に関してはほんの触りだけ勉強したことがありますが、アセンブラ言語については全くの素人です。演習問題があるんですが、色々本等で探しても見つかりませんでした・・・私の努力不足かもしれませんが、問題の解答と解説を教えて欲しいです。 問題は→メモリアドレス3000H~30FFHの内容(データ)を2000Hから始まるメモリアドレスにコピー(格納)するプログラムをアセンブリ言語で書いてください!それとこの問題には参考のためにアセンブリ言語の命令の例があるんですが LD A、(BC) LD A、(DE) LD A、(HL) って書いてあるんですが、このBCやDE,HLはどんな意味があるんでしょうか?初歩的なことばかりで申し訳ありませんが、ご教授よろしくお願いします。

  • アセンブリ言語の問題がわかりません

    #8100番地から2ブロック分のメモリに、それぞれのアドレスの、下位バイトの値(#00~#FF)を書き込み,書き込まれた2ブロック分のメモリ内容を、#8500番地から2ブロック分のメモリに転送するプログラムを作成する。 上記の問題がよくわからなくって。。 わかる方、回答お願いします おそらく #8100番地(#0000)~#82FF番地(#00FF) と入力し、それを #8500番地~#86FF番地に移動させるんだと思います。

  • アセンブリ言語でのプログラミングの質問です

    私は、現在情報工学科の学生です。現在学校でアセンブリの授業を受講しているのですが、どうしてもこの問題の掛け算の仕方のプログラミングがわかりません。私も自分でできる限り考え、教科書や書物を読んでみましたが掛け算というものが、どうすれば表せるのかがわからず、ここで質問しました。問題の回答と解説を教えてください、お願いします。 9000H番地の1バイトデータをA、9001H番地の1バイトデータをBとしたとき、AxBを16ビットで求め、下位1バイトを9002H番地、上位1バイトを9003H番地に格納するプログラムを作りなさい。またこのプログラムの実行時間をデータがA=65H、B=0AEHのときに計算しなさい。実行時間の計算では各命令の実行回数を示し、計算式を詳しく書くこと。

  • 機械語とアセンブリ言語について。

    (機械語データ) (アセンブリ言語) b8 57 61 6b 61 mov $0x616b6157,%eax 53 push %ebx 50 push %eax ba 04 00 00 00 mov $0x4,%edx bb 01 00 00 00 mov $0x1,%ebx b8 04 00 00 00 mov $0x4,%eax 89 e1 mov %esp,%ecx cd 80 int $0x80 58 pop %eax 31 c0 xor %eax,%eax 5b pop %ebx c3 ret こちらのアセンブリ言語の命令がわかるおすすめの書籍を知らないでしょうか? 教えていただけないでしょうか?すみません。

  • CASLIIでLADやSTなどの命令の読み方がよくわからない

    LD GR6,GR1 LAD GR1,PARAM(8045番地にある) ST GR6,1,GR1 GR1は4という内容、PARAMは8045番地にあるとします。 ST命令ならば、GR6の内容を(1+GR1)へ入れると読むのでしょうが、 「8046番地に入れる」と読むのでしょうか。 しかし、8046番地にはEND命令があり、わけがわからないです。 まだ、CASLIIの初心者であり、読みなれていません。 よろしくお願いします。

  • アセンブリ言語にて、

    アセンブリ言語にて、 「乗算Z←X×Yを、 ビットシフト(ROT命令ほか)で用いた計算手順と、 加算(ADD命令)の各長所、短所を比較しなさい」 という問題の答えがわかりません・・・ 教えていただけませんか?

  • アセンブリ言語について。

    >2進数の羅列では人間にはあまりに読み書きしにくいからです。 >それを命令単位に区切って、英単語を元にした名前を与えたのが、 >アセンブリ言語です。 ニーモニックとは、その命令の名前の事です。 簡潔に要点がまとまっている、すばらしい説明ですね。その通りです。 これで理解できないなら、追加の説明のしようがありません。 (なお、このように、他人の発言は引用符を付けて引用すると、わかりやすくなります。是非そうしてください。) まあ具体例を挙げるならこんな感じ。 (機械語データ) (アセンブリ言語) b8 57 61 6b 61 mov $0x616b6157,%eax 53 push %ebx 50 push %eax ba 04 00 00 00 mov $0x4,%edx bb 01 00 00 00 mov $0x1,%ebx b8 04 00 00 00 mov $0x4,%eax 89 e1 mov %esp,%ecx cd 80 int $0x80 58 pop %eax 31 c0 xor %eax,%eax 5b pop %ebx c3 ret 人間がCPUを直接動かすプログラムを書こうとするとき、アセンブリ言語を使って書きます(右側の部分)。 mov $0x616b6157,%eax push %ebx push %eax mov $0x4,%edx mov $0x1,%ebx mov $0x4,%eax mov %esp,%ecx int $0x80 pop %eax xor %eax,%eax pop %ebx ret そしてこれをアセンブルすると、1対1対応した機械語のデータ列が出来ます。 それが b8 57 61 6b 61 53 50 ba 04 00 00 00 bb 01 00 00 00 b8 04 00 00 00 89 e1 cd 80 58 31 c0 5b c3 この部分。 機械語には改行なんてありませんから、実際は一連の b8 57 61 6b 61 53 50 ba 04 00 00 00 bb 01 00 00 00 b8 04 00 00 00 89 e1 cd 80 58 31 c0 5b c3 と言うデータ列になります。 これをCPUが実行していきます。 相当熟練した人で無ければ、このデータ列を見るだけでプログラム構造を理解する、というわけに行きません。 なので、人間が機械語レベルでプログラミングする際には、アセンブリ言語を使います。 ※この回答のプログラムはこちらから引用しました。 >31バイトでつくるアセンブラプログラミング アセンブラ短歌の世界 >https://book.mynavi.jp/support/pc/4946/c01_assembra.pdf で、機械語データは、なぜ、0と 1だけではないのでしょうか?教えていただけないでしょうか?すみません。

  • 機械語からアセンブリ言語への変換の仕方を教えてください

    CASLIIを学んでいるのですが、命令後の表(画像)を使って プログラムの一部 ADDA GR1,GR1 を手動で機械語 (16進)に変換すると、 2411 になるようなのですが、どのように変換するのでしょうか? ネットで調べてみたのですが”機械語の命令(変換)表で命令と語数を確認しながら,アセンブリ言語の表記にします。”と省略されていて詳しく解説してあるページが見つからなかったので、教えていただけませんか? ーーーーーーー 機械語の命令(変換)表 http://www.jitec.jp/1_13download/hani20061107.pdf (32 ページに機械語とアセンブリ言語の命令の対応表があります)

  • アセンブリ言語で

    if( a == b){ …… } else { …… } というのをアセンブリ言語にするなら、 beq を使うより bneを使う方が効率が良いと、ある本に書いてあったのですが、なぜですか???

  • アセンブリ言語について。

    これが何をしているのか教えていただけないでしょうか?すみません。 これの事です。 (機械語データ) (アセンブリ言語) b8 57 61 6b 61 mov $0x616b6157,%eax 53 push %ebx 50 push %eax ba 04 00 00 00 mov $0x4,%edx bb 01 00 00 00 mov $0x1,%ebx b8 04 00 00 00 mov $0x4,%eax 89 e1 mov %esp,%ecx cd 80 int $0x80 58 pop %eax 31 c0 xor %eax,%eax 5b pop %ebx c3 ret

専門家に質問してみよう