DOBON.NETプログラミング道掲示板
(現在 過去ログ5 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■34760 / inTopicNo.1)  コーディングについて。
  
□投稿者/ コルム 一般人(1回)-(2021/06/08(Tue) 16:14:26)
  • アイコン
    分類:[その他] 

    コーディングとは、コンピュータにコード入力する事を言います。 転じてプログラミングの意味で使われますが、プログラムコードを書くこと全般を言います。 プログラムコードはふつうソースコードと呼びます。 ソースコードとは普通はテキストファイルの形で保存されるコードのことです。 アセンブリ言語もテキストファイルに書き込んでゆきます。 マシン語は、基本的にはテキストファイルではなく、実行形式のバイナリファイルそのままをバイナリエディタや専用エディタで編集します。 C言語中のインラインアセンブラのように、そこにマクロ命令でマシン語を書き込む事も出来るには出来ます。 勿論、マクロアセンブラ(MASM)のようなアセンブリ言語でもマクロ命令でマシン語コードを記述出来ます。 大昔まで言えば、穿孔テープを使っていた頃のコンピュータなら、テープに穴を空ける作業もコーディングです。 穿孔テープは穴の有無を2進数で示していて、そこに必要に応じてチェックサムなどを付けたものですが、これは紛れもなくマシン語です。 これら全てを総じてコーディングと呼びます。 ですから、アセンブリ言語もマシン語もそれを書くことはコーディングです。

    以下四つの質問に答えていただけると幸いです。
    @テキストファイルとは何でしょうか?
    A マシン語は、基本的にはテキストファイルではなく、実行形式のバイナリファイルそのままをバイナリエディタや専用エディタで編集します。 C言語中のインラインアセンブラのように、そこにマクロ命令でマシン語を書き込む事も出来るには出来ます。 勿論、マクロアセンブラ(MASM)のようなアセンブリ言語でもマクロ命令でマシン語コードを記述出来ます。
    ここの意味がわかりません。もう少し詳しく教えて頂きたいです。
    Bチェックサムとは何でしょうか?
    よろしくお願いします。

    Cテキストは文字コードが割り当てられた、16進数でいう0x20〜7f のものです。
    マシンコードは8bitなら全部 0x00〜oxff 全部の値があり得ます

    よろしくお願いできればと思います。
    引用先
    https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10244362355

引用返信 削除キー/
■34761 / inTopicNo.2)  Re[1]: コーディングについて。
□投稿者/ 魔界の仮面弁士 大御所(1345回)-(2021/06/08(Tue) 17:48:25)
  • アイコンNo34760に返信(コルムさんの記事)
    > 引用先
    > https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10244362355

    引用なのか、それともマルチポストなのか…。


    > @テキストファイルとは何でしょうか?
    可読文字のデータのみで構成されたファイルのことです。

    テキストファイルは、バイナリファイルの一種ではありますが、多くの場合、
    テキストファイルの対義語としてバイナリファイルという言葉が使われます。

    同じ文字であっても、「文字コード」が異なれば、データ化した時のバイナリ列は異なります。
    また、そのバイナリ内容から、どの文字コードで保存されたデータなのかを完全に判断することはできません。

    たとえば ASCII という文字コードで「+XwFY6w-」という 8 文字をファイルに保存すると
    2B,58,77,46,59,36,77,2D という 8 バイトのテキストファイルが生成されるのですが、
    これを ASCII ではなく、誤って UTF-7 でデコードしてしまうと、
    「弁士」という 2 文字として解釈されることになります。

    あるいは、EUC-JP という文字コードで「珎瑕」という 2 文字をファイルに保存すると
    E0,DD,E0,EA で示される 4 バイトのテキストファイルとなりますが、
    これを Shift_JIS でデコードすると「珈琲」という 2 文字に化けることになります。


    > Bチェックサムとは何でしょうか?
    入力ミスやデータの破損を防ぐために使われる、検算の仕組みの一つです。

    元データのそれぞれの値を足し合わせた「合計値」を記録しておき、
    それをチェックサム値として、元データと共に受け渡します。

    データを受け取る側は、受け取ったデータを同じように計算して、
    合計値が異なっていれば、データが間違っていることを検出できるわけです。

    チェックサムと似たような仕組みとして、
    チェックデジットという物もあります。こちらの説明は省略。


    > Cテキストは文字コードが割り当てられた、16進数でいう0x20〜7f のものです。
    これは正確な表現ではありませんね。

    恐らくは ASCII などの 7bit 系の文字コードを指した説明だとは思いますが、
    ほとんどの文字コードにおいては、「タブ文字」や「改行文字」のために、
    0x00〜0x1f の範囲が割り当てられることがあるためです。

    また、8bit 系の文字コードでは 0x80〜0xff の範囲も使われることになります。
引用返信 削除キー/
■34764 / inTopicNo.3)  Re[2]: コーディングについて。
□投稿者/ コルム 一般人(2回)-(2021/06/09(Wed) 03:18:12)
  • アイコンNo34761に返信(魔界の仮面弁士さんの記事)
    Aについて教えていただけないでしょうか?すみません。
引用返信 削除キー/
■34821 / inTopicNo.4)  Re[3]: コーディングについて。
□投稿者/ Heiki 一般人(3回)-(2021/07/02(Fri) 21:22:10)
  • アイコンNo34764に返信(コルムさんの記事)
    > ■No34761に返信(魔界の仮面弁士さんの記事)
    > Aについて教えていただけないでしょうか?すみません。
    すみません 横から失礼します。
    > マシン語は、基本的にはテキストファイルではなく、実行形式のバイナリファイルそのままをバイナリエディタや専用エディタで編集します。
    これは、マシン語は人間が読んだり書いたりできるようなものではないので、文章用であるテキストエディタでは編集に向きません。そのため、マシン語はマシン語に特化したバイナリエディタで編集するのです。

    > C言語中のインラインアセンブラのように、そこにマクロ命令でマシン語を書き込む事も出来るには出来ます。
    これは、gccなどのCコンパイラにある機能で、C言語にない命令(例えばHLTなど)をC言語のソースコードに記述するときに用います。
    asm("hlt");
    を使うとインラインアセンブラが使えます。ただし、VC++では書き方が異なります。

    > 勿論、マクロアセンブラ(MASM)のようなアセンブリ言語でもマクロ命令でマシン語コードを記述出来ます。
    これは直接埋め込むということでいいでしょうか?
    それはできます。これもまた書き方はアセンブラ依存なので、MASMとNASMでは書き方が異なります。
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -