目的(purpose)
Qiitaのアセンブラの記事が少ないのを嘆くのではなく、
アセンブラに関するどういう記事を掲載すると、
抜け漏れなく、アセンブラに関する情報提供ができるかを確認する。
成果(outcome)
10以上のCPUのアセンブラ、アセンブラに関する10以上の視点が提供できるまで一覧を作り、ないものは記事も書く。記事数が100(20180704到達済) 200(201807xx到達予定)1000になるまで収集する。
鍵語(keyword)
アセンブラ アセンブリ アセンブリ言語 機械語 逆アセンブラ デバッガ リンカ ロケータ 装置運転者(device driver) 起動処理(boot) CPU FPU GPU DSP 論理回路
視点(view point)
(0)16進数(hexadecimal number)
(1)機械語(machine language)
(2)組立語(assembler)
nasmなど
(3)除虫(debug)
debugなど
例:debugコマンド(MS DOS)
https://qiita.com/kaizen_nagoya/items/31542d281d16d135df66
(4)逆組立器(dis assembler)
例:「項書き換え機能付きプログラム」のディスアセンブラの作成
https://qiita.com/kaizen_nagoya/items/8b8fe645b06bc7eccefb
(5)連結器(linker)、配置器(locator)
(6)C/C++との連携
(7)OS, カーネルでの利用
TOPPERSなど
例:TOPPERS/SSPカーネルソース勉強会(1) start.S
https://qiita.com/kaizen_nagoya/items/fa0d482bfaacf37dbe62
(8)アセンブラで書いた道具類(OS,カーネルを除く)
VZなど
例:VZエディタ移植に当たって実施したことと成果
https://qiita.com/kaizen_nagoya/items/5551be98dcbed8f41949
(9)アセンブラを書くための道具類(アセンブラ、ディスアセンブラ、リンカ、ロケータを除く)
(10)応用(application)
例:電動機制御(motor controll)算譜設計(program design)における3つの罠6つの教訓(実機)
https://qiita.com/kaizen_nagoya/items/b39b6b7ba0d90dff471d
(11) 中央処理装置(central processing unit)
x86, arm, caslII, avr. 8080, z80, pdp11, powerpc, mips
(12) 論理回路(logic circuit), Verilog-HDL, VHDL
例:RTL設計スタイルガイド Verilog HDL編(System Verilog対応版)
https://qiita.com/kaizen_nagoya/items/4c02f1575db1f28310a7
背景(back ground)
プログラミング言語教育のXYZ
https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4
プログラミング言語教育のXYZ(youtube)
https://www.youtube.com/watch?v=He1_tg4px-w&t=486s
で、アセンブラが得意と言った割に、アセンブラの記事を書いてないことに気が付いた。調べて見るとQiitaでアセンブラの記事が少ないことに驚いて整理し始めました。
注記(note)
略号のfull spellは、語源を知る上で付記。現在有効でない場合もある。
より良い略号のfull spell提案は歓迎。このfull spellは有効でないというだけの言及には対応できません。ごめんなさい。
入門(introduction)
基礎からやりなおしメモ 【アセンブラ/CPUの挙動】
https://qiita.com/yuri_RN/items/e4a0849e8d0bbd7ac87b
ざっくりアセンブラ入門
https://qiita.com/kazukichi/items/201b0c7fdf3d3aa576c7
感想(impression):
「ハーバード型では、プログラム(命令)を格納するメモリとデータを格納するメモリが別になっている。
家に冷蔵庫が2つある感じ。」に違和感。プログラムを格納するメモリは、項書き換えプログラムでない場合には出すだけで入れない。データは出し入れするので冷蔵庫の比喩は妥当。
組み込み開発においてインラインアセンブラを挿入する際の2つの落とし穴
https://qiita.com/moricy/items/1c94f95fbbf9a90c7b3a
記録(record):
どのCPUのアセンブラかの記載がない。
いまどきのプログラマーがアセンブリを学ぶ意味ある?
https://qiita.com/Nekonecode/items/6819914396db9c925d47
覚書(notes):
ハードウェアの不具合があった時、ソフトウェアの不具合があった時、機械語またはアセンブラがわかっていれば、切り抜けられることがある。(後日整理予定)
16進数(hexadecimal number)
機械語命令を16進数表示することがあります。
それに対して、アセンブラは意味のある文字列に置き換えたものです。
アセンブラでも、データ部分は16進数で表現することが多くあります。
そこで、十16進数に馴染むことは、機械語、アセンブラ理解の助けとなるでしょう。
2進数10進数16進数
https://qiita.com/inabe49/items/805c2d2bcd9e70c37ef6
長いビット列を16進数にする
https://qiita.com/tobira-code/items/b232ec35a28d3065f151
16進数と10進数の変換
https://qiita.com/roppy/items/54738fc42298b57703af
機械語(machine languate)
PDP-11による機械語入門
https://qiita.com/7shi/items/86724696518df3a174dc
VAXによる機械語入門
https://qiita.com/7shi/items/e43e8ce0b1a2cadee2a3
8086による機械語入門
https://qiita.com/7shi/items/b3911948f9d97b05395e
6502(MOS Technology)
6502アセンブル/逆アセンブル
https://qiita.com/fuzzball/items/2a7f46937bf723e7b953
ファミコンエミュレータの創り方 - Hello, World!編 -
https://qiita.com/bokuweb/items/1575337bef44ae82f4d3#cpu
AVR(Alf Egil Bogen, Vegard Wollan, RISC:Reduced Instruction Set Computer) by Atmel
AVR アセンブラ 命令セット
https://qiita.com/ohisama@github/items/90fc17064279901d0cd6
avrでsram
https://qiita.com/ohisama@github/items/bd56c7a678b435bd69ec
avrでeeprom
https://qiita.com/ohisama@github/items/dc4f9ceba5dc9decc0aa
avrでシリアル
https://qiita.com/ohisama@github/items/0806e8746403873a960e
ardino
arduinoでアセンブラ
https://qiita.com/ohisama@github/items/620b85d7fc71fa815a88
arduinoのasm命令でanalog readをする
https://qiita.com/crawd4274/items/8f8af1597698f0c5025a
PDP11(Programmed Data Processor)
アクティブパターンでPDP11のディスアセンブラを作る
https://qiita.com/h_sakurai/items/bedd794f39db6c6a0ea5
「文字列の終端はなぜヌルなのか 」を考察する
https://qiita.com/hironiwasm/items/60a00220c3d0de2cdc9a
CASLII(Comet Assemble Language)
情報処理技術者試験をアセンブラで受験した者です。
数十年前、COBOLでCASLのアセンブラ・シミュレータを作られた方があり、配布に協力していたことがあります。当時は、COBOLでアセンブラが作れることを知り、目から鱗でした。よく考えてみれば、文字処理が得意で、変換すればいいのだからできたものを見せてもらうと納得感がありました。CASLは小規模な系なので、役に立つ、立たないの二つの意見は拮抗するかもしれません。
私は役に立つ派というか、計算機は記憶するのが嫌いで計算機に記録させるために仕事にしています。CASLは仕様を試験時に配ってもらえました。仕様を覚えなくてはいけない他の言語は選択肢にありませんでした。
どんな言語を学ぶのであれ、情報処理試験の科目にない言語をお使いの方には、CASLのアセンブラ・シミュレータを作ることをお勧めしています。自分が得意な言語の技が磨けることと、試験に受かることの一挙両得という説明を差し上げるようにしています。自分がもう受験しないために、自分では作っておらず心苦しいですが、、、。
CASLとCOMETのfull spellを探しています。ご存知の方はご教授くださると幸いです。
最強のCASL2/COMET2環境
https://qiita.com/Maxfield_Walker/items/9f75cc16f938f2cd1844
ScalaでCASLIIとCOMETIIの実装してみた感想
https://qiita.com/matsutomu/items/bbf48ed8c48f6529f68a
C言語の勉強がてら、CASL II処理システムを実装した話
https://qiita.com/j8takagi/items/2db31b073cf1fbfd492f
「C言語で作るCPUエミュレータ」ダウンロードサイトがリンク切れ。
(紹介記事の一部は現在もある。http://coin.nikkeibp.co.jp/coin/itpro/hansoku/pdf/nsw200902_2.pdf)
( CASLIIのアセンブラとCOMETIIのシミュレータJAVA版はhttp://fry.no.coocan.jp/lecture/OS/cpuemulator.html )
DartでつくるCASL2逆アセンブラ
https://qiita.com/tatsu/items/2471b1f571b4a183c53f
「増やす減らす二倍する」をCASL IIで(横へな13参考)
https://qiita.com/pazworld/items/c7e31e73af1ef33c5b4a
CASL IIで遊ぶ 環境構築メモ
https://qiita.com/GakuYasui/items/dc2effb767ba7600c52a
Scala上でアセンブリでFizzBuzz
https://qiita.com/opengl-8080/items/175446822197eb727125
8080(Intel)
intel 8080 アセンブラ 命令セット
https://qiita.com/ohisama@github/items/c66231c3367227b31cbc
Z80(Zilog)
PC-850VSでZ80アセンブラ(1) Hello, Worldする
https://qiita.com/miminashi/items/3cbe1ff1b67d2ec27950
Z80 アセンブラからCの関数を呼ぶ
https://qiita.com/zan/items/5d2af3ea62b1da5b2a63
ズンドコキヨシ with Z80アセンブラ
https://qiita.com/fujitanozomu/items/6dc50538814168947801
x86(Intel)
16.05.24 アセンブリ言語の概要
https://qiita.com/shiiiiiiiii1/items/709b0240bfaef99be617
NOP WORD PTR?
https://qiita.com/jkr_2255/items/eaca341a80df845ef667
アセンブラに手を出してみる
https://qiita.com/edo_m18/items/83c63cd69f119d0b9831
ためしておぼえるアセンブラ入門
https://qiita.com/nirasan/items/65e8107ae21fcc36d0c9
アセンブラ学習log_1
https://qiita.com/diggymo/items/fe56f6ea357e5928a8ca
IA32(x86)汎用命令対応のアセンブラ実装方法(1)
https://qiita.com/hiroyuki-nagata/items/ec0f47df595631e41c5c
IA32(x86)汎用命令対応のアセンブラ実装方法(2)
https://qiita.com/hiroyuki-nagata/items/42ba3d797f8e29726bde
アセンブラ(32bit)でhello world
https://qiita.com/DQNEO/items/d450a3c43f55b79f292b
アセンブリ言語で様々なアーキテクチャ向けのHello,Worldプログラムを書こう!という話。
https://qiita.com/furandon_pig/items/8124979604ad97f544a4
Intel 8086 CPU 基礎
https://qiita.com/timwata/items/e7b7a18cc80b31fd940a
ブートストラップローダ領域でHello, World!
https://qiita.com/naoyoshinori/items/4f4850e721851ea5dc63
x87命令を使ってみる
https://qiita.com/kaityo256/items/1b59222e538335904b1c
x87 instruction setを使う
https://qiita.com/tobira-code/items/be9982c9a084b57182db
x86の浮動小数計算とSIMD命令の変遷
https://qiita.com/lpha_z/items/eafa9c13532c9ac80d4b
「はじめて読む486」を読んでみました。
https://qiita.com/saruo@github/items/38766661898fc2669669
ハードウェア乱数 RDRAND命令の使い方
https://qiita.com/Seizh/items/3e55b04e62d66808fd03
256-bit AVXのvpalignrについて
https://qiita.com/Seizh/items/94dda8c5b1724640af28
第一回 x86バイナリ入門
https://qiita.com/d-kami/items/603ad46184c7d6d44191
Linuxでx86アセンブラ by @MoriokaReimen
Linuxでx86アセンブラ(道具編) 2015年11月05日に投稿
http://qiita.com/MoriokaReimen/items/b316a68d76c1eafa18f8Linuxでx86アセンブラ(Cとの連携編)2015年11月07日に投稿
http://qiita.com/MoriokaReimen/items/590a4ddb3de15bfacb4bLinuxでx86アセンブラ(四則演算編)2015年11月14日に投稿
http://qiita.com/MoriokaReimen/items/4853587dcb9eb96fab62Linuxでx86アセンブラ(論理演算編) 2015年11月20日に投稿
http://qiita.com/MoriokaReimen/items/bf863585616ad0a0a969Linuxでx86アセンブラ(基本的なコードの構造編)2015年11月27日に投稿
http://qiita.com/MoriokaReimen/items/b320e6cc82c8873a602fLinuxでx86アセンブラ(スタック編)2015年11月28日に投稿
http://qiita.com/MoriokaReimen/items/31a8f8ce4a46ba0f3590Linuxでx86アセンブラ(マクロ編)
http://qiita.com/MoriokaReimen/items/45abbb6c2938abd505ffLinuxでx86アセンブラ(条件分岐編)2015年12月09日に更新 2015年12月02日に投稿
https://qiita.com/MoriokaReimen/items/66b8c0e3b2ef1d2993bb#_reference-46d6608629b00ae42268Linuxでx86アセンブラ(BCD編)
https://qiita.com/MoriokaReimen/items/f66329680e98022c6bab#_reference-322a00be9111ce80868bLinuxでx86アセンブラ(浮動小数点編)2015年12月17日に投稿
https://qiita.com/MoriokaReimen/items/8d3b0dddcc2a77ecdfa5#_reference-d9eb740d133b784b89d2
64bit x86
64ビット CPU の遊び方
https://qiita.com/tadnakam/items/4894ec3394ba57a8328a
strcmp をx64アセンブラで実装してみる
https://qiita.com/cirno999/items/6811c50f2c2e1518b468
x86-64プロセッサでGNU assemblerを使う
https://qiita.com/tobira-code/items/ac3169200160566c35af
x86-64プロセッサのスタックを理解する
https://qiita.com/tobira-code/items/75d3034aed8bb9828981
x86-64プロセッサでGNU assemblerを使う
https://qiita.com/tobira-code/items/ac3169200160566c35af
assemblyからhello world programを追いかける
https://qiita.com/knknkn1162/items/c67ae7c2ef71a713adf8
[ Windows ] 実行ファイルが32ビットか64ビットか確認する方法
https://qiita.com/oyan29/items/1f0b5d227765115b24f0
システムコールの呼び出し方メモ
https://qiita.com/kure/items/5a1a114f9a37aeab255c
独断と偏見によるx86命令拡張の印象
https://qiita.com/tanakmura/items/1af3ee8aeee6940d199b
逆組立器(dis assembler)
生バイナリデータを逆アセンブル(IA-32,x64)
https://qiita.com/yohhoy/items/7d281f22ca439152ce12
dumpbin.exeで吐かれる逆アセンブルの結果を解析する
https://qiita.com/yumetodo/items/3c20f7c25eedbf41d63a
Haskellによる8086逆アセンブラ開発入門
https://qiita.com/7shi/items/026839b2bc193dbfb0cb
複数の処理系で逆アセンブルして比較
https://qiita.com/7shi/items/d503c83c1befe1cdb284
「項書き換え機能付きプログラム」のディスアセンブラの作成
https://qiita.com/kaizen_nagoya/items/8b8fe645b06bc7eccefb
Win/dos/debug
MS-DOS 基本コマンド
https://qiita.com/timwata/items/8414f163607cc7aca473
debugコマンド(MS DOS)
https://qiita.com/kaizen_nagoya/items/31542d281d16d135df66
[スクリプト言語しか書けないあなたへ]FreeDOSとdebugコマンドで8086アセンブラ入門
https://qiita.com/usk83/items/c97066c3c663c5007658
Win32アプリでx86命令を直接実行させる
https://qiita.com/gdrom1gb/items/acf1db020839df89e6e3
x86のデバッグレジスタを使ってみたらQEMUが固まる
https://qiita.com/kaityo256/items/73bfa919af1b8b6fd77b
nasm(Netwide Assembler)
アプリケーションエンジニアのための低レイヤ入門
https://qiita.com/nirasan/items/3222827f1330a00f184c
nasmでprintf関数を使う
https://qiita.com/akakou/items/b3279b2de09b62261b7e
nasmで1~100まで数える
https://qiita.com/akakou/items/fb42e0dbfe9e5dc0a588
WindowsでNASMを使ってアセンブラを動かしてみる
https://qiita.com/0gajun/items/e772e1223f6e596eb362
書籍「低レベルプログラミング」アセンブリ実行 Docker 環境の構築
https://qiita.com/nirasan/items/0cd03c24a8e6d0e5f8be
アセンブリ言語でHello, World!
https://qiita.com/naoyoshinori/items/fb958e3c914c56baef40
[NASM/YASM] 4オペランドFMA命令を3オペランドに置き換えるマクロ
https://qiita.com/Seizh/items/070d29879037cb3faf41
masm(macro assembler)
Assembly code and Assembler on Windows 10. Windows 10でアセンブリ+ラして実行形式.exeを作成方法.
https://qiita.com/hogehoge990/items/6804b78770c247e32856
ズンドコキヨシ with MASMマクロ
https://qiita.com/fujitanozomu/items/9473ea40a61266588487
ズンドコキヨシ with x86アセンブラ
https://qiita.com/fujitanozomu/items/3fe0c5153c38920aaba1
mac
Macでx86アセンブリ入門してみた
https://qiita.com/edvakf@github/items/1ae777fd7f5222b7c363
Mac でアセンブリを書いてみる
https://qiita.com/dora-gt/items/889a564ebd682fbe4257
Xcodeでx86アセンブリを書く
https://qiita.com/edvakf@github/items/39866dc891b94d22b7cb
Mac OSX Mountain Lion で 64bit(x86-64) アセンブリ言語の HelloWorld プログラム
https://qiita.com/donalsea/items/b7ed1c9feef1b570a6b9
Mac OSX の x86-64 のアセンブリ言語で,libc の puts 関数を呼び出すプログラム
https://qiita.com/donalsea/items/d393c6e2ac805016ee94
Clang初級
https://qiita.com/megane814/items/ef3f4f44eae31e0560a0
With C/C++
インラインアセンブラの読み方
https://qiita.com/yutakakn/items/8c1d06ffc079f55e7158
ちょっとだけアセンブラを触ってみる
https://qiita.com/edo_m18/items/095ca7c4a7c9b658ba37
C++の参照渡しとCのポインタの値渡しの違いをマシン語で比較してみた結果
https://qiita.com/tajima_taso/items/a62747739deee88078da
C言語のアセンブリ言語コード化〜直観編
https://qiita.com/zacky1972/items/86741d1ac6939795784f
アセンブリ言語のさわりを知ればC言語のポインタもわかるよね、という話
https://qiita.com/atworks/items/17da1973378a626e6467
c++とアセンブリ言語で画像を反転させてみる
https://qiita.com/wf9a5m75/items/a519d0f82fe1484179c5
インテルコンパイラで対応していない命令セットの組み込み関数を使った場合のアセンブリ
https://qiita.com/kaityo256/items/7da336428b81d8d8bf3b
IchigoJam で BASIC と C とアセンブラ速度比較と最適化あそび
https://qiita.com/fujitanozomu/items/a3473cf49d641e4a29d1
システムコールの呼び出し方メモ
https://qiita.com/kure/items/5a1a114f9a37aeab255c
Byte swapping(エンディアン変換)を理解する
https://qiita.com/tobira-code/items/a03f39a02678d80bbd26
with Haskell
Haskellにインラインアセンブリを書く
https://qiita.com/tanakh/items/08c15f6e72dbe2da61a8
OS/kernel/boot(start up)/割込
os自作入門のusbブート
https://qiita.com/phoneticdata/items/9b0c74f59aba9c0a2ed1
メモ:「12ステップで作る 組込みOS自作入門」環境構築
https://qiita.com/mokrai/items/d9f6c6f5f939dbe8fa6c
自作OS(1): ブートローダ
https://qiita.com/Wanwannodao/items/19830459606eedc46812
BIOSを使用しないでテキストを表示させる
https://qiita.com/Wanwannodao/items/1d999aeb365397d08493
BIOS interrupt callを使う
https://qiita.com/tobira-code/items/d7de8fa78e29735a49b6
STM32 Nucleo Boardスタートアップルーチン
https://qiita.com/mitazet/items/54713ec4e89f0b57ac6e
TOPPERS/FMPカーネルソース勉強会(1) start.S
https://qiita.com/kaizen_nagoya/items/9a0bd8a725de62682602
TOPPERS/SSPカーネルソース勉強会(1) start.S
https://qiita.com/kaizen_nagoya/items/fa0d482bfaacf37dbe62
Linuxのブートシーケンス
https://qiita.com/taichitk/items/b3b69705be0e270e9f6e
Linux Boot Process(compressed)
https://qiita.com/tomoyafujita/items/929b32e8ff9da2c0589c
x86 プロテクトモードにおける割り込み発生からハンドラ実行までの流れ
https://qiita.com/pukin/items/c40e14bbdce19e332cc1
30日でできる! OS自作入門
30日でできる!OS自作入門(記事一覧)[Ubuntu16.04/NASM]
https://qiita.com/pollenjp/items/b7e4392d945b8aa4ff98
30日でできる!OS自作入門(1日目)[Ubuntu16.04/NASM]
https://qiita.com/pollenjp/items/a13cd764cc739a0ca9df
30日でできる!OS自作入門(2日目)[Ubuntu16.04/NASM]
https://qiita.com/pollenjp/items/d15fce401bccd37e8059
30日でできる!OS自作入門(3日目)[Ubuntu16.04/NASM]
https://qiita.com/pollenjp/items/8fcb9573cdf2dc6e2668
30日でできる!OS自作入門(4日目)[Ubuntu16.04/NASM]
https://qiita.com/pollenjp/items/0847a633df112dbfa4ff
30日でできる!OS自作入門(5日目)[Ubuntu16.04/NASM]
https://qiita.com/pollenjp/items/d0f4e09a7fd50dfd58f5
「30日でできる! OS自作入門」をMac向けに環境構築する
https://qiita.com/tatsumack/items/491e47c1a7f0d48fc762
連結器(linker)
動的なリンカ
https://qiita.com/saikoro-steak/items/5d90ae34b61c16f6b3cf
ARM(Advanced RISC Machines)
[アセンブラ] ARMの仕様を見てみる
https://qiita.com/edo_m18/items/a7c747c5bed600dca977
ARM Thumb 16-bit アセンブラ 命令セット
https://qiita.com/ohisama@github/items/58e2a8f62221cd520ace
ARMv7-MのNOP命令
https://qiita.com/eggman/items/4f365b56cd51965834c0
ARMアセンブリ言語の実装色々とNEON命令のサンプル
https://qiita.com/take-iwiw/items/cea0a2cb4d2709cb7ee5
raspberry pi 1 model bで、アセンブラ
https://qiita.com/ohisama@github/items/5371bb13d07ec6440f59
ARMアセンブリ言語でRGBA->HSVに変換してみた件
https://qiita.com/wf9a5m75/items/33442009d51a0c899333
ARM 関数呼び出し引数の渡し方
https://qiita.com/eggman/items/39e02a1ff9b772fcdb63
objdumpでARM-v7Mのバイナリを逆アセンブル
https://qiita.com/eggman/items/f9de9ffa318db0f39043
arm64
64bitは苦手。IntelでもArmでも、、、。
@tkato 参加らの紹介
(Linux で Arm64 アセンブリプログラミング (00) https://www.mztn.org/dragon/arm6400idx.html)
Raspberry PI
raspberry pi 1 model bで、アセンブラ その1
https://qiita.com/ohisama@github/items/5371bb13d07ec6440f59
raspberry pi 1 model bで、アセンブラ その2
https://qiita.com/ohisama@github/items/5a5a7ee49287622ddff8
raspberry pi 1 model bで、アセンブラ その3
https://qiita.com/ohisama@github/items/1acbc8cb9642adffc868
QEMUでRaspberry Pi 3のUARTをベアメタルで動かす
https://qiita.com/eggman/items/045bf5525fcf78209b79
QEMUのRaspberry Pi 3モデルでコアを識別する
https://qiita.com/eggman/items/96750a3e849d5562fcc6
powerPC
PowerPCアセンブリ チートシート
https://qiita.com/kitayuta/items/ad7bde187a3509de020b
S/390
S/390の機械語を総当たり調査
https://qiita.com/7shi/items/98c7aa38fe0bd29a7296
MIPS(Microprocessor without Interlocked Pipeline Stages)
MIPS-32のレジスタ一覧
https://qiita.com/drib__/items/ff2f962367390fc59221
アセンブリ言語(MIPS)でソート
https://qiita.com/mpyw/items/c45ec2b80303ce40d7cf
自作CPUを創る際に効率よくテストケースを準備する方法
https://qiita.com/varmil/items/be190fe50516c52aab3e
パタ・ヘネ
演習問題解答案(第4章プロセッサ) パタヘネ: コンピュータの構成と設計 5th
https://qiita.com/takata150802/items/6a991e570053bcb1d701
by GO
プログラミング言語の作り方 〜 Go によるアセンブラ、バーチャルマシン、コンパイラの実装
https://qiita.com/nirasan/items/cb1f79955f31c45c6658
by python
pythonでx86コンパイラ自作
https://qiita.com/s0sasaki/items/0b0d96838685fa290126
pythonでx86コンパイラ自作(スタック指向言語編)
https://qiita.com/s0sasaki/items/3651837a9a52f20ce2c6#_reference-fe4b65d00a02d3eae1ac
stack machine
stack machine アセンブラ
https://qiita.com/ohisama@github/items/da1163f229d30f8e260e
stack machine アセンブラ その2
https://qiita.com/ohisama@github/items/7d90e12699b5aeabdfad
stack machine アセンブラ その3
https://qiita.com/ohisama@github/items/40d82a89d08264bd1809
中央処理装置(CPU: central processing unit)・論理回路
CPU基礎
CPUのはなし
https://qiita.com/anonimeco/items/3acf89ceded53bb12f84
コンピュータの基本構成と動作原理〜知識編https://qiita.com/zacky1972/items/ef4486e8a6d95edb68fd
CPUの処理性能を表す数値についてまとめてみた
https://qiita.com/manabu013/items/b6b1028f113b8504e3a9
CPUの処理速度を表す単位をなんとなく理解する
https://qiita.com/salmonosushi/items/8f959d3cddc9cc5131f7
ハードウェアに関する基本的な用語
https://qiita.com/pocket8137/items/ed459d771a645d022e84
CPUの挙動について
https://qiita.com/kuronekodaisuki/items/532f74c28b2181dd8808
素人が作る超基本CPU@Verilog w/Vivado
https://qiita.com/arutema47/items/40dc748e349c30d7194a
CPU のモード
https://qiita.com/timwata/items/b70a81e46e7704edbf8d
CPUかGPUか専用回路か
https://qiita.com/nonbiri15/items/bbc97f92cb108646bc0b
今さらなぜCPUエミュレータを自作しようとおもったのか?
https://qiita.com/kanetugu2018/items/d692e612c3d4d715c0ad
コンピュータの動作原理 by @niQSun
コンピュータの動作原理(0)
https://qiita.com/niQSun/items/91396b620638e3f44f19
コンピュータの動作原理(1)概要
https://qiita.com/niQSun/items/2db8859b89f57ab5c019
コンピュータの動作原理(2)論理GATEを作る ーMOSFETの動作ー
https://qiita.com/niQSun/items/251e5824c70724a7d2c0
コンピュータの動作原理(3)真理値表と論理回路
https://qiita.com/niQSun/items/5502286ce77ceb0c2d88
コンピュータの動作原理(4)減算回路
https://qiita.com/niQSun/items/220215cbc3d298e07487
コンピュータの動作原理(5)順序回路
https://qiita.com/niQSun/items/8d5959f83a44b16d9cd4
コンピュータの動作原理(6)8ビットプロセッサP08:前編
https://qiita.com/niQSun/items/4d92eab8cce210db4b77
コンピュータの動作原理(7)8ビットプロセッサP08:後編
https://qiita.com/niQSun/items/f4b54136e8b65a32ffb0
コンピュータの動作原理(後書き)
https://qiita.com/niQSun/items/038e7a0e7f56eb81aaf9
CPUの創り方
Verilog-HDLで書かれた4bit 「CPUの創りかた」が推しです。CPUの歴史を辿り、4bit, 8 bit, 16bit, 32bit, 64bitとだどりる出発点として4bit CPUを学ぶ時間があると知識と経験がうまく組み合わさって体系的になります。FPU, DSP, FPGA, GPUの理解にも役立つかも。
FPGAでTD4(4bitCPU)を作ってみた
https://qiita.com/oskimura/items/83b0173bd11ef773ea84
CPUの創りかた(1): 基本論理回路の定義など
https://qiita.com/eijian/items/d721a146fa46e5877225
CPUの創りかた(2): decorderとmultiplexer
https://qiita.com/eijian/items/6191feebae21ad10a5b1
CPUの創りかた(3): ROMをつくる
https://qiita.com/eijian/items/1c5cbc1aa302ea7f0312
CPUの創りかた(4): Flip Flop
https://qiita.com/eijian/items/1b092a05e73fc372271f
CPUの創りかた(5): 4 bitレジスタ
https://qiita.com/eijian/items/7150182c420d98650e72
CPUの創りかた(6): プログラムカウンタ
https://qiita.com/eijian/items/a2d255bbf0fc2dee08cc
CPUの創りかた(7): 加算器を作る
https://qiita.com/eijian/items/306f42c5c1e4d3c37ec8
CPUの創りかた(8): すべては足し算だった
https://qiita.com/eijian/items/0e53963365166dd3720b
CPUの創りかた(9): CPUはじめました
https://qiita.com/eijian/items/2b9d2ef9adac09e13382
CPUの創りかた(10): おまけ、アセンブラ
https://qiita.com/eijian/items/8fb1a0c98e9715a6f5a8
論理回路
:RTL設計スタイルガイド Verilog HDL編(System Verilog対応版)
https://qiita.com/kaizen_nagoya/items/4c02f1575db1f28310a7
応用(application)
Capture the flagのススメ -超初心者向けバイナリ解析- その1
https://qiita.com/ebonight/items/85e005a11deb59759fe6
VZエディタ移植に当たって実施したことと成果
https://qiita.com/kaizen_nagoya/items/5551be98dcbed8f41949
ステッピングモーターをDCモーターの様に扱うモジュール
https://qiita.com/ohisama@github/items/bb22e55bcfff19ae570e
電動機制御算譜(プログラム)設計における3つの罠6つの教訓(実機)
https://qiita.com/kaizen_nagoya/items/b39b6b7ba0d90dff471d
参考資料(reference)
書籍(book)
コンピュータの構成と設計 第5版 上・下 パターソン ヘネシー
https://www.amazon.co.jp/dp/B01M5FMGDL/
コンピュータアーキテクチャ 定量的アプローチ 第5版 ヘネシー パターソン
https://www.amazon.co.jp/dp/B00SF6JN7M/
CPUの創りかた 渡波郁
https://www.amazon.co.jp//dp/4839909865/
31バイトでつくるアセンブラプログラミング ~アセンブラ短歌の世界 坂井弘亮
https://www.amazon.co.jp/dp/B00ICKLC2U/
大熱血-アセンブラ入門-坂井弘亮
https://www.amazon.co.jp/dp/4798051543/
リンカ・ローダ実践開発テクニック―実行ファイルを作成するために必須の技術-COMPUTER-TECHNOLOGY 坂井弘亮
https://www.amazon.co.jp/dp/4789838072/
0と1のコンピュータ世界-バイナリで遊ぼう! 坂井弘亮
https://www.amazon.co.jp/dp/B00JTQM798/
12ステップで作る組込みOS自作入門 坂井弘亮
https://www.amazon.co.jp/dp/4877832394
31バイトでつくるアセンブラプログラミング ~アセンブラ短歌の世界~
坂井弘亮, 愛甲健二, 松田和樹, 坂井丈泰, 竹迫良範
https://www.amazon.co.jp/dp/B00ICKLC2U
(参考URLアセンブラ短歌 http://kozos.jp/asm-tanka/)
30日でできる-OS自作入門 川合秀実
https://www.amazon.co.jp/dp/4839919844/
算譜(source code)
CASL
node-casl2-comet2/node-casl2
https://github.com/node-casl2-comet2/node-casl2
matsutomu/ScaCASL2-ScaCOMET2
https://github.com/matsutomu/ScaCASL2-ScaCOMET2
TD4
CPLD with Verilog (2004)
http://geodenx.blogspot.com/p/cpld.html
https://github.com/geodenx/td4
https://github.com/eijian/mkcpu
FPGAでTD4(4bit CPU)を作る
http://szty1012.hatenablog.com/entry/2017/10/06/artix7-4bit-cpu
文書履歴(document history)
ver. 0.10 初稿 20180630 午前
ver. 0.11 目的、成果、背景、参考資料、項目追記 20180630 午後
ver. 0.12 参考資料追記 記事56,CPU8 20180701 午前
ver. 0.13 記事66。十項目追記 20180701 午後
ver. 0.14 記事76。十項目追記 20180702
ver. 0.15 CASL項目追記、視点十項目、項目順番入替 記事90 20180703
ver. 0.16 項目101, いいね66, views, 2300, 64bit,逆アセブル項目追加。アセンブラ短歌追記 20180704
ver. 0.17 項目130, いいね86, views, 3200, 項目追記。順番入替。 20180705
ver. 0.18 16進数、機械語追記 Qiita記事項目145, いいね111, views 4050 20180706
ver. 0.19 Haskell追記 アセンブラ記事項目 150, いいね 120, views 4550, Qiita items 1006, Contribution 1063, follower 1002, 合計3000以上達成。目標より6日後。20180707
ver. 0.20 6502追記。「Linuxでx86アセンブラ by @MoriokaReimen」を節に。x86強化。「by Python」「連結器(linker)」を節に。目標項目を1000に。20180708
ver. 0.21 略号のfull spell付記。CASL, COMETフルスペル調査中。視点分割13。視点と見出しとの整合性は未整備。20180709
ver. 0.22 「30日でできる!OS自作入門」を節に。20180710