AVRのアセンブラーを理解する方法

みなさんこんばんは! 「アセンブラー」と呼ばれる居心地の良い世界から放送を行っています。 トピックがAVRマイクロコントローラーに関するものであることをすぐに説明します-そして、この投稿が他のタスクにアセンブラーを使用したい人に役立つかどうかはまだわかりません。 事実、ほんの数日前に私はアセンブラーをゼロから学び始めました-1つのデバイスを作成する必要があります-そして私はそれですべてを自分でやることに決めました。 それで-ある日、アセンブラーを学ぶのは絶対に役に立たないことに気付きました アセンブラーしか理解できない! つまり、アセンブラーでプログラムを作成したいすべての人にとって、マイクロコントローラーが物理的にどのように機能するかを詳細に調べてから、コマンドの複雑さを調べることを強くお勧めします。

ですから、おそらく、最初からアセンブリ言語プログラミングでこれらのことをどのように理解した正確に説明する短いシリーズの記事を始めるつもりです。ASMとは何かを理解していない人にとってはこのビジネスに携わる人たちの言葉は非常にうまい。



DIHALTのプレゼンテーションからこのトピックを多かれ少なかれ味わったとすぐに言わなければなりません。したがって、これらの記事は、スーパーデューパーアセンブラーマイクロコントローラー言語からほとんどの人が理解できる言語への一種の翻訳になります。 まあ、私はプレイの過程で教祖が私を修正することを望み、突然間違ったことを説明すると、彼らは私を修正します。

それで、数日前に作ったアセンブラーに関する最初の結論は、コアに衝撃を与えました-そして、私は午後11時から午前5時までDI HALTの記事の後ろに座りました-その後、私は幸せで幸せに寝ました。 マイクロコントローラのアセンブリ言語の本質を理解しました。

どうすればこれをもっと簡単に説明できますか? あなたはまさにその本質から始める必要があると思います。

***

最初は、技術的な詳細には触れません(次の記事でそれらについて説明します) -3つのキャラクターがあることを想像してください

1.マイクロコントローラーは 、ロシア人あるイギリス人のスティーブです。 彼は英語を完全に知っていますが、ロシア語ではまったく理解していません。一語でもありません。 英語のみ。 彼は議論を失い、ロシアが彼に求めるすべてを無差別に行うことを約束した。

2.アセンブラーは 、母親が英語で父親がロシア語である翻訳者Vasyaです。 彼は英語とロシア語の両方を完全に知っています。

3.私たちはイギリス人が来たロシア人です。 まあ、つまり、私たちは私たちです=)同時に、私たちはロシア語を完全に知っていますし、(!!!)辞書で少し英語を-ほんの少しだけ。

***

この状況を想像してみてください-イギリス人があなたの部屋の椅子に座っています。 そして、突然あなたがウィンドウを開いたとき、あなたはあなたのコンピュータに座ってこの投稿を読みます! それは不運です! 風が吹いていて、カーテンが帆になっています...それを閉じるといいでしょう! しかし、それは椅子から立ち上がって足をシステムから離し、スリッパに押し込み、マグカップ(ビール)を脇に置き、要素と戦うのは怠け者です。 そして、あなたは突然、私たちの部屋に恥ずかしい英国人がいることに気づきます、それは運転する時間です! そして、あなたは彼にとても優しく言います、「男! 窓を閉じてください、そうすれば再び椅子に座ることができます!」そして彼は座り、戸惑いながらあなたを見つめ、何もしません! もちろん、スープで中傷することはできますが、それでも彼はあなたを理解しません! それから、あなたはあなたの友人翻訳者ヴァシリーに電話します-彼は来て、椅子で英国人の隣に座ります。 そして、あなたは言います-翻訳:「スティーブ、窓を閉じて、椅子に座ってください!」翻訳者は英語に翻訳します-英語人は窓を理解して行き、閉じてから、椅子に来て座っています。

この時点で、このWe-Assembler-Controllerチェーンにおけるアセンブラーの役割を理解する必要があります。

つまり、アセンブラーとは誰もがどのように理解するのでしょうか? 次に読み進めてください。

***



それで、この状況を想像してください。 あなたはVasyaに言います-「まあ、そんなことを聞​​いてください-要するに、私は自宅で電卓を忘れて、56983を2で割って、スティーブに何度も拳を押すように言ってください」これは「DIRECTIVE」と呼ばれます-言い換えれば、ディレクティブはVasyaのタスクであり、その結果はSteveのアクションです。



別の状況があります-Vasyaに「スティーブに28,491回くじくように言ってください」と言うと、Vasyaは単にあなたの言葉を英語に翻訳します。 これはOPERATORと呼ばれます



すべてが単純です-ディレクティブがあり、演算子があります。 オペレーターは、Steve-Vasyaに何をすべきかを直接示しており、ここでは要件を英語に翻訳するだけです。 そして、指令はVasya自身の仕事です-そしてVasyaは最初にあなたが彼に言ったことを行い、次に結果に応じてSteveに何かを伝えます。



今、私たちはイギリス人を定期的に苦しめます! しかし、まず翻訳者のVasyaをよりよく知る必要があります。 次のことを知っておく必要があります-Vasyaは常に暗黙的にあなたに従います-彼が言われたことは、彼がします。 Vasinの計算機には小数がありません-腕立て伏せの例を見ると、56983 \ 2 = 28491.5-しかし、Vasyaのすべては小数点以下で減衰します-そして、彼は整数だけを見ます-28491.000001または28491.9999999がある場合は関係ありません-Vasyaの場合、これは1つのイチジクですどちらの場合も28491になります。 何も丸められません。 Vasyaに関するより重要な情報。 Vasyaは残酷です-彼はスティーブが2万8000回押し上げることに恥ずかしがるのを気にしません。 彼らは彼に言った-Vasyaは翻訳した。 そして、翻訳されただけでなく、あなたが頼んだことを強制されました。 スティーブが二三五百五十三回目の腕立て伏せで亡くなった場合、それはもっぱらあなたのせいです。



実際のところ、これですべてです。 次の投稿では、さらに深く掘り下げます-今のところ、これを理解するのに十分です。 この状況を想像して、何が何で、誰がどの役割を果たし、ディレクティブがオペレーターとどのように異なるかを理解してください。

そして、適切な名前ですべてを呼び出し、アセンブラーが大人としてマイクロコントローラーとどのように動作するかを大まかに推定しようとします。



All Articles