私はアセンブラを学び始めていますが、私はこの疑いがあります。私は、ポートBのビット0がクリアされている場合、私は(この場合は)何SBIC
が行うことは確認していることを読んだAVCアセンブラのSBIC命令
LDI R16, 0
OUT DDRB, R16 ; Configures port B as an input port
SBIC PORTB, 0
LDI R18, 0xAA
OUT PORTC, R18
RETI
次のコードセグメントを持っています。そうであれば、次の命令をスキップします。
私の質問は以下のとおりです。
1)は、ポートBのビットのすべてにOUT DDRB, R16
書き込み0の場合、またはそれだけで、設定命令であるが、それはない書き込み何もしていますか?つまり、ポートBのビットはすべて0に設定されていますか?
2)これらがすべて0に設定されている場合、SBIC
以降の命令はスキップされます。しかし、次にスキップされる最初の命令、またはRETI
に達するまでのすべての命令だけですか?
コメントには、ポートが入力として設定されていると記載されています。何も書いていない。 'SBIC'はポートピンに接続された外部回路が何であれ返り、単一のビットだけをチェックし、単一の命令もスキップします。これはすべてマニュアルに書かれています。 – Jester
ポートのピンに 'LDI R16、0xFF'、' OUT PORTA、R16'のように1と0を書くことはできませんか?この場合、「SBIC」が返すものは外部回路に依存しないか、間違っていますか?最後に、「SBICが次の命令をスキップするかどうかを知ることは可能ですか? – Tendero
ポートが入力として設定されている場合、ポートへの書き込みは通常、内部プルアップを制御します(ただし、特定のチップのドキュメントを参照してください)。いいえ、「SBIC」がスキップするかどうかはわかりません。もしあなたがそこにそれを使用していることはありません。 – Jester