この章では,前章の説明に従って生成した仮想機械コードを入力とし,現実の計算機アーキテクチャの一つであるARMのアセンブリコードを生成する方法について説明する.説明にあたり,講義「計算機の構成」「計算機アーキテクチャ」で学んだMIPSアーキテクチャに関する知識は仮定する. たとえば:

li	$v0, 1
li	$v1, 2
add	$v0, $v0, $v1
li	$v1, 3
mul	$v0, $v0, $v1

は,を計算し,その結果をv0レジスタに格納する命令列であることが理解できるものとする.もし理解できないようであれば,パタヘネ本を読みなおして復習すること.

ちなみに,上記のMIPSアセンブリコードに対応するARMアセンブリコードは次のとおりである.

mov	v1, #1
mov	v2, #2
add	v1, v1, v2
mov	v2, #3
mul	v1, v1, v2

まずはじめに,ARMのレジスタと命令セットについて概観し,次に,ARMの呼出し規約について説明する.その後,仮想機械コードをARMアセンブリコードに変換する際のいくつかの注意点について説明する.