7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アセンブラの記事を1,000集め、いいね(LGTM:look goods to me)を1,000に、Viewsを100,000にする計画を立てた。

この記事の重複があれば、適当に調整して、計数は重複なしにしようと思った。
現在、確認中。

目標達成できずにめげるといけない。
現在、どの記事を集計すれば、その値に達するかの表を作ってみた。
目標はあくまでアセンブラだけ。

Title items views goods stocks
アセンブラへの道 https://qiita.com/kaizen_nagoya/items/46f2333c2647b0e692b2 340 31105 321 343
アセンブラへの道(2) https://qiita.com/kaizen_nagoya/items/2a0bd88216bc51278be5 130 1585 11 13
アセンブラ入門への入り口 https://qiita.com/kaizen_nagoya/items/0bf939143593fbb7114a 1630 6 3
CPUの歴史と言語・OS・ネットワーク<書きかけ> https://qiita.com/kaizen_nagoya/items/0148d8a07dfea115dbbe 1102 3 4
プログラミング言語教育のXYZ。Youtube(1) 仮説・検証(52) https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4 4953 7 14
65歳からのプログラミング入門。docker(126)転職(16) https://qiita.com/kaizen_nagoya/items/1561f910c275b22d7c9f 40126 725 554
50歳からのプログラミング言語入門。docker(152) https://qiita.com/kaizen_nagoya/items/5c7cec79cb3b15237076 1588 9 5
RTL設計スタイルガイド Verilog HDL編(System Verilog対応版)https://qiita.com/kaizen_nagoya/items/4c02f1575db1f28310a7 25274 48 43
C言語(C++)の理解、溶解、爽快。仮説・検証(173) https://qiita.com/kaizen_nagoya/items/3f3992c9722c1cee2e3a 10053 63 65
合計 470 117416 1193 1044
目標 1000 100,000 1000 1000
アセンブラだけ 470 34320 338 359

アセンブラへの道入り口

https://researchmap.jp/blogs/blog_entries/view/78451/f56954643a2e9f7907fcc45fe87009c4?frame_id=407644
https://researchmap.jp/jowkoc1zp-45644/

という記事を2012年に記述してから6年経過した。
Qiitaのアセンブラの記事の少なさから、

Qiitaで組立語(assembler)・機械語(machine language)・CPU<アセンブラへの道>
アセンブラへの道
https://qiita.com/kaizen_nagoya/items/46f2333c2647b0e692b2

という記事で整理を始めた。量が多くなり、編集速度が極端に落ちた。一部分割した。

アセンブラへの道(2)
https://qiita.com/kaizen_nagoya/items/2a0bd88216bc51278be5

信頼性:ソフトウェアとコンピュータ

ソフトウェアのオープンソースの信頼性を高めるためには、コンピュータの信頼性を確保することが基礎になると考えています。

コンピュータの基礎は、論理回路です。論理回路は、Verilog-HDL,VHDLで記述できます。System C(C++)でも記述できます。
これらの記述のソースコードもオープンになっている場合があります。

機械語、アセンブラ

コンピュータとソフトウェアの接点は、機械語,あるいはアセンブラです。

ここで機械語は0と1で記述できるものと、0と1で記述したものの16進表記とします。

16進表記したものと、1対1対応できる文字で表記したものをアセンブラとします。

では、どういう順番に勉強するとよいか、いくつかの道があると思います。

1 直球勝負:CPUの創りかた

機械語を定義し、論理回路を作る。
51ATDABNHEL.SL160.jpg

CPUの創りかた, 渡波 郁, 毎日コミュニケーションズ(2003/10/01)
https://www.amazon.co.jp/dp/4839909865

ここでは4ビットCPUを定義しています。TD4という命名です。

この派生で、2ビットCPUを定義された方がおみえです。
TD2という命名のようです。
「2bitCPUなので、処理は2bitで行います。命令は4種類です。レジスタはAレジスタのみとしました。命令フォーマットは、オペレーションコード2bit(■■)、イミディエイトデータ2bit(□□)の計4bit(■■□□)としました。入力ポート、出力ポートまでは面倒見切れないので省きました。ペンティアムにもI/Oの機能はありません。いい訳です。
 命令は次のようにしてみました。AはAレジスタ、Imはイミディエイトデータです。

   ADD A,Im 00 AレジスタにImを加算
   MOV A,Im 01 AレジスタにImを転送
   JNC Im  10 フラグが1ではないときにIm番地へジャンプ
   JMP Im  11 Im番地へジャンプ

回路図などもTD2の頁にあります。

演習問題 このアセンブラで、何種類のプログラムが書けるか。

そのプログラムの可能な振舞の種類はいくつあるか。

前提条件として、回路図の例だけでなく、どの番地から始めるかを指定できる仕組みがあってもよい。ただし、回路図以外の前提条件は、付加回路を記述するか、前提条件を記述すること。

フラグレジスタの定義は、回路を見れば解読できます。
ただし、フラグレジスタの定義を独自にしてもよい。例えば,加算して桁溢れでフラグレジスタが1になる。それ以外の計算でフラグが0になる。

リセット回路を複雑にしてもよい。例えば,リセット回路に,とび先番地を与えることができるようにしてもよい。イミーディエートデータでは、00, 01, 10,11番地にしかアクセスできない。リセット回路で、100番地の値を読んで,その番地から事項できるようにしてもよい。また、リセット実行時のフラグレジスタの値を101番地から読んで設定するようにしてもよい。

2 直近勝負

CPUは完全に定義し、試験してあることを前提に、ソフトウェアの挙動だけを検討する。

8ビットCPU

intel8080,
intel 8085,
ザイログZ80
モトローラ6809,
MOS Technology 6502
日立 H8

16ビットCPU

intel 8086
モトローラ MC68000
DEC PDP-11
三菱電機 M16C
NEC V30

32ビットCPU

DEC VAX
intel 80386
モトローラ MC68030
サン SPARC
アーム ARM7
IBM PowerPC
MIPS

64bit

インテル X86-64
アーム ARM64

3 仮説勝負

実在しないCPUの命令後体系を考える。
プログラミング言語に適したCPUを想定し、実装が存在しないか、ソフトウェアのシミュレータだけ。
あるいは、過去には存在していたが、現在はシミュレータだけのもの。

参考資料

RUST入門
https://qiita.com/kaizen_nagoya/items/b3a42bf5a849dabe52c5

Ethernet 記事一覧 Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網(Wi-Fi)空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

C++ Support(0) 
https://qiita.com/kaizen_nagoya/items/8720d26f762369a80514

Coding Rules(0) C Secure , MISRA and so on
https://qiita.com/kaizen_nagoya/items/400725644a8a0e90fbb0

Autosar Guidelines C++14 example code compile list(1-169)
https://qiita.com/kaizen_nagoya/items/8ccbf6675c3494d57a76

Error一覧(C/C++, python, bash...) Error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4

プログラムちょい替え(0)一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

小川清最終講義、小川清最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53

文書履歴

1.0 researchmapにて 20120422
2.0 Qiita初稿 20180716
2.1 リンク切れて異性 20211014
2.2 アセンブラ集計表追加 20211016
2.3 みだし整形 20211019

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?