6809.net
6809について
の編集・凍結
Top
/
6809について
[
トップ
] [
凍結
|
差分
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
設定
|
ヘルプ
]
MenuBar
6809について
6809命令表
6309について
6309命令表
getFD2D
6x09リンク
readme
本館
2006-03-27
link
readme
getFD2D & os9img2file
MenuBar
FrontPage
ページを凍結するにはパスワードが必要です。
B
I
U
D
H
[[]]
<br>
--
管理者パスワード:
-- 雛形とするページ --
6309について
6309命令表
6809について
6809命令表
FrontPage
InterWikiName
InterWikiSandBox
MenuBar
SandBox
getFD2D & os9img2file
link
readme
ヘルプ
整形ルール
** フラグ変化 6809でのプログラミング(というか昔のモトローラCPU全般?)の特徴として、 インテルCPU に比べフラグ変化が多い、ってのがあります。 これは、ロード、ストア命令でも、フラグ変化がおこり、このため わざわざ比較命令を用いなくても、0チェックや大小判定がすぐ行える、 というメリットがあります。 反面、見た目の命令の役割はダミーでフラグ変化のためだけに使用されたり、 もちろんレジスタ,フラグ両方意味ある動きのために用いられたりで、 プログラマの読む手間/管理の手間が、 そうでないCPUにくらべ結構大きくなります。 とくに6809の場合、短縮形の演算命令と、 汎用的な命令とでキャリーフラグの扱いが違うため、 考えずに(バイト数を減らそうと)命令の置き換えをすると バグってしまう場合があります。 ,adda #1,c変更,inca,c不変 ,deca #1,c変更,deca,c不変 ,cmpa #0,c変更,tsta,c不変 ,lda #0,c不変,clra,c=0 ,eora #$FF,c不変,coma,c=1 clr(a|b) や com(a|b) なんかは a,bを壊してよい状況なら cフラグのオン/オフをする命令として慣用的に用いられていました。 その他、lea では - leax,leay では zフラグが変化するが - leau,leas ではフラグ変化しない で、うっかり uレジスタをデクリメントのループカウンタに用いて 無限ループに陥る場合があったりしました。 フラグの存命期間が精精 2,3行とかならばマシですが、 5行10行と遡ったり、ルーチンコール前から存在していたりすると、 かなり追っかけたり把握したりするのは骨が折れます。 ~ フラグのために平行に動く別のシーケンス/空間が存在する感じです。~ (正直なとこ、初めて6809から8086に移ったとき、気持ちが楽になったのを覚えています^^;) ~
凍結する
凍結しない
タイムスタンプを更新
テキスト整形のルールを表示する
Last-modified: 2008-07-15(火)