Keil-μVisionとAsem-51で試してみましたが、まだプラグインしていると構文エラーです。ここに私のコードは次のとおりです。Atmel 89C2051マイクロコントローラで "acall"命令が動作しないのはなぜですか?
acall subroutine1
.
.
.
subroutine1:
.
.
.
ret
Keil-μVisionとAsem-51で試してみましたが、まだプラグインしていると構文エラーです。ここに私のコードは次のとおりです。Atmel 89C2051マイクロコントローラで "acall"命令が動作しないのはなぜですか?
acall subroutine1
.
.
.
subroutine1:
.
.
.
ret
AT89C2051部分は間違いなくACALL命令をサポートしています(そうdata sheetを主張し、私はそれを自分自身を首尾よく使用しました)。
正確なエラーは、各アセンブラで表示されていますか?残りのソースはOKですか?
エラーが発生している正確なソースを投稿できますか(コード自体が機密である場合に問題を示す小さな例を作成できますか)。
私はそれを理解しました。サブルーチンの定義は、それを呼び出す前に最初に行く必要があります。
org 0
sjmp start
subroutine1:
.
.
.
ret
start:
.
.
.
acall subroutine1
ありがとうpsmearsを「ACALL」命令は本当にAT89C2051のために働くことを確認するため。
@All、これがあなたを助けた場合、この回答を投票することができます。ありがとう。
ソースファイルの後半でサブルーチンを呼び出すことができるはずです。これを行う方法は、アセンブラ(Keil/Assem-51/etc)に依存しますが、トリックを行うべき「2パス」アセンブリのオプションがある場合は... – psmears