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で質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) PIC16F1シリーズマイコンのNCO機能について 1 2023/04/18 08:41
- システム CPUの問題について 2 2022/07/09 12:04
- 国産車 【自動車のエアコンはレジスタを介して回路が成立する】の、レジスタって何ですか? 2 2023/01/22 21:03
- その他(プログラミング・Web制作) パイプラインに詳しい方 5 2022/07/04 16:47
- 工学 レジスタとラッチの動作の違いについて教えてください 1 2022/11/30 23:13
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- IT・エンジニアリング アドレス空間(メモリマップ)について教えてください。 マイコンには必ずメモリマップが記載されています 3 2022/06/17 09:42
- 中学校 2学期実力テストの国語の勉強法 1 2022/08/01 00:17
- その他(プログラミング・Web制作) プログラムについて。 2 2022/04/07 18:48
- 国産車 スズキ キャリーのブロアーファンが止まるのはなぜ? 4 2022/07/17 17:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windowsはオープンソースですか?
-
アセンブラからC言語に変換する...
-
z-80アセンブラの課題なのです...
-
計算機科学 計算機科学に詳しい...
-
nasmとgccのコマンドで得られる...
-
CASL アセンブラ命令 アプリ機能
-
0xffffとは?
-
ものづくりに向いているプログ...
-
エクセルVBAのIf,Then 構...
-
文字参照は10進数と16進数では...
-
verilog 符号付加減算(最上位...
-
減算器がオーバーフローした場合
-
8ビットのデータの、先頭ビット...
-
整数除算の意味とは?
-
8086で加算減算とキャリーフラグ
-
if($a & $b) の意味
-
これらのプログラミングで使う...
-
割り込みベクターをC言語で書...
-
ビットシフトってどんな時使うの?
-
シーケンサープログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ライン数とステップ数の違いは?
-
Windowsはオープンソースですか?
-
アセンブラからC言語に変換する...
-
実行ファイルからソースはみれる?
-
アセンブラ言語がわかりません。
-
アセンブラエディタ
-
PICに書き込むプログラムや変数...
-
SHの命令の意味について
-
このアセンブラの意味を教えて...
-
void __cdeclなど_
-
GCCの.cfi_系について
-
PC-9801でマシン語を学習するに...
-
アセンブラのLA
-
アセンブラで割り算
-
汎用レジスタのワーキングビッ...
-
エンディアンについて。
-
C to 68000アセンブラ
-
PICはアセンブラとC言語のどち...
-
素朴な疑問 (C言語とアセン...
-
アセンブラwordという単位
おすすめ情報