No.6ベストアンサー
- 回答日時:
新人さんなのかなあ
社内の他の人に訊いてコミュニケーションとる&スキルアップすることも仕事のうちなのでそちらを勧めます。
あとソフト屋の先輩としてアドバイスできることは、とにかくノートを一冊用意しましょう。
意味のよくわかってないことがあるならノートに調べて書く。やり方がわからないことがあるならそれも含めて頭の中のイメージをノートに書く。わからない部分を埋めていく。思考の道筋を見える形にする。
これ以上は申し訳ないが時間割けないのでもっと親切な方に任せます。
以下は最後の補足。
SH2はしばらく使ってないので定かでないが
スタックにいれるのは
add #-64,r15
mov.l r0,@(0,r15)
...
mov.l r15,@(15,r15)
かな?
Cでアルゴリズムを書いた例。
単純なプログラムでCコンパイラが吐き出したアセンブラソースをCソースと比較してみてレジスタの使い方を学ぶという方法もあり。
typedef unsigned long uint32t:
#define NUM_REGS 16 /* レジスタ数 */
#define NUM_BITS 32 /* レジスタのビットサイズ */
uint32_t reg[NUM_REGS];
/* レジスタ regsの番号*rreg、ビット*rlocを先頭に1のビットを探す */
int walk_bittest( int *rreg, int *rloc, uint32_t *regs )
{
int reg = *rreg;
int loc = *rloc;
int found_flg = 0;
uint32_t bitwalker = (1 << 0); /* set to LSB */
/* 1のビット見つけるまでループ回す */
while( reg < NUM_REGS ) {
while( loc < NUM_BITS) {
/* walker found 1 ? */
if ((bitwalker & regs[reg]) != 0) {
found_flg = 1;
goto END;
}
/* walk to next bit */
bitwalker <<= 1;
if (++loc == NUM_BITS) { /* all bit tested ? */
/* yes, reset bit location to LSB */
bitwalker = (1 << 0);
loc = 0;
break;
}
}
reg++;
}
END:
*rreg = reg;
*rloc = loc;
return found_flg;
}
No.5
- 回答日時:
専門家さんは呆れてさじを投げちゃったのかな?
>課題ならいいのですが、実務なので焦ってます。
もっと性質が悪いでしょ。それ。
仕事でやる話なら、同僚なり先輩なり上司に訊くべき話。
余談
SH7211ってSH2のお仲間なのね。
RISCの端くれだからそりゃあpush/popに専用命令なんかないですね。
No.4
- 回答日時:
walking bit testね。
納得。でもこれって公認された言葉かなあ?1のビットを端からずらして(歩かせて)テストして、1であるところのレジスタとビット位置を調べる、ということでいいのかな?
で、やり方は↑のとおり。(笑)
スタックに入れる、ビットシフトする、テストorコンペアする具体的方法はCPUのマニュアルを参照してください。というかひととおり目を通してください。用意されている道具(レジスタ、フラグ、命令、メモリ)を組み合わせて使って何かを実現するというのは現実世界と何ら変わらないんよ。わからない場合は紙にイメージを書いてみて。
正直、この質問が何かの課題だったら、考えること自体に意味があるのでもうこれ以上教えません。
No.3
- 回答日時:
専門家に任せますが(^^;
walking bit test という言葉も知らなかったので調べてみたのですが
メモリか何かのテストですか?
---
Dear Maxim, I’m using your software, beside my Audio Precision System, for fast evaluation and when I am on the „road“ for nearly two years and I am very happy with it. When I asked for the “Bit True Test” in the pro version, for testing Digital to Digital Systems, I was thinking of the so called “walking bit” test (after a stark sequence, only one bit at a time is 1, and all the others are 0, and this one bit is “walking” on all positions until the test ends with a stop sequence). What do you think about this sort of implementation?
---
でそれはそれとして、
> レジスタの値をスタックにコピーするにはアセンブラでどのようにかくのでしょうか?
だから、使っているCPU(やアセンブリ言語)によって
違うんだから書けといわれたって無理でしょ。
レジスタ名が r0 ~ r15になってるCPUなんて幾つもありますよ。
ふつーは、pushすりゃあいいんだろうけど 68k みたいに便利な命令持っている石もあるし。
この回答への補足
補足不足ですいません。
RENESASのSH7211を使っています。
自分なりに調べてみたのですがPUSH,POP命令はありませんでした。
No.2
- 回答日時:
> ワーキングビットテスト
ANo.1さんと同じく意味不明。「ワーキング」なビットテストって聞いたことありません。誰かの造語かな?
単にあるビットの0/1を調べるビットテストのことだとしても、普通レジスタの内容は非破壊で調べるので暴走はしないですけど。
ちなみにある時点のレジスタ全部の値を調べたいなら、全レジスタをスタックにだーっと積んで(つまりスナップショットを取る)、そこの内容を調べればよろし。
この回答への補足
すいません、ワーキングではなくウォーキング(WalkingBitTest)でした。
レジスタの値をスタックにコピーするにはアセンブラでどのようにかくのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
バイナリの実行ファイルをgccを...
-
アセンブラのコマンドについて
-
実行ファイルからソースはみれる?
-
【PICマイコン】一般製品にPIC...
-
アセンブラwordという単位
-
void __cdeclなど_
-
VC6でIDEでソース部分のアセン...
-
最初のアセンブラ
-
汎用レジスタのワーキングビッ...
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
エクセルVBAのIf,Then 構...
-
一般のソフトで画像を扱う場合...
-
ビットシフトってどんな時使うの?
-
レジスタの数
-
C++ のDLLがdelphiで読めない
-
シーケンス制御についての質問...
-
情報科学の飽和演算、ラップア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
アセンブラからC言語に変換する...
-
アセンブラ言語がわかりません。
-
PC-9801でマシン語を学習するに...
-
バイナリの実行ファイルをgccを...
-
ニーモニックコードを使って割...
-
[C言語→アセンブリ言語]はどう...
-
アセンブラで割り算
-
実行ファイルからソースはみれる?
-
PDP-11のアセンブラ課題
-
PICはアセンブラとC言語のどち...
-
void __cdeclなど_
-
アセンブラのLA
-
MASMの擬似命令「ASSUME」について
-
アセンブラの数値比較
-
パソコンについて。
-
アセンブリ言語について。
-
PICに書き込むプログラムや変数...
-
アセンブラエディタ
-
SHの命令の意味について
おすすめ情報