問題タブ [microprocessors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - Atom-32bit-intel ボードの BIOS は IDT と GDT を作成しますか?
BIOS のみを搭載した Atom-32bit-intel ボード n450 を使用しています。私の目標は、APIC タイマーを使用して ISR (0x21) とリンクすることです。しばらくすると、IDT と GDT が既に存在し (おそらく BIOS によってビルドされている)、ビルドする必要がないことがわかりました (ソフトウェアは C 言語と AT&T アセンブリにあります)。
そこで、IDT のアドレスを使用して ISR を IDT にリンクしようとしました。
ISR33 : int $0x21 を呼び出そうとすると、ソフトウェアがクラッシュします: SingleStep CPU[1] エラー: Processor Running.
では、どこが間違っているのでしょうか???
備考: 私は eclipse Heros (AT&T アセンブリ) を使用しています。コードはプロテクト モードです (CR0.PE = 1 チェックしました。おそらく BIOS によって設定されています)。
assembly - 命令が長さ可変の場合の命令のデコード
いくつかの手順とそれに対応するエンコーディングを次に示します。
今日のマイクロプロセッサは32ビットまたは64ビットであることが多く、通常は4バイトまたは8バイトのチャンクでメモリからデータを読み取ると思います。ただし、命令の長さは可変にすることができます。マイクロプロセッサはこれらの命令をどのようにデコードし、実装を容易にするために一定の長さではないのはなぜですか?
c++ - C で記述された AVR micro のすべての 0 に変更されている Const Char 配列
私は、友人が彼の AVR でグラフィック LCD を動作させるのを手伝っています。数か月前は、すべて問題なく動作していました。それ以来、手つかずのままです。チップは ATMega32 から ATMega164P に交換されました。この変更により、多くのコードが機能しなくなったため、本質的に同じチップにフラッシュが追加されています。
エラーが発生している場所を絞り込みましたが、修正できません。const char 文字列へのポインターを渡し、その文字列を出力しようとしましたが、何らかの理由でスタック (ヒープ、何か他のもの?) が破損し、ポインターにすべてゼロが含まれています。これがどのように発生する可能性があるか、誰にも考えがありますか? 正確なタイミングに必要な -O1 レベルの最適化を有効にしました。変更なしで winAVR コンパイラにも切り替えました。また、デバッガーにアクセスすることもできず、限られた「印刷」スタイルのデバッグしかありません。
問題を引き起こしているコードのセクションは次のとおりです。
コードを実行すると、ディスプレイに「atest」と表示されます。これは、const char 配列がどの程度ゼロになっていることを示していますか? また、すべて「atest」を出力する次の行も試しました
これは、有効なポインターを取得していることを示していますが、すべてゼロを指しているように見えます。
また、メソッドの呼び出しを次のように変更しようとしました。
このコードは数か月前に動作することが知られており、実行中のビデオさえありますが、プログラム内のすべての関数で同じ問題が発生し、(スタック上で?) 渡された char 配列が動作していないようで、 0 にクリアされます。
興味のある方がいらっしゃいましたら、完全なソース コードのコピーをホストするよう手配できます。どんな助けや指針も大歓迎です!
vhdl - マイクロプロセッサ VHDL Spartan 3A からのデータの取得
vhdl コースで開発したマイクロプロセッサーをインスタンス化するアプリがあり、FPGA の LCD ディスプレイにもデータが表示されます。
マイクロと LCD を別々にテストしましたが、動作します。
今のアイデアは、マイクロ (フィボナッチ数列を生成するプログラム) のデータを LCD に表示することですが、数列の項を表示させることができません。
コード全体を次に示しますが、問題が発生する可能性のある部分は、マイクロのインスタンス化と、データの取得時 (機密リストに DATO_VALIDO とリセットがあるプロセス) にあると思います。
用語を正しく処理している可能性がありますが、LCD に表示すると正しい順序で表示されません。
擬似コードは次のとおりです。
私がやりたいことは、ASCIIに変換された後、異なる信号のすべての用語を保存することです。これらの信号は、dT1、uT1、dT2、uT2などです。
最後に、メイン ステート マシンには、値を保持する各信号の状態があり、項が表示されます。
io - ポートとは正確には何ですか?
一般に、マイクロプロセッサの I/O ポートは、マイクロプロセッサがリッスンしている RAM 内の特定のメモリ アドレスを参照します (間違っている場合は訂正してください)。
TCP/IP ポート、FTP ポートなどについて話すとき、「ポート」は同じ意味ですか?
質問が適切に表現されているかどうかはわかりません。正しくない場合は、ポートの理解が正確でないことが原因である可能性があります。
c# - プロセッサのキャッシュセクターサイズの決定
並列処理に関連するプロセッサキャッシュラインの最適化を中心にテストを構築しようとしています。具体的には、製品のセグメントが偽共有の非効率性によってどのように影響を受けるかをテストしています。これを行うには、適切なオブジェクトサイズ範囲でテストを考案できるように、プロセッサのキャッシュセクターサイズ(例:64バイト)を決定できる必要があります。では、この情報をどこでどのように取得できますか(プロセッサの仕様ページ、C#API呼び出しなど)?キャッシュセクターサイズは、キャッシュラインサイズとも呼ばれます。
注:Intelサイトでi7プロセッサーの仕様を調べましたが、これらの詳細が見つからないか、認識できない可能性があります。
x86 - また、レジスタ RAX、RBX などを R1、R2 などと呼びますか?
8086/8080 マイクロプロセッサを研究しています。それらで使用されるレジスタには名前があり、
- ラックス
- RBX
- RCX
- RDX
レジスタの名前が R8、R9... から R15 の場合、R8 まで続きます。知りたかった
また、レジスタ RAX、RBX などを R1、R2 などと呼びますか?
x86 - 8086/8088 にはいくつのレジスタがありますか?
私はコンピュータ アーキテクチャのコースを受講し、プロセッサにはそれぞれ 32 ビットのレジスタが 32 個あることを理解しました。今、私は 8086 には8 つのレジスタしかないことを読んだコンピュータ アーキテクチャのコースを勉強しています。しかし、私が読んだ本とこのウェブサイトには、多くの記録が示されています。8086 と 8088 のレジスタについて混乱しています。助けてください。
ノート:
プロセッサごとにレジスタ サイズが異なることをよく理解しています。レジスターの数で混乱しています。
assembly - LDA:8ビットレジスタに16ビットを挿入しますか?どういう意味ですか?
私は8085でアキュムレータが8ビットレジスタであることを読みました。では、どうして次の指示が真になるのでしょうか。
ここで、addressはLH順の「16ビット」アドレスです。
16ビットアドレスを8ビットレジスタに挿入するにはどうすればよいですか?
assembly - この Intel アセンブリ コードは何を意味しますか?
以下は、2 つの数値のうち大きい方を見つけるプログラムです。
上記のプログラムで、EQUは何を意味しますか? また、命令MVI A,01Hは EQU で何をしますか?
ここでPORT1は何を意味しますか?