&size(20){&color(,#FFE9C8){''超初心者のためのPropellerアセンブリ言語入門''};};
&size(15){''原題:Assembly Language Primer for the Absolute Beginner''};
-----
状態:''この文書は現在翻訳中です''

原文:assembly_09.pdf

翻訳者:[[@kama_AGE>http://twitter.com/kama_AGE]]

対象読者:アセンブラ超初心者

注意:訳は意訳の部分も多くあります。また、原文の目次には存在せず本文には存在する章も、この文書の目次には入っています。

#contents

*はじめに [#p5af2b45]
(@kama_AGE 翻訳中)
''2進数の世界へヨウコソ!''

コンピュータは複雑に見えるにもかかわらず、実際には2つのことしかしません:
-数を足すか、それらに対して論理演算を行う
-コピーする

さらに、0と1の2種類の数しか理解しません。これらは「ON」「OFF」、「SET」「RESET」、「HIGH」「LOW」などとして、知られています。
どちらか片方が起こっている間は、もう一方は起こりません。


*中心となる概念 [#q0356904]
(@kama_AGE 翻訳中)
どのようなアセンブリ言語でも、プログラミングを始める前に、ある程度のバックグラウンドとなる知識をカバーしておかなければなりません。

計算機数学の大部分は、普通の数学に似ています。
ほとんどのトラブルは、いくつかの用語に加えて、異なる「数の表現」を学んでおかなければならないことに起因します。

さらに、私たちは、基礎的な数学コンピューターが行うカバーに必要とします。
より高いレベルことをするためにより大きな構造を組織するためにLEGO玩具がどのようにしてともに結合するかとは異ならない方法の中で、私たちが使用するのは、この基礎的な数学です。

さあ飛び込んでいきましょう!


**数の表現 [#t36d6761]
**コンピュータの数のサイズ [#efab27b5]
**共通のコンピュータの数値単位 [#m6b5e9e5]
**計算機の概念 [#fc8b0552]

*計算機数学 [#d4f3e157]
**足し算(ADD) [#y3de15b4]
**キャリーあり足し算 [#g528e60f]
**区切り [#zac3d9ed]
**余りの数 [#j0f35401]
**引き算 [#c9266b79]
**掛け算と割り算 [#ob3aea1c]
**10進数から2進数への変換 [#j27f3154]
**負の数・符号つき数値 [#j76d11fd]
**数の操作の例 [#b4abfc52]

*プロペラCPU特有の概念 [#t11cc93f]
(@kama_AGE翻訳中)
基本的な数学と必要な用語をカバーし、命令、メモリ、フラグ、そしてそれらの対話に取り組めるようになりました。


***クロック [#ee39b875]
***システムカウンタ [#k962869b]
***ハブ [#da9f2665]
***データのアライメント [#kb713716]
***コグ [#rff95dcd]
***コグ0 [#p2bdf148]
**命令 [#b7361a49]
**リトルエンディアン [#h4726ce3]
PropellerCPUは、リトルエンディアンです。

***数値とインデックス [#k876a7c5]
***RAM内の命令 [#g192ae6d]
***データ(文字列、ルックアップテーブル、など) [#zce4edef]
**プログラムカウンタ [#idf5f4d6]
**SPIN [#j1f56aaa]
**レジスタって何? [#pbb66007]
**定義済み定数 [#c2fb77e3]
これらは、何かのアドレスを指すラベルです。
例えば、「CNT = $1f1」といったものです。
以下に、COGメモリレジスタを識別する定数のテーブルがあります:
|PAR| $1f0| 読み取り専用 Boot Parameter|
|CNT| $1f1| 読み取り専用 System Counter|
|INA| $1f2| 読み取り専用 Input States for P31 - P0|
|INB| $1f3| 読み取り専用 Input States for P63- P32|
|OUTA| $1f4| 読み取り/書き込み Output States for P31 - P0|
|OUTB| $1f5| 読み取り/書き込み Output States for P63 – P32|
|DIRA| $1f6| 読み取り/書き込み Direction States for P31 - P0|
|DIRB| $1f7| 読み取り/書き込み Direction States for P63 - P32|
|CTRA| $1f8| 読み取り/書き込み Counter A Control|
|CTRB| $1f9| 読み取り/書き込み Counter B Control|
|FRQA| $1fA| 読み取り/書き込み Counter A Frequency|
|FRQB| $1fB| 読み取り/書き込み Counter B Frequency|
|PHSA| $1fC| 読み取り/書き込み Counter A Phase|
|PHSB| $1fD| 読み取り/書き込み Counter B Phase|
|VCFG| $1fE| 読み取り/書き込み Video Configuration|
|VSCL| $1ff| 読み取り/書き込み Video Scale|
これらは単に文脈のために提示されています、このあと、各定数があなたのために何をするか知る必要があります。


*ソフトウェアの用意 [#pa48b0a3]
**GEAR(Propeller デバッガ/エミュレータ) [#h8321778]
**Setupを構築 [#g18081ea]
**Setupを検証 [#c5acbebc]

*アセンブリ言語コードの解剖 [#x10a73f4]
**And now, the code: (finally!) ※ごめん訳が分からん@kama_AGE [#o30fab58]
**Propeller Toolからコードを取ってくる [#kfbebe7d]
**GEARでシミュレーション [#v1908895]
**プログラムセクション [#xe4305e5]
**アセンブリプログラム詳細 [#vc1f1c39]
**命令0:mov [#s6e0cb80]
**命令1:mov [#i58e9463]
**命令2:add [#yaffa79c]
**命令3:waitcnt [#ya2da029]
**命令4:xor [#tcc4c255]
**命令5:jmp [#ea628178]

*プログラムに関しての議論 [#cfb90033]

*ビット論理と操作演算子 ※Manipulation operators は操作演算子でいいのかな@kama_AGE [#j927e338]
**真理値表 [#a916f234]
**OR(ビットOR) [#o272e1b3]
***キャリーはどう?(パリティ) [#w6423c64]
***ビットマスク [#i6bf644f]
**他の論理演算の真理値表 [#tfcca434]
***XOR [#g7917711]
***AND [#t3859ce3]
***ANDN [#vf90bf50]
***NOT [#q9880cf1]

*補遺A [#v00788e8]
**アセンブリ言語プログラムのパージング [#t67b6c9c]

*補遺B [#w6166bbc]
**Propellerメモリアドレッシング [#r0b84cb1]

*暗黙アドレッシングの特殊な場合について [#m8960170]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS