プロが教えるわが家の防犯対策術!

お世話になります

PIC系のアセンブラでskipzはオペランドが0の場合に次の行をスキップする命令でよろしいのでしょうか?
btfscのbyte判定版みたいな使い方なのでしょうか?

ご存知の方がいましたら教えていただけないでしょうか

A 回答 (4件)

picについてはよく知りませんが、アセンブラの常識でいえば、「オペランドが0のとき」ではなくて、「ゼロフラグが立っているとき」ではないでしょうか。


たぶん、オペランドは取らないで、skipz命令の直前に加減算命令やテスト命令を実行して、フラグを変化させるのだと思います。

この回答への補足

#1さま、#2さま回答ありがとうございます
アセンブラは種類が多すぎですね
今回のはPIC系のアセンブラのサンプルの一部で、CCSのコンパイラも正常にとおるのですが、PIC系の文献に無い使い方なので、いまいち理解に苦しんでいます

抜粋
movrf AAA_Status,W
xorlw BBB_Status
skipz W
goto CCC

このようにskipzにオペランドが存在しているんです、
想像では皆様の回答のように0ならスキップだと思うのですが、なにせプログラムは一命令間違えるだけで正常に動作しないので、確証がもてません

補足日時:2005/11/14 22:15
    • good
    • 0

zak



>アセンブラでskipzはオペランドが0の場合に次の行を
>スキップする命令?



1 DEC100
2 SKIPZ
3 GOTO 10
4 xxx

[100]番地-1 IF=0 JMP to xxx

今アセンブラ知っている人
中々いないので少し思い出したので回答します。
    • good
    • 0

Zフラグが1のときにPカウンタを+2するつまり1命令スキップする命令のようです。


従ってオペランド不要です。

この回答への補足

評価ボードにサンプルでついてきたコードに記載されているので、果たして他のアセンブラと同じように、オペランドを除いてしまってよいのでしょうか?

補足日時:2005/11/14 22:28
    • good
    • 0

picについて、分かりやすく解説しているサイトを見付けました。


条件付きskip命令についてはここを見て下さい。
http://www.ccad.sccs.chukyo-u.ac.jp/~mito/syllab …

結構情報料が多いので読みでがあると思いますが。

参考URL:http://www.ccad.sccs.chukyo-u.ac.jp/~mito/syllab …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!