割り込み禁止/許可は細心の注意が必要です。
関数コールと割り込み許可/禁止の関係で、思わぬ不具合が発生することがあります。
割り込みを禁止した後に、関数コールをして
コールされた関数内で割り込み禁止と割り込み許可があると
本来、割り込み禁止状態を継続しておきたい箇所で割り込み許可になってしまう
という意図しない動作になってしまいます。
これを回避するためには、ステータスレジスタ(※)を一時保存してから割り込み禁止にし、
処理を実行した後、ステータスレジスタを戻すようにします。
(※)ステータスレジスタとは割り込み許可/禁止のフラグを含むレジスタ