2017-02-20 8 views
2

MC68000が外部割り込み中にステータスレジスタ/ CCRを保持するかどうかについての情報は見つかりませんでした。 CPUが条件分岐の直前に割り込みを行い、割り込みがCCRを変更した場合、それが問題になると思います。今、私の割り込みのコードは次のようになります。68kアセンブリ:CPUはステータスレジスタを割り込みに格納しますか?

  ORG  $110000 ; Location of IPL6 vector 
IPL6  MOVE.W SR, -(SP) ; Is this line necessary? 
      MOVE.L D0, -(SP) 
      ; Perform interrupt tasks here 
      MOVE.L (SP)+, D0 
      MOVE.W (SP)+, SR ; Is this line necessary? 
      RTE    ; Return 

/プッシュ示された行は、スタックからSRをポップ場合、私は思ったんだけど必要な、またはCPUが自動的に割込み時のSRを保存し、復元した場合されています。

答えて

5

はい、CPUはステータスレジスタを割り込みに格納します。論理的にはこれが必要です。そうでない場合は、前述のような問題が発生します。

MOTOROLA M68000 FAMILY Programmer’s Reference Manualの6-84ページでは、RTEコマンドは、他のレジスタの中でSRを復元することを示しているため、以前に格納されていなければなりません。

0

あなたはによって(CPUまたはコード)状態はありませんので、ご質問は、実際に不運な方法のビットに記載されている:割り込み中に保存されるを必要

はい、CCR (明らかにあなたが述べた理由で)。

しかしなし、それが割り込みを提供していたときに、CPUが自動的にそれをしないので、(それが不必要にあなたの例で行われているように)プログラマが明示的にを保存する必要はありません。

+0

十分に、私は少しタイトルを微調整しました。 – cjgriscom

関連する問題