• ベストアンサー

アセンブリ言語プログラムの課題

先日アセンブリ言語プログラムについての課題が出て、プログラムコードを書くことはできたのですが、「考察」の欄で詰まっています。 ここの過去の質問(http://oshiete1.goo.ne.jp/qa3089577.html)も見てみたのですがよく分かりません。 どのようなことを書けばいいのでしょうか? 「高級言語と違う点」とかでしょうか・・・。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

素直に考えたら「この課題をこうプログラムした理由」とか、 そのプログラム自体の解説とかじゃないかと。 たとえば、「●の部分はこういうアルゴリズムを用いて~」とか アセンブラなので、そういうのがないとプログラミングの意図を伝えることは難しいでしょうし。 >「高級言語と違う点」とかでしょうか・・・。 授業の流れで「高級言語→アセンブリ」というながれがあってその上での課題であれば(たとえば以前同じ課題を別言語でやったとか)そういう視点は必要だとは思いますが、そうでないなら入らないんじゃないかと。

num_ruke
質問者

お礼

お礼が遅くなり申し訳ございませんm(_)m 参考にいたします、ありがとうございます!

関連するQ&A

  • アセンブリ言語は原始プログラムですか?

    質問(1) アセンブリ言語というのは、 add $S1, $S2 みたいなやつですよね? wikipediaで「ソースコード(ソースプログラム、原始プログラム)」の注釈1,2を読むと、 注1:【機械語の命令に記述するアセンブリ言語(アセンブラ)が存在するが、このアセンブラ用の文字列で記述されたプログラムはソースコードとは呼ばれないのが普通である。】 注2:【アセンブリ言語で書かれたプログラムはソースコードと呼ばれない】 と書かれてあります。 でも、 他の教材では アセンブリ言語で書かれたプログラム(原始プログラム) と書かれています。 どっちが正しいのでしょうか? 質問(2) 目的プログラム(オブジェクトプログラム)とは、 IT用語辞典によると 【オブジェクトプログラムとは、ソースプログラム(人間が認識できるプログラム言語で高水準言語など?)をコンパイラで機械語に翻訳したプログラムのことである】 とありますが、 ソースプログラムをコンパイラで翻訳するとアセンブリ言語になるんではないのですか? そのアセンブリ言語をアセンブラで翻訳して機械語になるのではないのでしょうか? どなたかご教授ください。 お願いします。

  • アセンブリ言語とC言語

    アセンブリ言語とC言語について調べているのですが、この二つ言語のプログラムについて実質的に同じと言えることはなんでしょうか? また異なっていることはなんでしょうか?(たとえばアセンブリは低級言語であり、C言語は高級言語であるなどなんでもいいです。) 是非解答お願いします。

  • 高級言語がアセンブリ言語に比べて有利な点を教えてください

    高級言語がアセンブリ言語に比べて有利な点を詳しく教えてください。

  • アセンブリでのプログラム

    Z80CPUのポケコン(確かSHARP PC-G850V) でアセンブリ言語のプログラムを作成しています。ポートに接続されている基盤のスイッチの値によって、その基盤のLEDの点滅時間を変更するプログラムの課題が出たのですが、まったく分かりません。 できればプログラムそのものを書いてもらえれば嬉しいのですが、流れ図だけでも結構です。 よろしくお願いします。 ポートに接続されている基盤は、LED(4つ)、ブザー、スイッチ(4つ)などといったごく一般的な物です。

  • アセンブリ言語の問題

    アセンブリ言語のプログラムの実行開始番地が0番地以外、というのはあり得ることなのでしょうか(例1:10番地よりプログラムが実行開始)。 また、データが格納されている番地からプログラムを開始することは可能なのでしょうか(例2:上記の例1の状態で、10番地には整数データである「0」が格納されている)。 授業で習っていてわからない点です。CPUなどについては先生から一切説明されていませんが、ご回答お待ちしております。 初めての質問で至らない点がございますが、ご了承ください。

  • アセンブリのプログラムです。

    アセンブリのプログラムで質問があります。cのプログラムのオブジェクトファイルを生成して、objdumpというコマンドでアセンブリ言語を表示させてみたのですが、全然分からなくて、困っています 。どうか、アセンブリプログラムの、解説をよろしくお願いします。できれば、1文1文解説してもらえるとありがたいです。あと、スタックの動き、確保などの解説もあるとありがたいです。よろしくお願いします。 cのプログラム int fact(int p) { if(p<=1) return 1; else return fact(p-1); } アセンブリのプログラム push %ebp mov %esp,%ebp sub $0x8,%esp cmpl $0x1,0x8(%ebp) jg 15 <_fact+0x15> movl $0x1,-0x4(%ebp) jmp 24 <_fact+0x24> mov 0x8(%ebp),%eax dec %eax mov %eax,(%esp) call 0 <_fact> mov %eax,-0x4(%ebp) mov -0x4(%ebp),%eax leave ret nop nop nop

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

    今の時代にアセンブリ言語について質問することをを許しください。 今大学生ですが、どうしてもアセンブリを理解して基礎を固めたいのです。 質問は下に示すページです。 http://wisdom.sakura.ne.jp/programming/asm/assembly22.html ここの最初のdos画面について。 レジスタを使わずに、メモリ間転送を連続したストリング操作で行っていますが、この例だと最初に \"Kitty on your lap\" という文字をオフセット200から設定しています。 そして、この文字列をオフセット300にコピーするようプログラムを組んでいますが、レジスタCX(カウントレジスタ)に11を設定しています。 CXに設定された回数コピーを行うため、このプログラムでは11回のストリング操作によるコピーを行っていると理解していますが、ここで疑問なのは\"Kitty on your lap\"がどう考えても11文字ではありません。 そして、疑問が消えないまま実行してみると正確に動作しました。(コピーされました。) なぜ11を設定し、正確に動作するのかを教えていただけると幸いです。よろしくお願いいたします。

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

    今の時代にアセンブリ言語について質問することをを許しください。 今大学生ですが、どうしてもアセンブリを理解して基礎を固めたいのです。 質問は下に示すページです。 http://wisdom.sakura.ne.jp/programming/asm/assembly22.html ここの最初のdos画面について。 レジスタを使わずに、メモリ間転送を連続したストリング操作で行っていますが、この例だと最初に "Kitty on your lap" という文字をオフセット200から設定しています。 そして、この文字列をオフセット300にコピーするようプログラムを組んでいますが、レジスタCX(カウントレジスタ)に11を設定しています。 CXに設定された回数コピーを行うため、このプログラムでは11回のストリング操作によるコピーを行っていると理解していますが、ここで疑問なのは"Kitty on your lap"がどう考えても11文字ではありません。 そして、疑問が消えないまま実行してみると正確に動作しました。(コピーされました。) なぜ11を設定し、正確に動作するのかを教えていただけると幸いです。よろしくお願いいたします。

  • アセンブリ言語のラベルについて

    MASMアセンブラを使ってアセンブリ言語の勉強を始めました。 ラベルについてなのですが、以下のようなコードがあります。 msg db "ABCD" これは、msgという名前でメモリに4バイト確保して文字列で初期化するということだと分かりました。 そこで質問なのですが、msgというのはこの文字列の先頭アドレスを表すということですが、このmsgは上記の"ABCD"のようにメモリに領域を確保されて保存されているものなのでしょうか(C言語のポインタのようなもの)。 それとも、即値のように直接ソースコード上に書かれているものなのでしょうか。(つまり、アセンブルをするとソースコード上のmsgが"ABCD"の先頭アドレスに置き換わるようなことがおこるのでしょうか) 言葉足らずですみませんが、よろしくお願いします。

  • アセンブリ言語で変数を正しく使えない

    アセンブリ言語の勉強をして、小文字のaからzまでを表示するプログラムを書いています。今回、以下のようなコードを書きました。 org 100h mov dl, 61h           ;'a'のコード Disp: mov ah, 02h          ;1文字表示 int 21h inc dl                ;dlレジスタ内の文字コードをインクリメント cmp dl, 7Ah+1           ;dlレジスタ内のコードと'z'の文字コードを比較 jnz Disp              ;一致しなければループ mov ah, 4Ch int 21h sCode db 61h eCode db 7Ah ここで連続表示する文字の始点と終点をあとで変更することになった場合を考え、最後の2行にsCode(始点となる文字コード)とeCode(終点となる文字コード)という2つの変数を設定しました。しかしこれらをそれぞれコード中の即値61hと7Ahと置き換えるとうまく動作しません。何も文字が表示されずに終わってしまいます。これは何故なのでしょうか?

専門家に質問してみよう