二つの値の積を累算中の値に加算する演算のこと。
SuperHなど汎用のプロセッサでも、積和演算回路が組み込まれた製品がある。こういったプロセッサでは汎用レジスタよりも大きな値を扱う必要があるため、積和演算レジスタとして、専用にレジスタを持っていることが多い。
SuperHの場合は2つの汎用レジスタで16または32ビットの値二つのポインタを示して使う。積和演算レジスタは一つしかないので指定する必要が無い。例えば次のようになる。
MAC.L @R0+,@R1+
演算終了後、レジスタは自動で増分される。このため、メモリ上に連続してデータを用意しておけば、連続して命令を実行することができる。
SuperHの場合は汎用レジスタが32ビット、積和演算レジスタは64ビットなので、積和演算レジスタの上位・下位32ビットごとに分けて、汎用レジスタやメモリに複写する命令が存在する。