タグ付けされた質問 「assembly」

これは、プログラミングされるマシンの命令セットに対応する低レベルのプログラミング言語です。

6
PIC16マルチタスクRTOSカーネルが機能しない理由は何ですか?
PIC x16マイクロコントローラー用のセミプリエンプティブ(協調)RTOSを作成しようとしています。私には、前の質問、私は、ハードウェアスタックポインタにアクセスすると、これらのコアは不可能であることを学びました。私はPIClist でこのページを見てきましたが、これはCを使用して実装しようとしているものです。 私のコンパイラはMicrochip XC8で、現在、構成ビットで4MHzの内部RC発振器が選択されたPIC16F616で作業しています。 コンパイラのヘッダーファイルを確認しながら、CでPCLATHおよびPCLレジスタにアクセスできることを学びました。そこで、簡単なタスクスイッチャーを実装してみました。 カーソルが最初の行(TRISA=0;)ではなく別の行(などANSEL=0;)にあるときに、再起動後にデバッガを一時停止してリセットし、カーソルにPCを設定すると、デバッガで必要に応じて機能します。デバッガーの最初の起動時に、これらのメッセージがに表示されますDebugger Console。 Launching Programming target User program running No source code lines were found at current PC 0x204 編集:私はそれがうまくいった理由はわかりませんが、デバッガは完全に動作するようになりました。したがって、上記の出力と段落は省略してください。 編集:このようにメイン定義を変更すると、以下のコードが機能します。これはプログラムアドレスでメイン機能を開始します0x0099。何が原因なのかわかりません。これは実際の解決策ではありません。コンパイラ固有のエラーがあると思います。 void main(void) @ 0x0099 { これが私のCコードです: /* * File: main.c * Author: abdullah * * Created on 10 Haziran 2012 Pazar, 14:43 */ #include …

3
マイクロプログラミングと機械語プログラミング
マイクロプログラミングレベルと機械語レベルの間で少し混乱しています。例えば: 実行中、両方のタイプのプログラムはどこにありますか? アセンブリ言語のtrue-op命令への1:1マッピングはありますか? どちらの形式もプロセッサアーキテクチャによって定義されていますか?

2
PICメモリマップを理解するのに助けが必要
いくつかの背景。さまざまなタイプの写真をプログラムするために、PicKit2でMPLABxを使用しています。現時点では16F887です。私はHi-Tech PICC Liteツールチェーンに固執しようとしていますが、いくつかのものがどのように組み立てられているかに不満が増しています。比較的高速でなければならない操作(8Mhzでの500nsの命令サイクルを考慮)は、完了するまでに最大20usかかります。それで、私はそれを処理するために自分のASMコードを挿入し始めました。 しかし、20ページのデータシートに記載されているメモリマップを理解するのが困難です。 プログラムメモリは0005hから始まります。ただし、23ページには、ポートAなどの特殊用途レジスタのファイルアドレスが表示されます。ポートAのアドレスは「05h」と表示されます。 0005hのメモリロケーションと05hにある専用レジスタを区別する方法がわかりません。専用レジスターを参照するにはどうすればよいですか? 私は古いHC11チップに対してかなり広範なアセンブラープログラミングを行ってきましたが、これはPIC asmコーディングへの私の最初の冒険です。ここでどんな助けもいただければ幸いです。

6
マイクロコントローラとマイクロプロセッサのプログラミングの違いは?
そのため、マイクロプロセッサにアセンブリをプログラミングするときに、本やチュートリアル、リファレンスをよく目にします。マイクロコントローラと呼ぶ人もいます。 例えば、Atmel ATtiny2313 ....私はいくつかのチュートリアルを見ました、いくつかはそれをマイクロプロセッサと呼び、いくつかはそれをマイクロコントローラと呼びますか? どっち?そしてそれらを(基本的に)プログラミングすることは同じですか?(組立中)

3
PORTとPINの読み取りの違い
PORTAとPINAの違いは何ですか?ポートとそのピンの関係は何ですか?私は本当に混乱しています!!! PORTの読み取りの例:(読み取りピンはここでは役に立ちません) アセンブリf = 1MHZ ATmega8 1msごとにPORTBを補完する必要があります。(Dutycycle = 50%) LDI R16,$FF OUT DDRB,R16 MAIN: LDI R16,00 DELAY:CPI R16,200 BREQ LOOP INC R16 RJMP DELAY loop:IN R17,PORTB COM R17 OUT PORTB,R17 OUT R17,PORTB RJMP MAIN

5
なぜこのコードはもっと単純な方法で書かれていないのですか?
アセンブリ言語に取り組んでいるときに質問に遭遇しました。ここに質問があります: ビットP2.2が屋外照明の制御に使用され、ビットP2.5が建物内部の照明の制御に使用されていると仮定します。外光をオンにし、内光をオフにする方法を示します。 与えられた解決策: SETB C ; CY = 1 ORL C, P2.2 ; CY = P2.2 ORed w/ CY MOV P2.2, C ; turn it on if not on CLR C ; CY = 0 ANL C, P2.5 ; CY = P2.5 ANDed w/P2.5 MOV P2.5,C ; turn it off …

3
趣味のARMセットアップは、このAVRのセットアップと同じくらい簡単ですか?
私は、Atmel AVRのセットアップが趣味のアセンブリ言語プログラミングでいかに簡単かを気に入っています。例えば: ブレッドボードにプレーンなATmega DIPチップ{A}を置く コンピュータに接続されているUSBプログラマ{B}に 6本のピンを接続します(例)。(チップは、書き込み中と通常の動作中の両方で、この接続の一部によって給電されます)。 任意のテキストエディターを使用してアセンブリ言語プログラムを記述します。 avra {C}を使用してプログラムをアセンブルします avrdude {D}を使用してプログラムをチップに書き込みます ARMの世界は、基本的にはより高いレベル/より複雑なものですか、それとも{A} {B} {C}と{D}に相当する、同様の簡単なセットアップを可能にする同等のものを教えていただけますか?Windowsのみのものは関係ありません。 ありがとうございました。 注:単純なセットアップの動機はアセンブリプログラミングであり、コンパイラとIDEを完全に回避したいと考えています。
8 avr  arm  assembly  avrdude 

1
ループが離れて最適化されている間
マイクロコントローラープログラムに次のコードがあります。 // Wait for ADC conversion to complete while ( ( ADCSRA && _BS( ADSC ) ) == _BS( ADSC ) ) {} ADCSRAは、アナログ変換が完了するとその値を変更するレジスタであり、ビットがクリアされるのを待ちたい場所です。このビットは、変換が完了したことを示します。 結果のアセンブリコードを見ると、ループ全体が1つの命令に置き換えられています。 in r24, 0x06 ; ADCSRA レジスタは読み込まれますが、その値はテストされていません!? プログラムを不必要に遅延させることなく、レジスターを再チェックし続けるようコンパイラーに指示するには、C ++コードをどのように変更する必要がありますか? 私はavr-gccツールチェーンを使用しています。 編集: 私は次のようにコードを変更しました(Thnx:lhballoti): while ( ( ADCSRA & _BS( ADSC ) ) == _BS( ADSC ) ) …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.