5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

機械語なら俺に質問しろ!その2

1 :デフォルトの名無しさん:2012/12/29(土) 08:00:24.36
漏れは今までにC、C++、Pascal、HSP、JS、VBなど
数々の言語を極めてきたがやはり一番手にしっくりくる言語は機械語だ。

だから、機械語のことなら何でも質問しろ!
ただプログラムのコードなんかは長くなるがな。 あ、ASMの話でもいいよ。

2 :デフォルトの名無しさん:2012/12/29(土) 08:35:37.10
STAX B

3 :デフォルトの名無しさん:2012/12/29(土) 09:25:57.44
The previous thread is...
http://toro.2ch.net/test/read.cgi/tech/1035288252/

4 :デフォルトの名無しさん:2012/12/29(土) 10:08:23.50
糞スレ勃てんなボケが!

5 :デフォルトの名無しさん:2012/12/29(土) 10:10:05.75
LSI C-80のランタイムかぁ。掛け算はアセンブラでがちに書いているだろうけど、
printf()系はCで書いたレベルだろうしなぁ。

6 :デフォルトの名無しさん:2012/12/29(土) 10:33:43.28
この時代の組み込み用コンパイラのライブラリなんてサンプルプログラム感覚だろう。
ソースが付いてるのは好きに直せって意味だし。

7 :デフォルトの名無しさん:2012/12/29(土) 11:16:36.63
関連スレ

アセンブラ
http://toro.2ch.net/test/read.cgi/tech/1314512680/l50

8 :デフォルトの名無しさん:2012/12/29(土) 12:19:41.81
ライフボート(笑)

9 :デフォルトの名無しさん:2012/12/29(土) 12:51:30.13
板違いだろ
昔のPC板に行けよ

10 :デフォルトの名無しさん:2012/12/29(土) 13:26:37.91
ARMかMIPSあたりの質問カモーン

11 :デフォルトの名無しさん:2012/12/29(土) 14:30:49.57
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

12 :デフォルトの名無しさん:2012/12/29(土) 17:08:42.56
バイナリエディタで Hello, world! と表示するプログラムを作った頃が懐かしい
今なら nop や適当なパディング詰めておく事で
アドレスを指定しやすくするなどの工夫が思いつくのだが

13 :デフォルトの名無しさん:2012/12/29(土) 19:59:52.06
人造人間キカイダー

14 :デフォルトの名無しさん:2012/12/29(土) 22:32:23.16
ピーガーピービョンビョン

15 :デフォルトの名無しさん:2012/12/29(土) 22:45:52.35
ほんにょごにょん

16 :デフォルトの名無しさん:2012/12/30(日) 04:45:59.92
>>5 fmtio.lというのがsprintfの実装でした。源流はunixですね。
素直なcで書かれてます。fmtio2.lというのがOS依存のprintf系実装。
1文字出力の関数だけが違って、フォーマッターの機能は共通に使えるように
うまく階層分けされていました。

17 :デフォルトの名無しさん:2012/12/30(日) 06:27:41.56
いきなりsprintfとか行っちゃうの?
例えばUNIXだったらwrite(2)を叩くぐらいから始めるのでは。

ところで機械語と言ったらアセンブリじゃなくていきなりバイナリ打ち込み?
実行ファイルのフォーマットの理解とかからスタートなん?

18 :デフォルトの名無しさん:2012/12/30(日) 09:01:55.91
組み込みなら、アドレスマッピングを意識するだけ。

