プロが教える店舗&オフィスのセキュリティ対策術

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

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

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

よろしくお願いできればと思います。

質問者からの補足コメント

  • うーん・・・

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

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/06/06 11:07

A 回答 (3件)

ツッコミどころ満載ですが、目についたところを幾つか


>実行形式のバイナリファイルそのままを
>バイナリエディタや専用エディタで編集します。

今は普通そんなことはしません。実行形式に精通して
直接編集するなんて相当な変態です(^-^;
#45年程前なら私もやってましたが・・・
ふつうはアセンブラ、コンパイラ、リンカにお任せです。

>マクロ命令でマシン語コードを記述出来ます。
マクロ命令は予め定義しておいた命令列
に置き換わるもの。
同じ命令列をあちこちに書くのがめんどくさい時、
楽する為のものです。
    • good
    • 0

> コーディングとは、コンピュータにコード入力する事を言います。



うぅ~ん。コーディングとは必ずしもコンピュータを使ってソースコードが書かれたファイルを作成することではないです。
紙と鉛筆を使ってソースコードを書くのもコーディングです。

ちなみに私がコンピューターの勉強をはじめたころはコーディング用紙というものがありました。少し大きな文房具店に行くとレポート用紙のような感じのコクヨのコーディング用紙を売ってました。
就職すると会社には会社専用のコーディング用紙がありました。汎用機など機種ごと(正確にはOSの種類ごと)にあったですかね。


> ①テキストファイルとは何でしょうか?

文字コードのみで出来ているファイルのことです。
以下参考に。

https://ja.wikipedia.org/wiki/%E3%83%86%E3%82%AD …



> ② マシン語は、基本的にはテキストファイルではなく、実行形式のバイナリファイルそのままをバイナリエディタや専用エディタで編集します。 C言語中のインラインアセンブラのように、そこにマクロ命令でマシン語を書き込む事も出来るには出来ます。 勿論、マクロアセンブラ(MASM)のようなアセンブリ言語でもマクロ命令でマシン語コードを記述出来ます。
> ここの意味がわかりません。もう少し詳しく教えて頂きたいです。

すみません。
書かれている日本語文章の意味がよくわからず・・・。(^^;

ソースコードをコンパイル&リンクしてできた実行ファイルの内容は機械語を含み、この実行ファイルの内容を直接編集するエディター・ソフトウェアや統合開発環境があります。
その場合、機械語のバイナリコードを直接操作するといってもマンマシンインタフェースとしてはキーボードで半角英数字を使って16進の値を入力すると、使用しているエディター・ソフトウェアや統合開発環境が指定された場所の値を指定された値(0と1で表現される値)で上書きするというわけです。


> ③チェックサムとは何でしょうか?

「誤り検出符号」です。
通信で使用されることが多く、送信データの内容からある方法で算出される値を送信の先頭や最後に付加し、受信側で受信したデータに対して同じ処理を行って得られたチェックサムの値と、受診したチェックサムの値が同じかを確認することで送信したデータが正しく受信されたことを確かめるために使用します。
データのコピーなどでも使用する場合があります。
以下参考に。

https://e-words.jp/w/%E3%83%81%E3%82%A7%E3%83%83 …
https://ja.wikipedia.org/wiki/%E3%83%81%E3%82%A7 …


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

この部分のご質問は何でしょう?
ちなみに文字コードはコードの種類で異なります。
JISコードは7bit表記でShift-JISは8bit表記です。
また、1バイトで表現できるのは基本的に半角英数字で、日本語や中国語、アラビア語など多くの文字では1文字を2バイトで表現します。そういった多言語に対応した文字コードとしてUnicodeがあります。
機械語は機種によってことなりますが、命令の種類が100以上あることはないのでxffまで使い切っている機種はありません。
なお、昨今のCPUはパソコン用でも32bitや64bit・・・「どの部分のデータに対して何を行う」という1つの命令の長さが32bitや64bitですので「どの部分」を示すアドレス表記は1バイトではありません。

参考まで。
この回答への補足あり
    • good
    • 0
この回答へのお礼

> ④テキストは文字コードが割り当てられた、16進数でいう0x20~7f のものです。
マシンコードは8bitなら全部 0x00~oxff 全部の値があり得ます
は、
以下のURLのご質問です。
https://oshiete.goo.ne.jp/qa/12396879.html
教えていただけないでしょうか?すみません。

お礼日時:2021/06/06 10:59

同じ質問がすでにされ、ベストアンサーもされていますが、何一つ疑問が解決しなかったんですか?


少しくらい調べろレベルの発言も受けてましたが、自ら、テキストファイルとは、バイナリファイルとは、チェックサムとは、16進数とは、などとお調べになったでしょうか。
    • good
    • 0
この回答へのお礼

すみません。①と③は自己解決しましたが、②と④については不明です。
④については、8ビットのアスキーコード表かなと思うのですが、どこに載っているのでしょうか?教えていただけないでしょうか?すみません。

お礼日時:2021/06/06 10:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!