実際にコードを書いてみる
use_asm.c
/* use_asm() 引数なし版 */ #include <stdio.h> int use_asm(void); int main(void) { printf("use_asm() = %d\n", use_asm()); }
asm.s
;; nasm file global _use_asm section .text ;; eaxレジスタの値が返り値になる _use_asm: mov eax, 123h ret
というふたつのファイルを用意して、実際にコンパイルするには次のようにコマンドを打つ。
$ nasm -f win32 asm.s $ gcc use_asm.c asm.obj -o use_asm $ ./use_asm > use_asm() = 123
アセンブリ言語というのは実際にやってみると計算機の内部が手に取るようにわかってしまう。でも、アセンブリ言語は扱うには具体的すぎる。それに対してコンピュータの黎明期にはLISPなどで抽象化という方向性に進んだのがわかる気がする。