19 :デフォルトの名無しさん:2012/12/30(日) 19:15:15.42
>>17
いきなり打ち込みじゃないならアセンブラスレにでも行けばいい。
実行形式ファイルを丸々作る必要はなく、
char main[] = { ...
とかでもいいだろうし、デバッガで実行中にメモリを書き換えてもいいだろう。

20 :デフォルトの名無しさん:2012/12/30(日) 19:19:03.02
>>19
>char main[] = { ...
>とかでもいいだろうし、デバッガで実行中にメモリを書き換えてもいいだろう。

RAM上のコードはプログラムとして実行できると決め付けてないか?

21 :デフォルトの名無しさん:2012/12/30(日) 21:27:00.35
パーミッション?プリフェッチ?

22 :デフォルトの名無しさん:2012/12/31(月) 11:41:39.50
石の好き好きだろう

データRAMはインストラクションフェッチ対象外、
と聞いたときは、カルチャーショックをうけたもんさ
NULLが0じゃない系があるときいたときもね(関連)

23 :デフォルトの名無しさん:2012/12/31(月) 11:45:26.21
>>17,19
非組み込みであっても、平時はコンパイラ、アセンブラも活用するが、
デバッグ時や日常雑事でバイナリエディタでコード開いて、
ちょちょいっといじったりするのはマシン語のノウハウの領域

24 :デフォルトの名無しさん:2012/12/31(月) 16:14:58.73
>>20
手段はいくつもあるという話をしただけで、決めつけている文章には見えないんだけど。
どう書けばよかったか教えてくれる?

25 :デフォルトの名無しさん:2012/12/31(月) 16:28:57.67
>>24
>手段はいくつもあるという話をしただけ

>>19に書かれてる手段というと

・char main[] = { ...
・デバッガで実行中にメモリを書き換え

↑の2つだけど、どっちもRAM上のコードを実行する話じゃないの?

26 :デフォルトの名無しさん:2012/12/31(月) 18:42:50.82
>>24
本人ではないが、「決めつける」というのは「どのような系でも可能であると想定する」
ということでは。
実際これが駄目だと思われるOSの例を思いつくけども。
特に断りもなくさらっと書くなら汎用な方法を書くべきではないかと。

27 :デフォルトの名無しさん:2013/01/02(水) 16:00:26.27
>>25
> ↑の2つだけど、どっちもRAM上のコードを実行する話じゃないの?
一つ目の例は ROM になるかどうかは実行環境次第でしょ。
そして、RAM だとすると 19, 24 がどう悪いの?
19, 24 に書いてないことで非難されても困るんだけど。

>>26
> 特に断りもなくさらっと書くなら汎用な方法を書くべきではないかと。
俺はそうは思わないけど、君が汎用的な方法を書くことを非難したりはしないからどうぞどうぞ。

俺は、あれでもこれでもいい、という言い方をしたつもりであって、
あれかこれでなければならない
という言い方をしたつもりはないんだよね。
沢山あるやり方の中から、毛色の違う二つを例示したつもりであって、網羅したつもりではない。
「網羅したつもりのように見える」という話であれば、 24 に書いたようにどう書けばよかったか教えてほしい。
「網羅すべきだ」というなら、すべきことをしなかったというのは認めるが、俺にはそんなつもりはないから、網羅したい誰かがやればいい。

28 :デフォルトの名無しさん:2013/01/02(水) 16:12:33.07
>>27
>一つ目の例は ROM になるかどうかは実行環境次第でしょ。

const 付いてなきゃ RAM 以外ありえんのじゃないの?

29 :デフォルトの名無しさん:2013/01/02(水) 16:15:56.61
>>27
>俺は、あれでもこれでもいい、という言い方をしたつもりであって、

狭い知識でしか語ってないから馬鹿にされてんだよいい加減気付け

30 :デフォルトの名無しさん:2013/01/02(水) 17:33:55.52
おまえもな

31 :デフォルトの名無しさん:2013/01/03(木) 11:12:59.82
機械語っていうから低レベル(技術のレイヤーの)なことにすごく詳しい人が
書き込んでるのかと思ったらそうでもないのか。
単に「数字の羅列でプログラムが書ける俺ってカッケー」みたいな感じ?

32 :デフォルトの名無しさん:2013/01/03(木) 11:15:52.36
>>28
リンカスクリプトでもなんでも好きに書けばいいし、ROM に焼いてしまえば const つけなくても ROM だろう。
これも網羅したつもりはないからね。

>>29
俺は馬鹿にするなとは主張してないから、好きなだけ馬鹿にしたらいいし、君の広い知識も披露していくといいよ。

33 :デフォルトの名無しさん:2013/01/03(木) 11:23:06.67
>>32
>リンカスクリプトでもなんでも好きに書けばいいし、ROM に焼いてしまえば const つけなくても ROM だろう。

char main[] なんてHEXファイルにも現れないもんどーやってROMに焼くの?
配列そのものと配列の初期値と勘違いしてないか?

34 :デフォルトの名無しさん:2013/01/03(木) 11:53:39.47
>>33
どっからどこまで焼くべきかなんて自分で分かるんだから好きに焼けばいい。

> 配列そのものと配列の初期値と勘違いしてないか?
そんなん環境によると思うが、環境に合わせたコードを書けばいいだろう。
だいたい、俺はどこでも動くと言った覚えはないし、そもそも >20 に対して「決めつけてるつもりはない」という意味の
返信をしているんだから、スタートアップが _main にジャンプした場合にそこが必ず実行可能だと主張していない
と解釈してもらって当然じゃないかと思ってるから、そうではないというなら説明してもらいたい。
そして、配列の初期値をコピーした _main を実行したとしても、コピーの必要のないグローバル変数の _main を実行
したとしても、どちらとも矛盾する主張をここまでにしたつもりはないよ。

で、 char main[] = { ... の場合に、配列の初期値なんてものを作って、実行時にコピーする環境が実在するの?
作れば作れるんだから実在するのかも知れないけど。
これ、俺はグローバル変数のつもりだったんだけど、もしかして、ローカル変数ならばって話をしてる?だとしたら
下らないことにつき合わせてごめんね。

35 :デフォルトの名無しさん:2013/01/03(木) 11:58:21.96
マシン同士の会話が始まっちゃったんで
どっちかが焼き切れるのを待とうや

36 :デフォルトの名無しさん:2013/01/03(木) 12:07:40.19
>>34
>で、 char main[] = { ... の場合に、配列の初期値なんてものを作って、実行時にコピーする環境が実在するの?

ROM化前提ならそれが普通。

37 :デフォルトの名無しさん:2013/01/03(木) 12:14:04.96
>>34
>で、 char main[] = { ... の場合に、配列の初期値なんてものを作って、実行時にコピーする環境が実在するの?

ローダーがRAM上にプログラム読み込んで実行する環境しか知らんみたいね。

38 :デフォルトの名無しさん:2013/01/03(木) 14:27:54.77
実家から戻ってきてみたら、まだやってたぜこれ

そんなことよりおまえらことよろな

39 :デフォルトの名無しさん:2013/01/04(金) 04:05:14.23
ん、今年も宜しく。

40 :デフォルトの名無しさん:2013/01/04(金) 05:01:31.35
LSIC-85 で、stpcpy見つけてうまくいったから、RX200で使おうとしたら、無かった。
LSIC.man 見たら、MS/DOSでしか使えないって書いてあった(w

41 :デフォルトの名無しさん:2013/01/04(金) 05:27:58.05
>LSIC-85 で、

新製品?

42 :デフォルトの名無しさん:2013/01/04(金) 05:44:46.63
>>40
glibcやnewlibにもあるしそんな珍しいもんでもないと思うが。
http://www.gnu.org/software/libc/manual/html_node/Copying-and-Concatenation.html#index-stpcpy-502
http://sourceware.org/newlib/libc.html#stpcpy

43 :デフォルトの名無しさん:2013/01/04(金) 05:47:13.65
http://pubs.opengroup.org/onlinepubs/9699919799/functions/stpcpy.html

44 :デフォルトの名無しさん:2013/01/04(金) 15:33:17.32
>>34
char main[]のアドレスが実行可能かどうかもアレだけど、
そもそもこれってリンクの段階でリンカはシンボル名しか見てなくてそれが関数
なのか配列なのかはお構いなしってことだよね。
普通Cの処理系ってそういうものなんだっけ? 例えば配列だとリンクできないような
処理系はないのかな?

45 :デフォルトの名無しさん:2013/01/04(金) 15:48:11.68
>>44
処理系に拠るんじゃないかな。
Cだと最初の初期化ルーチンで初期化を行った後にmain()を呼び出すけど、
リロケータブルオブジェクトには大抵セグメント情報が付いてて、コードセグメントに
配置された初期化ルーチンからデータセグメントのmain[]を呼び出せない
アーキテクチャは普通にあるから、それをリンカがエラーとするか、データセグメントに
配置されたmain[]のアドレスを単なる値としてリンクを成功させるかは処理系に
拠る筈。安全の面では前者が望ましいのは勿論。

46 :デフォルトの名無しさん:2013/01/04(金) 18:44:29.48
>>36
いや、俺の普通は ROM から直接実行する環境。
>>37
逆じゃないの?

>>44
全ての処理系/実行環境で有効だと主張したつもりはないので、
説明不足だと言って非難するなら、そこは甘受しよう。

47 :デフォルトの名無しさん:2013/01/04(金) 18:55:24.26
>>46
> >>37
> 逆じゃないの?

> で、 char main[] = { ... の場合に、配列の初期値なんてものを作って、実行時にコピーする環境が実在するの?

じゃあ君の普通の環境では、const 宣言もない main[] が ROM に配置されんの?

48 :デフォルトの名無しさん:2013/01/04(金) 21:42:16.52
>>45
手持ちのMac OS Xでやってみたら、リンクはできました。char main[]は
データセグメントにある。
実行するとmainにジャンプした時点で死亡。実行属性が付いてないので。
mainが呼ばれる前に実行属性を付ける処理を呼ぶとmainを実行できたw

>>46
自分は基本PCのOSしか知らないんですが、元の話で暗黙のうちに想定している
環境は何ですか? やはりプラットフォーム依存性が高いかと。
組み込み系とか興味はあります。

というわけで話を膨らませてみたつもりw

49 :デフォルトの名無しさん:2013/01/05(土) 08:39:35.88
クリックするだけで感染、みたいなのが多かった時期にソースを読んでると、
コード内にマシン語がデータとして居るのは、珍しくはない光景だったんだな
組み込みじゃないけど

50 :デフォルトの名無しさん:2013/01/05(土) 15:10:12.18
>>41 ごめん、LSIC-80の8085用オプションで。

51 :デフォルトの名無しさん:2013/01/05(土) 15:22:09.39
>>49
いわゆるトランポリンコードを実行するにはスタックとかヒープに実行属性が
付いてないとできないけど、今はセキュリティ上の問題になる。

でも古いコードだとそういうテクニックを使ってたりするのがあるから、互換性を
保つには闇雲に実行属性を落とせなかったり。
ユーザーの皆さん、古いアプリのサポートを打ち切るのは単に新しいバージョン
を買うように仕向けている訳じゃないんですよ、みたいなw

52 :デフォルトの名無しさん:2013/01/05(土) 15:37:34.76
>>50
> LSIC-80の8085用オプション

8085って8080から拡張された入出力と割り込み機能をサポートする命令が2つ増えただけで
公式には8080と大して命令変わってないと思ったけど、LSI C-80って8085用の特別な機能
でもあんの?

53 :デフォルトの名無しさん:2013/01/06(日) 06:05:16.68
アセンブリフェーズがNR80だから、正確には8080のコード吐くんですね。
SIMとRIMはニーモニックが認められないので、DC 20h/30h で書きます。
_LCC80ファイルの中身見直したら、-i8080 -RN で8085固有の指定はありませんでした。

54 :デフォルトの名無しさん:2013/01/06(日) 19:45:24.08
非公開命令でも吐いたら面白いのになあ。仕事では使えんけど。
http://home.comcast.net/~kvaughn65D/UnDocum_8085_Instructions.pdf

55 :デフォルトの名無しさん:2013/01/07(月) 06:41:05.63
私が自分用に作ったメモにもこのインストラクションは載ってました。
8080から改良するときに、ちょっと凝ったプログラミングをできるように
という思想が感じられますね。
このページ、活字が小さくて見づらい。だれかtextにしてくれないかな。

56 :デフォルトの名無しさん:2013/01/08(火) 15:45:46.76
うーんわからない。とあるUNIX(x86_64)のプログラムだけど、

(gdb) i r
rax 0x00
rdi 0x800f5539034375816080
rip 0x800c7cff90x800c7cff9
(gdp) x/i 0x800c7cff9
0x800c7cff9 mov (%rdi),%rax
(gdb) x/xg 0x800f55390
0x800f55390 0x0000000800f5bf98
(gdb) stepi
(gdb) i r
rax 0x800f5bfcc34375843788
rdi 0x800f5539034375816080
rip 0x800c7cffc0x800c7cffc

なんでraxが0x800f5bf98にならずに0x800f5bfccになるの?
テストプログラムで
mov (%rdi),%rax
を実行させても正しく間接参照する。C2Dのバグ疑ってもいいかな。

57 :デフォルトの名無しさん:2013/01/08(火) 16:01:03.11
あっとタブが飛んだ 再投稿

うーんわからない。とあるUNIX(x86_64)のプログラムだけど、

(gdb) i r
rax 0x00
rdi 0x800f55390 34375816080
rip 0x800c7cff9 0x800c7cff9
(gdp) x/i 0x800c7cff9
0x800c7cff9 mov (%rdi),%rax
(gdb) x/xg 0x800f55390
0x800f55390 0x0000000800f5bf98
(gdb) stepi
(gdb) i r
rax 0x800f5bfcc 34375843788
rdi 0x800f55390 34375816080
rip 0x800c7cffc 0x800c7cffc

なんでraxが0x800f5bf98にならずに0x800f5bfccになるの?
テストプログラムで
mov (%rdi),%rax
を実行させても正しく間接参照する。C2Dのバグ疑ってもいいかな。

58 :デフォルトの名無しさん:2013/01/08(火) 16:11:02.74
>>57
なんで最後に

>(gdb) x/xg 0x800f55390

も一回やらんの?

59 :デフォルトの名無しさん:2013/01/08(火) 16:17:03.34
変わってなかったのでコピペしませんでした。
(gdb) x/xg 0x800f55390
0x800f55390 0x0000000800f5bf98

60 :デフォルトの名無しさん:2013/01/08(火) 16:18:59.10
念のために逆アセのバグも疑ってみない?

61 :デフォルトの名無しさん:2013/01/08(火) 16:28:15.43
それも疑ってみてました。正しいようです
(gdb) x/3xb 0x800c7cff9
0x800c7cff9 0x48 0x8b 0x07

テストプログラム
(gdb) x/4i aaa
0x4006f0 <aaa>: mov %rdi,-0x8(%rsp)
0x4006f5 <aaa+5>: mov -0x8(%rsp),%rdi
0x4006fa <aaa+10>: mov (%rdi),%rax
0x4006fd <aaa+13>: retq
(gdb) x/3xb 0x4006fa
0x4006fa <aaa+10>: 0x48 0x8b 0x07

違うコンパイラでコンパイルしてみたらコンパイルが終了しない...

62 :デフォルトの名無しさん:2013/01/08(火) 16:44:41.08
>>61
>違うコンパイラでコンパイルしてみたらコンパイルが終了しない...

C2Dのバグかも?w

63 :デフォルトの名無しさん:2013/01/08(火) 17:06:08.41
プログラムで合成されたCソースで、コンパイラへの負荷がかなり高い部分があって、
cc1がCPU利用率100%に張り付いて終了しない。
スラッシング起こすほどのメモリは使ってないようだけど。小一時間放置してみる

64 :デフォルトの名無しさん:2013/01/08(火) 17:10:58.31
理解できない現象を何でも自分以外のせいにするのは素人。

65 :デフォルトの名無しさん:2013/01/08(火) 17:22:11.70
コンパイルの山場は通過した模様。
たかだが50000行くらいのソースのコンパイルに20分くらいかかった。

66 :デフォルトの名無しさん:2013/01/08(火) 17:25:44.71
>>61
>違うコンパイラでコンパイルしてみたら

C2Dのバグ疑うかってのに、同じCPU違うコンパイラで偶々動いたとしてそれでいい訳?

67 :デフォルトの名無しさん:2013/01/08(火) 17:38:49.14
行きつく先がC2Dかはわからないけど、動く条件と動かない条件絞っていかないと
原因にたどり着けないでしょ。

問題の個所は別の呼び出しでは問題なく通っているので、
原因がC2Dと仮定するとえれー複雑な条件が必須なはずでお手上げかもだけど。

実は「おめーがx64のアセンブラ知らねーのが原因、その命令は他のレジスタも
参照してる」とかいう罵声も期待してたけど、飛んでこないところをみるとそう
じゃなかったらしい。

ちなみにシングルスレッドなので別スレッドが書き換えてるもないです。(多分)

68 :デフォルトの名無しさん:2013/01/08(火) 17:43:19.05
>>67
>ちなみにシングルスレッドなので別スレッドが書き換えてるもないです。(多分)

プロセッサのバグ疑うんならOSも疑うべきだろ

69 :デフォルトの名無しさん:2013/01/08(火) 17:47:02.78
>>67
>行きつく先がC2Dかはわからないけど、動く条件と動かない条件絞っていかないと
>原因にたどり着けないでしょ。

別のコンパイラ試すってのは条件絞ってることにはならんよ。

70 :デフォルトの名無しさん:2013/01/08(火) 18:00:40.95
やり方によってはなるよ。

71 :デフォルトの名無しさん:2013/01/08(火) 18:05:39.70
ならないよ

72 :デフォルトの名無しさん:2013/01/08(火) 18:10:49.10
別のコンパイラを試した → 動いた → 前のコンパイラが原因

とはならない。可能性のひとつとして考えられるというだけ。

前のコンパイラが原因の可能性のひとつであるということは別のコンパイラを試す前と変わらない。

73 :デフォルトの名無しさん:2013/01/08(火) 18:22:00.06
コンパイラ変えてコンパイルしなおすだけだったら、そうだろうね。
やってる本人が出来るといってる方法でやってるんだからいいじゃん。

74 :デフォルトの名無しさん:2013/01/08(火) 18:48:48.76
やってる方法がトンチンカンだから書いてるプログラムがクソであることは容易に想像がつく

75 :デフォルトの名無しさん:2013/01/08(火) 19:03:04.86
自分が想像できない事に言いがかり付けない方がいいよ。

ゴミクズみたいのが絡んできたし、これ以上有益な情報得られない
だろうから退散します。
結果わかったら報告しに戻ってくるかも。

76 :デフォルトの名無しさん:2013/01/08(火) 19:07:41.55
最後までクズでした

77 :デフォルトの名無しさん:2013/01/08(火) 19:10:51.57
説明の責任は質問する側にあることが解ってないお子様なんだろう

78 :デフォルトの名無しさん:2013/01/09(水) 08:07:08.02
>自分が想像できない事に言いがかり付けない方がいいよ。
これが噂に聞くブーメランと言う奴か。

79 :デフォルトの名無しさん:2013/01/09(水) 10:37:54.94
ゴミクズが粘着してるだろうなと思って覗いてみたら案の定粘着しててわろた。

説明責任とか言いながら、詳しく説明されてない方法を「それではできない」とか
断定しちゃう頭の悪さに気づかないのだろうか。

久しぶりに質問者側に回ってみたが、ゴミクズの最底辺さにはあきれ返る。
ほら、遊んでやるからかかってこいよ。

80 :デフォルトの名無しさん:2013/01/09(水) 10:47:15.76
あら?バカが釣れてるw

81 :デフォルトの名無しさん:2013/01/09(水) 12:11:23.99
x64のいい逆汗ないかねえ
IDAが有名だが、x64は割らないと無理だし。

82 :デフォルトの名無しさん:2013/01/09(水) 12:17:43.96
あら、普通に買えばいいじゃない
http://www.hex-rays.com/products/ida/index.shtml

83 :デフォルトの名無しさん:2013/01/09(水) 18:09:45.44
貧乏人ばっかだな

84 :デフォルトの名無しさん:2013/01/09(水) 21:42:03.32
汗・逆汗で食ってるわけじゃないからねえ
予算が下りないんだよ

85 :デフォルトの名無しさん:2013/01/10(木) 12:39:59.48
>>84
遊びなら自腹切れよ

86 :デフォルトの名無しさん:2013/01/10(木) 12:42:56.41
そして>>81にもどる

87 :デフォルトの名無しさん:2013/01/30(水) 12:47:58.45
windbgじゃダメなのでしょうか?
他のデバッガにはそんなに便利な機能ありますか?

88 :デフォルトの名無しさん:2013/01/30(水) 12:52:16.21
>>87
おまえはそれ使ってればいい

89 :デフォルトの名無しさん:2013/01/30(水) 22:12:17.27
使途にもよるが、プラグインアリなら、かなり強力
VMと組み合わせて、仮想シリアルデバッグも楽しい

あとntsd/cdbもよろしく。

90 :デフォルトの名無しさん:2013/01/30(水) 23:13:06.24
今時, たくさん並ぶコンソールのスイッチを ON/OFF して,
ロードスイッチを押す作業のなにが楽しいんですか?

俺なら, 迷わずアセンブリ言語を選択します

91 :デフォルトの名無しさん:2013/02/01(金) 12:02:59.17
1バイトずつ打ち込むような体験も、一度はしてみとくべきだとおもうんだ
壊れやすいパチパチスイッチはこわいから、大幅に譲ってテンキー(0-9A-F)でいいよ

92 :デフォルトの名無しさん:2013/02/02(土) 18:10:08.52
ポリオミノを生成するプログラムを教えてください(できればC言語で)

93 :デフォルトの名無しさん:2013/02/02(土) 22:39:14.96
マルチ乙

94 :デフォルトの名無しさん:2013/02/02(土) 23:07:42.22
はわわー

95 :デフォルトの名無しさん:2013/02/03(日) 04:36:49.09
RX210 CPUマニュアルの内蔵ROMへのプログラム/イレーズの所を読んでいます。

FENTRYRのLSB側に01hまたは02hを書いた以降にROMリードが起きると
ROMアクセス違反でコマンドロック状態が発生する。
だから 「RAMへジャンプしてから」 FENTRYR を書き替えている。

この理解で合っていますでしょうか?

96 :95:2013/02/03(日) 05:18:07.27
上のはたぶん合っていると思うんですけど、そうすると、reset時にFCUに対して
周辺クロック通知コマンドを使うときに、hwsetup( )はROMで動くから困るんじゃ
ないかなあ・・・FENTRYRのLSBに01hを書いてからコマンドを書くんだけど、
FENTRYRを書き替えた直後からROMアクセス違反が発生しちゃうことになる。

97 :デフォルトの名無しさん:2013/02/03(日) 09:13:19.07
こんなところで仕事の質問をするものではない。
ばれたらどうなるか考えてみな。

98 :デフォルトの名無しさん:2013/02/03(日) 09:18:09.37
答えられる奴が気軽に答えればいい
仕事の話なら、ここでヒントもらって、裏を自分で取ればいい そこは仕事。

今までwebの仕事ごくろうさん、午後から組み込みやってください、ソロで。
みたいな無理ゲーもいまどきあるらしいじゃないか。

俺はアマだが、汗しらない奴の、いまさら人に聞けない質問には付き合ってるぜ

99 :95:2013/02/04(月) 03:43:35.95
リングバッファのリード/ライトポインタから滞留数を計算する手法を教えてもらった
のがこのスレだったような。 あれで滞留数の変数を追放できて役に立ちました。

今度のは新しい石だから、さすがにまだ体験者は居ないのかなあ・・・
マニュアルを何十辺も読んでると、こういう意味で書いてるのかなと判る所もあるけど、
ホント悪文だし。ここ2ヶ月でリビジョン3つも進んでるから変わってる最中。

100 :95:2013/02/07(木) 17:30:14.02
RX210の、コード格納用ROMとデータ格納用ROMの章がようやく理解できてきた。

コード格納用ROMのプログラム手法の説明 40.6.4.2(5) プログラム方法 で言ってる手順
第3 サイクルのアクセスでは、プログラム対象領域の先頭アドレスに対して
書き込みデータをワードサイズで書いてください。この際、先頭アドレスは
128 バイト境界にアラインしたアドレスを使用してください。

と、40.6.2 FCU コマンド一覧 表40.6 FCUコマンドのフォーマット
で言ってるWAの表現に矛盾があると思う。
WA: ROM 書き込み先アドレス
    書き込みデータ2/8/128 バイトの先頭アドレス

前者は128byteアラインだけでいいと言っているし、後者は書き込みデータのアライン
2/8/128 に従え と言っている。 誰かこれ体験して解明した人居ませんか?

75 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)