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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MIPSアセンブラ言語について
-
汎用レジスタのワーキングビッ...
-
アセンブラのLA
-
アセンブラからC言語に変換する...
-
PICに書き込むプログラムや変数...
-
ライン数とステップ数の違いは?
-
素朴な疑問 (C言語とアセン...
-
このアセンブラの意味を教えて...
-
フリーの6502アセンブラ
-
アセンブラ(アセンブリ)の何か...
-
組み込み系C言語の学習法
-
アセンブラの学習法
-
解析魔法少女を読んだ方に質問
-
アセンブラのコマンドについて
-
組み込みソフトのわかりやすい...
-
アセンブラエディタ
-
アセンブラの擬似命令について
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
エクセルVBAのIf,Then 構...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アセンブラからC言語に変換する...
-
ライン数とステップ数の違いは?
-
実行ファイルからソースはみれる?
-
PC-9801でマシン語を学習するに...
-
[C言語→アセンブリ言語]はどう...
-
void __cdeclなど_
-
アセンブラwordという単位
-
アセンブラ言語がわかりません。
-
バイナリの実行ファイルをgccを...
-
SHの命令の意味について
-
PC-9801 MS-DOSでの実行ファイ...
-
アセンブラエディタ
-
PICに書き込むプログラムや変数...
-
PICのアセンブラからC言語へ変...
-
アセンブラのLA
-
【H8マイコン】HEWで埋め込みア...
-
ニーモニックコードを使って割...
-
7セグメントLEDの点灯について
-
アセンブラのコマンドについて
-
MASMの機種依存についてお尋ね...
おすすめ情報