アセンブラへの道
https://qiita.com/kaizen_nagoya/items/46f2333c2647b0e692b2
の資料が大きくなりすぎて、Qiitaでうまく編集できなくなった。
一部をこちらに移動させてください。
アセンブラへの道 | アセンブラへの道(2) | アセンブラ入門への入り口 | 合計 | |
---|---|---|---|---|
items | 340 | 130 | 470 | |
views | 31105 | 1585 | 1630 | 32320 |
goods | 321 | 11 | 6 | 338 |
stocks | 343 | 13 | 3 | 359 |
<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words in order.
目次(content)
アセンブラ入門への入り口 https://qiita.com/kaizen_nagoya/items/0bf939143593fbb7114a
・信頼性:ソフトウェアとコンピュータ
・機械語、アセンブラ
・・1 直球勝負:CPUの創りかた
・・2 直近勝負
・・3 仮説勝負
・参考資料
・文書履歴
アセンブラへの道 https://qiita.com/kaizen_nagoya/items/46f2333c2647b0e692b2
・目次(content)
・前書きの前に(before preface)
・・お願い(ask)
・・・ CPUの名前(name of CPU)
・・・ 命令体系(instruction set)
・・・ 道具(tools)
・・(ざっくり?)アセンブラ(rough assembler)
・・・ アセンブラって何。(What is an assembler?)
・・・ 構成要素(element)
・・・ 命令(operator)
・・・ 演算対象(operand)
・・・ 登録器(register)
・・・ 数値、直値(number)
・・・ 定数(constant)名
・・・ 2進数(bynary digit)、8進数(octal digit)と16進数
・・事例(case study)
・前書き(preface)
・目的(purpose)と成果(outcome)
・理由(reason)
・鍵語(keyword)
・・視点(view point)
・組立器(入門(Assembler introduction)
・・nasm(Netwide Assembler)
・・mac(apple)
・・ stack machine
・・ 制作(making)
・機械語(machine languate)
・・ 機械語 @7shi
・8 bit CPU
・・6809(Motorola)
・・ H8(日立、ルネサス)
・・AVR(Alf Egil Bogen, Vegard Wollan, RISC:Reduced Instruction Set Computer) by Atmel
・・・ardino/memos
・・8080(Intel)
・・Z80(Zilog)
・・・Z80 @Stosstruppe
・・・PC-6001 @fuzzball
・・・CHIP-8
・16bit CPU
・・PDP11(Programmed Data Processor:DEC)
・・ CAP-X(Comp-X Assemble Program:IPA)
・・ CASLII(Comet Assemble Language:IPA)
・・M16C(三菱、ルネサス)
・・68000(68K:Motorola)(Intel)
・32 bit
・・NIOSII(Altera)
・・MicroBraze(Xilinx)
・・ SH(Super H(hitachi?), 日立、ルネサス)
・・ IA32-x86(intel)
・・・ paiza(web compiler)
・・・ Linuxでx86アセンブラ by @MoriokaReimen
・・・LJの力計算をフルアセンブラで書いてみる @kaityo256
・・ARM(Advanced RISC Machines)
・・・ Raspberry PI
・・ V850(Renesas:Renaissance Semiconductor for Advanced Solutions)
・・・athrill @kanetugu2018
・・SPARC(Sun)
・・powerPC(IBM)
・・MIPS(Microprocessor without Interlocked Pipeline Stages)
・64bit CPU
・・x64:64bit x86(Intel)
・・arm64(ARM)
・除虫(debug)
・・debug(MS-DOS 16bit)
・・ gdb(GNU)
・・・ gdb with docker
・・・ gdb on mac
・・・gdb リモートデバッグ @tetsu_koba
・・ Eclipse debugger
・逆組立器(dis assembler)
・・リバースエンジニアリングへの道 @deta-mamoru
・・連結器(linker)
・・LLVM IR
・・bitcode
・・WebAssembly
・・Rust
・・ by GO
・・ by python
・参考資料(reference)
・文書履歴(document history)
アセンブラへの道(2) https://qiita.com/kaizen_nagoya/items/2a0bd88216bc51278be5
目次(content)
用語(terms)
中央処理装置(CPU: central processing unit)・論理回路
・CPU基礎
・GPU
・・GPU紹介・比較等
・コンピュータの動作原理 by @niQSun
CPUの創り方
・CPUの創り方 @eijian
論理回路
OS(operating system)/kernel/boot(start up)/割込
・FPGA+SoC+Linuxのブートシーケンス@ikwzm
・Linux @akachochin
・30日でできる! OS自作入門
応用(application)
・TOPPERS活用アイデア・アプリケーション開発コンテスト
算譜(source code)
・CASL
・TD4
16進数(hexadecimal number),8進数(octal number), 2進数(binary number)
参考資料(reference)
・書籍(book)
・・パタ・ヘネ
・その後
・自己参考資料(selfreference on Qiita)
追伸(post script)
文書履歴(document history)
intel: アセンブラへの道入り口
https://qiita.com/kaizen_nagoya/items/0bf939143593fbb7114a
・信頼性:ソフトウェアとコンピュータ
・機械語、アセンブラ
・・1 直球勝負:CPUの創りかた
・・2 直近勝負
・・3 仮説勝負
・参考資料
・文書履歴
用語(terms)
略語のfull spelling
訳語の一覧を作ることにより、用語の適切さを確認する。
組立語(assembler)
機械語(machine language)
前書き(preface)
計画者(programmer)
実行計画(programming)
計算機計画者(computer programmer)
目的(purpose)
成果(outcome)
要請(pressing)
理由(reason)
経路(route)
電動機(motor)
鍵語(keyword)
逆組立(disassemble)
装置運転者(device driver)
起動処理(boot)
論理回路(logic circuit)
16進数(hexadecimal number)
除虫(debug)
連結器(linker)
配置器(locator)
道具(tool)
移植(porting)
応用(application)
電動機制御(motor controll)
算譜設計(program design)
中央処理装置(central processing unit)
背景(back ground)
覚書(notes)
入門(introduction)
註釈(comment)
感想(impression):
記録(record)
8進数(octal number)
2進数(binary number)
算譜(source code)
書籍(book)
参考資料(reference)
文書履歴(document history)
AVR(Alf Egil Bogen, Vegard Wollan, RISC)
RISC(Reduced Instruction Set Computer)
PDP11(Programmed Data Processor 11)
CASLII(Comet Assemble Language 2)
nasm(Netwide Assembler)
masm(macro assembler)
OS(operating system)
ARM(Advanced RISC Machines)
MIPS(Microprocessor without Interlocked Pipeline Stages)
中央処理装置(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の処理速度を表す単位をなんとなく理解する
https://qiita.com/salmonosushi/items/8f959d3cddc9cc5131f7
CPUのベンチマーク SPEC CPU2006の見方
https://qiita.com/s2maeda/items/b07364fd94fbd3ac0ef4
今さらなぜCPUエミュレータを自作しようとおもったのか?
https://qiita.com/kanetugu2018/items/d692e612c3d4d715c0ad
CPUから実装してどこまで行けるか?
https://qiita.com/dgkz/items/437426b6b50f41e718c7
CPUの歴史と言語・OS・ネットワーク<書きかけ>
https://qiita.com/kaizen_nagoya/items/0148d8a07dfea115dbbe
GPU
Linux(Ubuntu) + GPU エラーメッセージ集
https://qiita.com/syoyo/items/0707daed0295db6a3ffa
GPUサーバの利用
https://qiita.com/KI1208/items/0f57f0e742cf206468b6
GPUマシンのセットアップ(Ubuntu)
https://qiita.com/o__mura/items/d16b540dae557f2b7808
GPUの使用状況を知る(Ubuntu14, Cuda7)
https://qiita.com/gunn/items/e3acd83a2bc6dc76de95
GPU関連でよく使うコマンドまとめ
https://qiita.com/sao_rio/items/4ef5604d685f04669f74
GPU紹介・比較等
【TensorFlow】 CPUとGPUの速度比較
https://qiita.com/guitar_char/items/1ff037bd1455a64d6d05
CPUかGPUか専用回路か
https://qiita.com/nonbiri15/items/bbc97f92cb108646bc0b
[Note] Foundation for GPU Computing
https://qiita.com/Rowing0914/items/59112d8b992156eaceef
GPU マイニングをはじめて 1 年経ったので振り返る(2018 年 4 月 20 日)
https://qiita.com/syoyo/items/b549c33552fd169f0ca6
MackerelでローカルマシンのGPU負荷を監視する
https://qiita.com/sabaku20XX/items/9e37760e9bada1b4c491
ゆめりあGPUベンチ結果一覧
https://qiita.com/Yanorei32/items/0d49407f21388bc584d9
NVIDIA Teslaスペック
https://qiita.com/yukoba/items/10d0ba3fb1d19a6ab6a5
GPUの性能をベンチマーク
https://qiita.com/MahoTakara/items/3895ab4f3593c68e52a0
Google ColaboratoryのGPU速度比較メモ
https://qiita.com/samacoba/items/78df1077e07b8f1bc364
コンピュータの動作原理 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の創り方 @eijian
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
FPGA と Verilog HDL
https://qiita.com/kaizen_nagoya/items/6db0b65fb1c227722660
#OS(operating system)/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
FPGA+SoC+Linuxのブートシーケンス@ikwzm
FPGA+SoC+Linuxのブートシーケンス(概要編)
https://qiita.com/ikwzm/items/b4ccae34cf554c80d1b4
FPGA+SoC+Linuxのブートシーケンス(Altera SoC+EDS編)
https://qiita.com/ikwzm/items/c22d15803ed98f0e52ab
FPGA+SoC+Linuxのブートシーケンス(ZYNQ+U-Boot-SPL編)
https://qiita.com/ikwzm/items/efacec8d8e0744e17d45
FPGA+SoC+Linuxのブートシーケンス(ZYNQ+Vivado編)
https://qiita.com/ikwzm/items/1614c35233e1836c7a26
FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(PYNQ-Z1対応)
https://qiita.com/ikwzm/items/d6fdaa859906252fd8b0
FPGA+SoC+Linuxのブートシーケンス(Device Tree Overlay+FPGA Manager編)
https://qiita.com/ikwzm/items/57b28cac4f6857b5a199#_reference-05a615386d34e022b75a
FPGA+SoC+LinuxでDevice Tree Overlayを試してみた
https://qiita.com/ikwzm/items/ec514e955c16076327ce
FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(ブートイメージの提供)
https://qiita.com/ikwzm/items/cdeb3c9c352776eac683
FPGA+SoC+Linux+Device Tree Overlay+FPGA Region(ブートイメージの提供)
https://qiita.com/ikwzm/items/7e90f0ca2165dbb9a577#_reference-633c49df4b5589a30d11
FPGA+SoC+LinuxでFPGA Managerを試してみた
https://qiita.com/ikwzm/items/9eb4d49545636162057e
FPGA+SoC+LinuxでFPGA Managerを試してみた(まとめ)
https://qiita.com/ikwzm/items/393d483131bcf6ad7cb0
FPGA+SoC+LinuxでFPGA Managerを試してみた(まとめ2)
https://qiita.com/ikwzm/items/4f89cf7cb42f6cc2705f
ZYBO用U-Bootを、ブート時にuEnv.txtを読むようにして、かつBOOT.binから起動できるようにする
https://qiita.com/ikwzm/items/1734676d787e2693df47
Linux Kernel 4.10 でのFPGAのサポート事情
https://qiita.com/ikwzm/items/2ff7d5429da8ace7c0bd
Linux @akachochin
Linux(x86-32bit)のページフォルトハンドラを読んでみる(その1)
https://qiita.com/akachochin/items/e5fcefbd27f6c9fd711c
Linux(x86-32bit)のページフォルトハンドラを読んでみる(その2)
https://qiita.com/akachochin/items/5121d658fa62fb116728
Linux(x86-32bit)のページフォルトハンドラを読んでみる(その3)
https://qiita.com/akachochin/items/396f88c65fd81be1333a
Linux(x86-32bit)のページフォルトハンドラを読んでみる(その4)
https://qiita.com/akachochin/items/6e38f89f9421f3e7cbcf
Linux(x86-32bit)のページフォルトハンドラを読んでみる(その5)
https://qiita.com/akachochin/items/e7ffdca00c00d322022a
Linux(x86-32bit)のページフォルトハンドラを読んでみる(その6)
https://qiita.com/akachochin/items/7ab3ea00b346bd4a3de1
Linux(x86-32bit)のページフォルトハンドラを読んでみる(その7)
https://qiita.com/akachochin/items/325863a6699000e228b8
Linux(x86-32bit)のページフォルトハンドラを読んでみる(その8)
https://qiita.com/akachochin/items/a2ad7770b30c8841c064
Linux(x86-32bit)のページフォルトハンドラを読んでみる(その9)
https://qiita.com/akachochin/items/258cccd1695fcafc2ede
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
応用(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
TOPPERS活用アイデア・アプリケーション開発コンテスト
TOPPERS活用アイデア・アプリケーション開発コンテスト
https://www.toppers.jp/contest.html
の応募作品の中のアセンブラ関連記述。(応募者のソースだけではなく、応募者が利用したオープンソース中のソースコードを含む)
TOPPERS活用アイデア・アプリケーション開発コンテスト受賞作品紹介(1) 第一回(2011)アプリケーション開発部門銀賞『Natural Tiny Shell Task』中村晋一郎
https://qiita.com/kaizen_nagoya/items/763209c213e3c0daee10
$ grep -r asm *
sample/target/nxp-lpc824/lpc_chip_8xx/inc/core_cmFunc.h: /* Empty asm statement works as a scheduling barrier */
sample/target/nxp-lpc824/lpc_chip_8xx/inc/core_cmFunc.h: /* Empty asm statement works as a scheduling barrier */
sample/target/nxp-lpc824/lpc_chip_8xx/inc/core_cm0plus.h: #define __ASM __asm /*!< asm keyword for ARM Compiler */
sample/target/nxp-lpc824/lpc_chip_8xx/inc/core_cm0plus.h: #define __ASM __asm /*!< asm keyword for IAR Compiler */
sample/target/nxp-lpc824/lpc_chip_8xx/inc/core_cm0plus.h: #define __ASM __asm /*!< asm keyword for GNU Compiler */
sample/target/nxp-lpc824/lpc_chip_8xx/inc/core_cm0plus.h: #define __ASM __asm /*!< asm keyword for TASKING Compiler */
sample/target/nxp-lpc824/lpc_chip_8xx/.cproject: <option id="gnu.both.asm.option.flags.crt.633333627" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__REDLIB__ -DDEBUG -D__CODE_RED" valueType="string"/>
sample/target/nxp-lpc824/lpc_chip_8xx/.cproject: <option id="gnu.both.asm.option.flags.crt.771165364" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -D__REDLIB__ -DNDEBUG -D__CODE_RED" valueType="string"/>
sample/target/nxp-lpc824/lpc_monitor/.cproject: <option id="gnu.both.asm.option.flags.crt.985941222" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -DDEBUG -D__CODE_RED -DCORE_M0PLUS -D__USE_ROMDIVIDE -D__USE_LPCOPEN -DNO_BOARD_LIB -D__LPC82X__ -D__REDLIB__" valueType="string"/>
sample/target/nxp-lpc824/lpc_monitor/.cproject: <option id="gnu.both.asm.option.include.paths.1633285852" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
sample/target/nxp-lpc824/lpc_monitor/.cproject: <option id="gnu.both.asm.option.flags.crt.1239342916" name="Assembler flags" superClass="gnu.both.asm.option.flags.crt" value="-c -x assembler-with-cpp -DNDEBUG -D__CODE_RED -DCORE_M0PLUS -D__USE_ROMDIVIDE -D__USE_LPCOPEN -DNO_BOARD_LIB -D__LPC82X__ -D__REDLIB__" valueType="string"/>
sample/target/nxp-lpc824/lpc_monitor/.cproject: <option id="gnu.both.asm.option.include.paths.704835887" name="Include paths (-I)" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
sample/target/acb-bf592/chip.c: asm("cli r0; csync; idle; sti r0;": : :"R0");
TOPPERS活用アイデア・アプリケーション開発コンテスト受賞作品紹介(2)第一回(2011)アプリケーション開発部門金賞インテリジェント・チョロQコントローラ/TOPPERS/JSP, 山浦幹,(有)シンビー
https://qiita.com/kaizen_nagoya/items/6cd60e41bcad663c0364
$ grep -r asm *
OBJF/sample1.h:#define RAISE_CPU_EXCEPTION __asm__( ".hword 0x0006" )
OBJF/sample1.h:#define RAISE_CPU_EXCEPTION #define RAISE_CPU_EXCEPTION __asm__( ".hword 0x0006" )
OBJF/sample1.h:#define RAISE_CPU_EXCEPTION #define RAISE_CPU_EXCEPTION asm(" int #32") /* ソフトウェア割込み発生 */
TOPPERS活用アイデア・アプリケーション開発コンテスト受賞作品紹介(4)第三回アプリケーション開発部門銅賞 lwIP の移植 松浦 光洋(個人)
https://qiita.com/kaizen_nagoya/items/657ce065ba108f1b98fe
$ grep -r asm *
*** 一部略 ***
src/eth/encx24j600/Helpers.c:// Hi-Tech PICC18 cannot access local function variables from inline asm.
src/eth/encx24j600/Helpers.c: asm("movlb (_toRotate)>>8");
src/eth/encx24j600/Helpers.c: //asm("bcf _STATUS,0,C");
src/eth/encx24j600/Helpers.c: asm("bcf 0xFD8,0,C"); // HI-TECH PICC-18 PRO 9.63PL1 doesn't define _STATUS
src/eth/encx24j600/Helpers.c: asm("btfsc (_toRotate)&0ffh+3,7,B");
src/eth/encx24j600/Helpers.c: asm("bsf 0xFD8,0,C"); // HI-TECH PICC-18 PRO 9.63PL1 doesn't define _STATUS
src/eth/encx24j600/Helpers.c: asm("rlcf (_toRotate)&0ffh+0,F,B");
src/eth/encx24j600/Helpers.c: asm("rlcf (_toRotate)&0ffh+1,F,B");
src/eth/encx24j600/Helpers.c: asm("rlcf (_toRotate)&0ffh+2,F,B");
src/eth/encx24j600/Helpers.c: asm("rlcf (_toRotate)&0ffh+3,F,B");
src/eth/encx24j600/Helpers.c: _asm
src/eth/encx24j600/Helpers.c: _endasm
算譜(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
FPGAでTD4(4bit CPU)を作る
http://szty1012.hatenablog.com/entry/2017/10/06/artix7-4bit-cpu
16進数(hexadecimal number),8進数(octal number), 2進数(binary 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
論理回路の基礎 #1デジタル信号の基礎
https://qiita.com/Taira815/items/2991f9087a0efd197271
2進数・8進数・10進数・16進数の相互変換についてまとめてみた
https://qiita.com/manabu013/items/2ef474f5ecfe8e02ae06
10進数の数値を 2進数、8進数、16進数の文字列に変換 - Scala -
https://qiita.com/takuya71/items/abe75c9a4937dab9bb7c
10進数の数値を 2進数、8進数、16進数の文字列に変換 - Ruby -
https://qiita.com/takuya71/items/a16af302ee2f534e8fc5
参考資料(reference)
書籍(book)
CPUの創りかた 渡波郁
https://www.amazon.co.jp//dp/4839909865/
パタ・ヘネ
演習問題解答案(第4章プロセッサ) パタヘネ: コンピュータの構成と設計 5th
https://qiita.com/takata150802/items/6a991e570053bcb1d701
演習問題解答案(第5章容量と速度の両立:記憶階層の利用) パタヘネ: コンピュータの構成と設計 5th
https://qiita.com/takata150802/items/add9f339266244989261
コンピュータの構成と設計 パターソン & ヘネシー
https://qiita.com/kaizen_nagoya/items/dc7246b39935974bcd2d
コンピュータの構成と設計 第5版 上・下 パターソン ヘネシー
https://www.amazon.co.jp/dp/B01M5FMGDL/
コンピュータアーキテクチャ 定量的アプローチ 第5版 ヘネシー パターソン
https://www.amazon.co.jp/dp/B00SF6JN7M/
その後
アセンブリに触れてみよう
https://qiita.com/kaito_tateyama/items/89272098f4b286b64115
アセンブラとレジスタ
https://qiita.com/FangJoker7714/items/b25255a479c0e8541b77
初心者のためのPC-98プログラミング(1)【OS無しでbeepを鳴らす】
https://qiita.com/TakedaHiromasa/items/371503c48ac33237a859
アセンブラでQuine
https://qiita.com/fujitanozomu/items/1108c16a4712c14c58db
アセンブリ(NASM)で関数作ってC言語で呼ぶ
https://qiita.com/C_Assembly/items/370ee4e38cab2662da20
NASMでファイル分割からのHello, World
https://qiita.com/C_Assembly/items/b514bf02b90bbfc68dfb
Macでアセンブリ言語を書いてコンピュータ創世記に思いを馳せたかった(未完)
https://qiita.com/inoue_ryuichi/items/d8d69cf312a2cef00db5
自己参考資料(selfreference on Qiita)
CPUの歴史と言語・OS・ネットワーク
https://qiita.com/kaizen_nagoya/items/0148d8a07dfea115dbbe
名古屋のIoTは名古屋のOSで(TOPPERS まとめ)
https://qiita.com/kaizen_nagoya/items/9026c049cb0309b9d451
量子コンピュータプログラムへの道
https://qiita.com/kaizen_nagoya/items/37c90488c87bbe9f2d71
「ゼロから作るDeep Learning 2自然言語処理編」読書会に参加する前に読んで置くとよい資料とプログラム
https://qiita.com/kaizen_nagoya/items/537b1810265bbbc70e73
C言語(C++)の理解、溶解、爽快。仮説・検証(173)
https://qiita.com/kaizen_nagoya/items/3f3992c9722c1cee2e3a
Microsoftとの歴史 Cコンパイラを中心に
https://qiita.com/kaizen_nagoya/items/d7c0cc257e99de0573cf
プログラミング言語教育のXYZ。Youtube(1) 仮説・検証(52)
https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4
追伸(post script)
私が、電総研(現在の産総研)の言語研究室に研修生としていた時、
OBJという抽象データ型言語の論文を読んでいて、
「私はアセンブラは得意だけどLISPは苦手だ」
と言った時、「LISPはアセンブラだ」
という助言をいただきました。
Lispチップでは、LISPはアセンブラで、
アセンブラはCPUの構造に依存しているものだと。
現在、量子コンピュータの開発競争が急激に進んでいます。
勝者は応用領域に特化した言語の提案者か、
量子コンピュータに特化したアセンブラの開発者かもしれません。
量子コンピュータの応用領域の一つに遺伝子解析、遺伝子機能解析を想定しています。
遺伝子は組立語(assembler)です。解読に確率を用いるだけでなく、機能の発現の仕組みにも統計と確率を駆使すると良いかもしれません。
アセンブラの概念を狭く理解するのではなく、
新しい計算機の原理を促す一つの道具だと理解するのはどうでしょう。
確率や論理から入って計算機の新しい原理を追求するか、
言語仕様から入って新しい計算の仕組みを提供するか。
算譜(source code)の例を4bit CPUと CASLIIだけにしているのは、
アセンブラへの2つの入り口を示し、出口は自分で作って欲しいという意図です。
それがお金になるかどうかは、例えば10年後の話かもしれません。
心より、計画者(programmer)のために
自己参照
物理記事 上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff
数学関連記事100
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d
言語・文学記事 100
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6
医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82
通信記事100
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7
自動車 記事 100
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5
Qiita(0)Qiita関連記事一覧(自分)
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6
鉄道(0)鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/26bda595f341a27901a0
日本語(0)一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68
英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d
転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe
仮説(0)一覧(目標100現在40)
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df
安全(0)安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409
Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8
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
OSEK OS設計の基礎 OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3
官公庁・学校・公的団体(NPOを含む)システムの課題、官(0)
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3
Error一覧(C/C++, python, bash...) Error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8
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
なぜ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
TOPPERSまとめ #名古屋のIoTは名古屋のOSで
https://qiita.com/kaizen_nagoya/items/9026c049cb0309b9d451
自動制御、制御工学一覧(0)
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b
プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945
一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39
自動制御、制御工学一覧(0)
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b
小川清最終講義、小川清最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.
文書履歴(document history)
ver. 0.01 初稿 20211012
ver. 0.02 アセンブラへの道、アセンブラへの道(2)記事数一覧 20211014
ver. 0.03 目次作成・順番入れ替え 20211015
ver. 0.04 用語、集計追記 20211016
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.