アセンブリ
プログラミングの文脈では主にアセンブリ言語を指す
CPU などのプロセッサが直接理解できるのは 0 と 1 で構成された機械語のみである
機械語を直接入力してもよい(ハンドアセンブルと呼ぶ)が、だいたい人間のやることではない
せめて機械語の命令(オペコード)に人間が読める言葉(ニーモニック)をつけたい
こうしてできたのがアセンブリ言語
なのでオペコードとニーモニックは原則 1 対 1 である
流石にそれだと貧相すぎるのでラベルやマクロなどの機能はあったりする
プロセッサ依存なのでアーキテクチャが変わればもちろん言語の中身も変わる
x86_64、Linux で hello, world を表示する例(NASM)
code:hello.asm
section .data
message: db 'hello, world!', 10
section .text
global _start
_start:
mov rax, 1
mov rdi, 1
mov rsi, message
mov rdx, 14
syscall
mov rax, 60
xor rdi, rdi
syscall