アセンブリ言語における関数
以下のプログラムは、ファイルに改行を書き込む関数newlineを呼び出す。
code: hoge.asm
section .data
br: db 10
section .text
global _start
newline:
mov rax, 1 ; write システムコールの番号
mov rdi, 1 ; ディスクリプタの番号
mov rsi, br ; 改行文字をセット
mov rdx, 1 ; 書き込むバイト数
syscall ; write システムコールを呼び出し
ret
_start:
call newline
mov rax, 60 ; exit システムコールの番号
mov rdi, 0 ; リターンコードに 0 を指定
syscall ; exit システムコールの呼び出し
; 終了
アセンブリ言語は、C言語に代表される高級言語とは異なり、ルーチンの抽象化のみを行う。 関数を呼び出す際は以下のことをプログラマがチェックする必要がある。
関数を呼び出す前
呼び出された関数において
呼び出した後