漏れは今までにC、C++、Pascal、HSP、JS、VBなど
数々の言語を極めてきたがやはり一番手にしっくりくる言語は機械語だ。
だから、機械語のことなら何でも質問しろ!
ただプログラムのコードなんかは長くなるがな。 あ、ASMの話でもいいよ。
機械語なら俺に質問しろ!その2
■ このスレッドは過去ログ倉庫に格納されています
2012/12/29(土) 08:00:24.36
2013/01/04(金) 18:44:29.48
2013/01/04(金) 18:55:24.26
2013/01/04(金) 21:42:16.52
2013/01/05(土) 08:39:35.88
クリックするだけで感染、みたいなのが多かった時期にソースを読んでると、
コード内にマシン語がデータとして居るのは、珍しくはない光景だったんだな
組み込みじゃないけど
コード内にマシン語がデータとして居るのは、珍しくはない光景だったんだな
組み込みじゃないけど
2013/01/05(土) 15:10:12.18
>>41 ごめん、LSIC-80の8085用オプションで。
2013/01/05(土) 15:22:09.39
>>49
いわゆるトランポリンコードを実行するにはスタックとかヒープに実行属性が
付いてないとできないけど、今はセキュリティ上の問題になる。
でも古いコードだとそういうテクニックを使ってたりするのがあるから、互換性を
保つには闇雲に実行属性を落とせなかったり。
ユーザーの皆さん、古いアプリのサポートを打ち切るのは単に新しいバージョン
を買うように仕向けている訳じゃないんですよ、みたいなw
いわゆるトランポリンコードを実行するにはスタックとかヒープに実行属性が
付いてないとできないけど、今はセキュリティ上の問題になる。
でも古いコードだとそういうテクニックを使ってたりするのがあるから、互換性を
保つには闇雲に実行属性を落とせなかったり。
ユーザーの皆さん、古いアプリのサポートを打ち切るのは単に新しいバージョン
を買うように仕向けている訳じゃないんですよ、みたいなw
2013/01/05(土) 15:37:34.76
>>50
> LSIC-80の8085用オプション
8085って8080から拡張された入出力と割り込み機能をサポートする命令が2つ増えただけで
公式には8080と大して命令変わってないと思ったけど、LSI C-80って8085用の特別な機能
でもあんの?
> LSIC-80の8085用オプション
8085って8080から拡張された入出力と割り込み機能をサポートする命令が2つ増えただけで
公式には8080と大して命令変わってないと思ったけど、LSI C-80って8085用の特別な機能
でもあんの?
2013/01/06(日) 06:05:16.68
アセンブリフェーズがNR80だから、正確には8080のコード吐くんですね。
SIMとRIMはニーモニックが認められないので、DC 20h/30h で書きます。
_LCC80ファイルの中身見直したら、-i8080 -RN で8085固有の指定はありませんでした。
SIMとRIMはニーモニックが認められないので、DC 20h/30h で書きます。
_LCC80ファイルの中身見直したら、-i8080 -RN で8085固有の指定はありませんでした。
2013/01/06(日) 19:45:24.08
非公開命令でも吐いたら面白いのになあ。仕事では使えんけど。
http://home.comcast.net/~kvaughn65D/UnDocum_8085_Instructions.pdf
http://home.comcast.net/~kvaughn65D/UnDocum_8085_Instructions.pdf
2013/01/07(月) 06:41:05.63
私が自分用に作ったメモにもこのインストラクションは載ってました。
8080から改良するときに、ちょっと凝ったプログラミングをできるように
という思想が感じられますね。
このページ、活字が小さくて見づらい。だれかtextにしてくれないかな。
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のバグ疑ってもいいかな。
(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のバグ疑ってもいいかな。
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のバグ疑ってもいいかな。
うーんわからない。とある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のバグ疑ってもいいかな。
2013/01/08(火) 16:11:02.74
2013/01/08(火) 16:17:03.34
変わってなかったのでコピペしませんでした。
(gdb) x/xg 0x800f55390
0x800f55390 0x0000000800f5bf98
(gdb) x/xg 0x800f55390
0x800f55390 0x0000000800f5bf98
2013/01/08(火) 16:18:59.10
念のために逆アセのバグも疑ってみない?
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
違うコンパイラでコンパイルしてみたらコンパイルが終了しない...
(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
違うコンパイラでコンパイルしてみたらコンパイルが終了しない...
2013/01/08(火) 16:44:41.08
2013/01/08(火) 17:06:08.41
プログラムで合成されたCソースで、コンパイラへの負荷がかなり高い部分があって、
cc1がCPU利用率100%に張り付いて終了しない。
スラッシング起こすほどのメモリは使ってないようだけど。小一時間放置してみる
cc1がCPU利用率100%に張り付いて終了しない。
スラッシング起こすほどのメモリは使ってないようだけど。小一時間放置してみる
2013/01/08(火) 17:10:58.31
理解できない現象を何でも自分以外のせいにするのは素人。
2013/01/08(火) 17:22:11.70
コンパイルの山場は通過した模様。
たかだが50000行くらいのソースのコンパイルに20分くらいかかった。
たかだが50000行くらいのソースのコンパイルに20分くらいかかった。
2013/01/08(火) 17:25:44.71
2013/01/08(火) 17:38:49.14
行きつく先がC2Dかはわからないけど、動く条件と動かない条件絞っていかないと
原因にたどり着けないでしょ。
問題の個所は別の呼び出しでは問題なく通っているので、
原因がC2Dと仮定するとえれー複雑な条件が必須なはずでお手上げかもだけど。
実は「おめーがx64のアセンブラ知らねーのが原因、その命令は他のレジスタも
参照してる」とかいう罵声も期待してたけど、飛んでこないところをみるとそう
じゃなかったらしい。
ちなみにシングルスレッドなので別スレッドが書き換えてるもないです。(多分)
原因にたどり着けないでしょ。
問題の個所は別の呼び出しでは問題なく通っているので、
原因がC2Dと仮定するとえれー複雑な条件が必須なはずでお手上げかもだけど。
実は「おめーがx64のアセンブラ知らねーのが原因、その命令は他のレジスタも
参照してる」とかいう罵声も期待してたけど、飛んでこないところをみるとそう
じゃなかったらしい。
ちなみにシングルスレッドなので別スレッドが書き換えてるもないです。(多分)
2013/01/08(火) 17:43:19.05
2013/01/08(火) 17:47:02.78
2013/01/08(火) 18:00:40.95
やり方によってはなるよ。
2013/01/08(火) 18:05:39.70
ならないよ
2013/01/08(火) 18:10:49.10
別のコンパイラを試した → 動いた → 前のコンパイラが原因
とはならない。可能性のひとつとして考えられるというだけ。
前のコンパイラが原因の可能性のひとつであるということは別のコンパイラを試す前と変わらない。
とはならない。可能性のひとつとして考えられるというだけ。
前のコンパイラが原因の可能性のひとつであるということは別のコンパイラを試す前と変わらない。
2013/01/08(火) 18:22:00.06
コンパイラ変えてコンパイルしなおすだけだったら、そうだろうね。
やってる本人が出来るといってる方法でやってるんだからいいじゃん。
やってる本人が出来るといってる方法でやってるんだからいいじゃん。
2013/01/08(火) 18:48:48.76
やってる方法がトンチンカンだから書いてるプログラムがクソであることは容易に想像がつく
2013/01/08(火) 19:03:04.86
自分が想像できない事に言いがかり付けない方がいいよ。
ゴミクズみたいのが絡んできたし、これ以上有益な情報得られない
だろうから退散します。
結果わかったら報告しに戻ってくるかも。
ゴミクズみたいのが絡んできたし、これ以上有益な情報得られない
だろうから退散します。
結果わかったら報告しに戻ってくるかも。
2013/01/08(火) 19:07:41.55
最後までクズでした
2013/01/08(火) 19:10:51.57
説明の責任は質問する側にあることが解ってないお子様なんだろう
2013/01/09(水) 08:07:08.02
>自分が想像できない事に言いがかり付けない方がいいよ。
これが噂に聞くブーメランと言う奴か。
これが噂に聞くブーメランと言う奴か。
79デフォルトの名無しさん
2013/01/09(水) 10:37:54.94 ゴミクズが粘着してるだろうなと思って覗いてみたら案の定粘着しててわろた。
説明責任とか言いながら、詳しく説明されてない方法を「それではできない」とか
断定しちゃう頭の悪さに気づかないのだろうか。
久しぶりに質問者側に回ってみたが、ゴミクズの最底辺さにはあきれ返る。
ほら、遊んでやるからかかってこいよ。
説明責任とか言いながら、詳しく説明されてない方法を「それではできない」とか
断定しちゃう頭の悪さに気づかないのだろうか。
久しぶりに質問者側に回ってみたが、ゴミクズの最底辺さにはあきれ返る。
ほら、遊んでやるからかかってこいよ。
2013/01/09(水) 10:47:15.76
あら?バカが釣れてるw
2013/01/09(水) 12:11:23.99
x64のいい逆汗ないかねえ
IDAが有名だが、x64は割らないと無理だし。
IDAが有名だが、x64は割らないと無理だし。
2013/01/09(水) 12:17:43.96
あら、普通に買えばいいじゃない
http://www.hex-rays.com/products/ida/index.shtml
http://www.hex-rays.com/products/ida/index.shtml
83デフォルトの名無しさん
2013/01/09(水) 18:09:45.44 貧乏人ばっかだな
2013/01/09(水) 21:42:03.32
汗・逆汗で食ってるわけじゃないからねえ
予算が下りないんだよ
予算が下りないんだよ
2013/01/10(木) 12:39:59.48
>>84
遊びなら自腹切れよ
遊びなら自腹切れよ
2013/01/10(木) 12:42:56.41
そして>>81にもどる
87デフォルトの名無しさん
2013/01/30(水) 12:47:58.45 windbgじゃダメなのでしょうか?
他のデバッガにはそんなに便利な機能ありますか?
他のデバッガにはそんなに便利な機能ありますか?
2013/01/30(水) 12:52:16.21
>>87
おまえはそれ使ってればいい
おまえはそれ使ってればいい
2013/01/30(水) 22:12:17.27
使途にもよるが、プラグインアリなら、かなり強力
VMと組み合わせて、仮想シリアルデバッグも楽しい
あとntsd/cdbもよろしく。
VMと組み合わせて、仮想シリアルデバッグも楽しい
あとntsd/cdbもよろしく。
2013/01/30(水) 23:13:06.24
今時, たくさん並ぶコンソールのスイッチを ON/OFF して,
ロードスイッチを押す作業のなにが楽しいんですか?
俺なら, 迷わずアセンブリ言語を選択します
ロードスイッチを押す作業のなにが楽しいんですか?
俺なら, 迷わずアセンブリ言語を選択します
2013/02/01(金) 12:02:59.17
1バイトずつ打ち込むような体験も、一度はしてみとくべきだとおもうんだ
壊れやすいパチパチスイッチはこわいから、大幅に譲ってテンキー(0-9A-F)でいいよ
壊れやすいパチパチスイッチはこわいから、大幅に譲ってテンキー(0-9A-F)でいいよ
92デフォルトの名無しさん
2013/02/02(土) 18:10:08.52 ポリオミノを生成するプログラムを教えてください(できればC言語で)
2013/02/02(土) 22:39:14.96
マルチ乙
2013/02/02(土) 23:07:42.22
はわわー
2013/02/03(日) 04:36:49.09
RX210 CPUマニュアルの内蔵ROMへのプログラム/イレーズの所を読んでいます。
FENTRYRのLSB側に01hまたは02hを書いた以降にROMリードが起きると
ROMアクセス違反でコマンドロック状態が発生する。
だから 「RAMへジャンプしてから」 FENTRYR を書き替えている。
この理解で合っていますでしょうか?
FENTRYRのLSB側に01hまたは02hを書いた以降にROMリードが起きると
ROMアクセス違反でコマンドロック状態が発生する。
だから 「RAMへジャンプしてから」 FENTRYR を書き替えている。
この理解で合っていますでしょうか?
9695
2013/02/03(日) 05:18:07.27 上のはたぶん合っていると思うんですけど、そうすると、reset時にFCUに対して
周辺クロック通知コマンドを使うときに、hwsetup( )はROMで動くから困るんじゃ
ないかなあ・・・FENTRYRのLSBに01hを書いてからコマンドを書くんだけど、
FENTRYRを書き替えた直後からROMアクセス違反が発生しちゃうことになる。
周辺クロック通知コマンドを使うときに、hwsetup( )はROMで動くから困るんじゃ
ないかなあ・・・FENTRYRのLSBに01hを書いてからコマンドを書くんだけど、
FENTRYRを書き替えた直後からROMアクセス違反が発生しちゃうことになる。
2013/02/03(日) 09:13:19.07
こんなところで仕事の質問をするものではない。
ばれたらどうなるか考えてみな。
ばれたらどうなるか考えてみな。
2013/02/03(日) 09:18:09.37
答えられる奴が気軽に答えればいい
仕事の話なら、ここでヒントもらって、裏を自分で取ればいい そこは仕事。
今までwebの仕事ごくろうさん、午後から組み込みやってください、ソロで。
みたいな無理ゲーもいまどきあるらしいじゃないか。
俺はアマだが、汗しらない奴の、いまさら人に聞けない質問には付き合ってるぜ
仕事の話なら、ここでヒントもらって、裏を自分で取ればいい そこは仕事。
今までwebの仕事ごくろうさん、午後から組み込みやってください、ソロで。
みたいな無理ゲーもいまどきあるらしいじゃないか。
俺はアマだが、汗しらない奴の、いまさら人に聞けない質問には付き合ってるぜ
9995
2013/02/04(月) 03:43:35.95 リングバッファのリード/ライトポインタから滞留数を計算する手法を教えてもらった
のがこのスレだったような。 あれで滞留数の変数を追放できて役に立ちました。
今度のは新しい石だから、さすがにまだ体験者は居ないのかなあ・・・
マニュアルを何十辺も読んでると、こういう意味で書いてるのかなと判る所もあるけど、
ホント悪文だし。ここ2ヶ月でリビジョン3つも進んでるから変わってる最中。
のがこのスレだったような。 あれで滞留数の変数を追放できて役に立ちました。
今度のは新しい石だから、さすがにまだ体験者は居ないのかなあ・・・
マニュアルを何十辺も読んでると、こういう意味で書いてるのかなと判る所もあるけど、
ホント悪文だし。ここ2ヶ月でリビジョン3つも進んでるから変わってる最中。
10095
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 に従え と言っている。 誰かこれ体験して解明した人居ませんか?
コード格納用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 に従え と言っている。 誰かこれ体験して解明した人居ませんか?
101デフォルトの名無しさん
2013/02/07(木) 17:50:00.83 両方で128バイト境界って言ってるんだからそれに従えばいいじゃん
10295
2013/02/10(日) 04:55:01.52 へうのリンク制御文(ツールチェインのリンカタブ)とスタック(dbsct.c)の関係が判った。
スタックサイズ768がデフォで、これが変数領域のすぐ後ろに配置されてしまう。
「RAMの残りサイズ」がスタックになるような指定はできないのかな?
スタックサイズ768がデフォで、これが変数領域のすぐ後ろに配置されてしまう。
「RAMの残りサイズ」がスタックになるような指定はできないのかな?
103デフォルトの名無しさん
2013/02/10(日) 06:25:14.17 隣家スクリプトを書き換えればいい話ではなくて?
104デフォルトの名無しさん
2013/02/10(日) 15:39:18.3510595
2013/02/11(月) 01:39:19.32 >>104 この石では消去ブロックは全体で1個(実装分全部)です。1回の書込コマンド
に続いてデータを2/8/128バイト書けるんですが、その時の書き始めのアドレス
について、マニュアルの2箇所で矛盾した表現になっています。
マニュアルの元を書く技術屋さんは、自然言語で表現することが苦手な人が多いので
私は前者が間違いだろうと思っていますが、既に体験した人が居れば裏が取れると
思い、ここで聞いてみた次第です。お客さんを通じてルネには質問を投げて貰いましたが
オフィシャルな回答が返ってくるのは当分先かと。 判ったらここに書きます。
に続いてデータを2/8/128バイト書けるんですが、その時の書き始めのアドレス
について、マニュアルの2箇所で矛盾した表現になっています。
マニュアルの元を書く技術屋さんは、自然言語で表現することが苦手な人が多いので
私は前者が間違いだろうと思っていますが、既に体験した人が居れば裏が取れると
思い、ここで聞いてみた次第です。お客さんを通じてルネには質問を投げて貰いましたが
オフィシャルな回答が返ってくるのは当分先かと。 判ったらここに書きます。
106デフォルトの名無しさん
2013/02/11(月) 10:02:23.60 だから、その2ちゃんで裏取るってのはやめれww
2ちゃんでヒント・経験談を取るのは大アリ
その対称に、誰でも気軽に答えることができる。
2ちゃんでヒント・経験談を取るのは大アリ
その対称に、誰でも気軽に答えることができる。
10795
2013/02/11(月) 13:17:59.51 んじゃ、また別の話で、ROMに焼いてあって起動するとRAMにロードして動くような
コードの作り方ってのは? 古代のメインフレームだと、BALR 0,Reg using *.Reg
でセルフリロケーティングな動作が書けたんだけど、H8系でへうだとusingの概念が
無いし。ROMからRAMにコピーしても再配置情報はROM空間のままだからRAMへ
ジャンプしただけじゃ動かないよね。
コードの作り方ってのは? 古代のメインフレームだと、BALR 0,Reg using *.Reg
でセルフリロケーティングな動作が書けたんだけど、H8系でへうだとusingの概念が
無いし。ROMからRAMにコピーしても再配置情報はROM空間のままだからRAMへ
ジャンプしただけじゃ動かないよね。
108デフォルトの名無しさん
2013/02/11(月) 15:34:33.42 何のための相対ジャンプ命令だと思ってるんだよ馬鹿か。
109デフォルトの名無しさん
2013/02/11(月) 21:08:36.29 x86厨な俺としては、call $+(文字列長) ってのがすぐに思い浮かぶが
11095
2013/02/12(火) 05:30:38.04 相対ジャンプの機構は理解しています。プログラムの要素はそれだけじゃありません。
ある関数だけをRAMにコピーしてそこをコールするとします。引数は3個まで (これは
レジスタ渡しが保証されるから) その関数内のforループなどは相対ジャンプでできて
いるから動くでしょうが、その関数がROMのどこかにある関数を呼んでいたらそのBSRの
オフセットは元のROM位置からのオフセットであって、コピー先のRAM位置からの
オフセットではありません。ROMからRAMへのコピーはできても、元のコードの再配置
情報は実行コードになった時点で失われてしまいますね。JSR 絶対番地 を使えば可能
ですが、このコールはBSR、このコールはJSR をプログラマが選べるCはありませんね。
こういうことを話してみて欲しいわけです。起動時ベクタは固定・行った先のROMも固定
そこからRAMにコピーして動くプログラムはどんな制約があるのか、どんな作りになれば
いいのか・・・
ある関数だけをRAMにコピーしてそこをコールするとします。引数は3個まで (これは
レジスタ渡しが保証されるから) その関数内のforループなどは相対ジャンプでできて
いるから動くでしょうが、その関数がROMのどこかにある関数を呼んでいたらそのBSRの
オフセットは元のROM位置からのオフセットであって、コピー先のRAM位置からの
オフセットではありません。ROMからRAMへのコピーはできても、元のコードの再配置
情報は実行コードになった時点で失われてしまいますね。JSR 絶対番地 を使えば可能
ですが、このコールはBSR、このコールはJSR をプログラマが選べるCはありませんね。
こういうことを話してみて欲しいわけです。起動時ベクタは固定・行った先のROMも固定
そこからRAMにコピーして動くプログラムはどんな制約があるのか、どんな作りになれば
いいのか・・・
111デフォルトの名無しさん
2013/02/12(火) 11:12:10.96 アセンブリ出力を加工してからアセンブルすればいいじゃん。
ROMにある関数のリストがあるなら自動化できるんだし。
ROMにある関数のリストがあるなら自動化できるんだし。
11295
2013/02/12(火) 17:20:14.81 それも試みたことあります。JSRを手でBSRに直すとか。でも自動化できないし、
人的ミスを持ち込むことになるから、非・推奨な手法という評価になりました。
私が現在認識している制限は、単一関数で外部コールを含まないものなら可能。
複数の関数をリンクして作ったプログラムは、不確定要素が多くて不安、という段階。
Cコンパイラマニュアルのなかに、PIC/PID機能の利用 という章があり、ここで
一般的な注意事項が列挙されていました。usingの概念に似た手法が紹介されて
いましたので、そこを読んでいるところです。PICは Positionn Independent Code、
PIDは Position Independent Data のことだそうです。 紛らわしい略語ですね。
人的ミスを持ち込むことになるから、非・推奨な手法という評価になりました。
私が現在認識している制限は、単一関数で外部コールを含まないものなら可能。
複数の関数をリンクして作ったプログラムは、不確定要素が多くて不安、という段階。
Cコンパイラマニュアルのなかに、PIC/PID機能の利用 という章があり、ここで
一般的な注意事項が列挙されていました。usingの概念に似た手法が紹介されて
いましたので、そこを読んでいるところです。PICは Positionn Independent Code、
PIDは Position Independent Data のことだそうです。 紛らわしい略語ですね。
113デフォルトの名無しさん
2013/02/13(水) 00:14:18.69 >>110
> JSR 絶対番地 を使えば可能ですが、このコールはBSR、このコールはJSR をプログラマが
> 選べるCはありませんね。
絶対番地呼び出したいなら、関数ポインタ経由で呼べばいいだけ。
> JSR 絶対番地 を使えば可能ですが、このコールはBSR、このコールはJSR をプログラマが
> 選べるCはありませんね。
絶対番地呼び出したいなら、関数ポインタ経由で呼べばいいだけ。
114デフォルトの名無しさん
2013/02/13(水) 02:59:54.64 それはROM関数だけを関数テーブルにするしかないんじゃないの。
関数名(実アドレス)でコールするからBSRかJSRか選べないという
アホな話になるわけですよ。ROMを呼ぶとわかっている関数だけを
コールテーブルにすれば終わりでしょ。
関数名(実アドレス)でコールするからBSRかJSRか選べないという
アホな話になるわけですよ。ROMを呼ぶとわかっている関数だけを
コールテーブルにすれば終わりでしょ。
115デフォルトの名無しさん
2013/02/13(水) 03:11:22.7411695
2013/02/13(水) 03:19:46.39 では、割り込みはどう扱われるでしょうか? 今ターゲットにしている石は、
割り込みベクタテーブルの先頭番地をベクタベースレジスタに設定するタイプです。
LINKしたときの割り込みベクタテーブルはROMの中を指していますね。
これは関数ポインタのテーブルだから、割り込み処理は必ずROMコールとなります。
これと、ROMイレーズ/プログラム中はROMを読んではいけない、ということをどう
両立させればよいのか、その手法で悩んでいます。
割り込みベクタテーブルの先頭番地をベクタベースレジスタに設定するタイプです。
LINKしたときの割り込みベクタテーブルはROMの中を指していますね。
これは関数ポインタのテーブルだから、割り込み処理は必ずROMコールとなります。
これと、ROMイレーズ/プログラム中はROMを読んではいけない、ということをどう
両立させればよいのか、その手法で悩んでいます。
11795
2013/02/13(水) 03:28:12.72 >>100 の疑問、自分で考えた答は、後者が正しいと思います。 理由は、
第1、第2ステップでコマンドを書き込むアドレスが 「実装のどこでもよい」 と記述
されていること。それだと実際にデータを書き込むアドレスがどこかは、第3ステップの
書き始めのアドレスしか情報がありません。 終了コマンドも第1,2ステップと同じく
任意アドレスだし。 FCU側のプログラムを書くことを考えると、後者でないと整合性を
保てなくなります。
第1、第2ステップでコマンドを書き込むアドレスが 「実装のどこでもよい」 と記述
されていること。それだと実際にデータを書き込むアドレスがどこかは、第3ステップの
書き始めのアドレスしか情報がありません。 終了コマンドも第1,2ステップと同じく
任意アドレスだし。 FCU側のプログラムを書くことを考えると、後者でないと整合性を
保てなくなります。
118デフォルトの名無しさん
2013/02/13(水) 08:20:04.38 きっぱり言っておいてやるがな、
肩の力抜けwww
ROM書き換え中は、割込テーブルレジスタもRAMに移しちゃうんじゃないん?と
まずは思ったが、いまどきの石ってそこらへんややこしいんかな
あるいは、そこを書きかえるときだけは割込とめるとか
F3とかFBとか、「あのころ」はそんなことしてたな
肩の力抜けwww
ROM書き換え中は、割込テーブルレジスタもRAMに移しちゃうんじゃないん?と
まずは思ったが、いまどきの石ってそこらへんややこしいんかな
あるいは、そこを書きかえるときだけは割込とめるとか
F3とかFBとか、「あのころ」はそんなことしてたな
119デフォルトの名無しさん
2013/02/13(水) 20:18:53.75 >>116
ROMリライト中に動く前提のプログラムってのがまず理解できない。
ROMを書き直す=プログラムを更新するってことだから、その時点で
割り込みベクタテーブルに処理が飛んでくる可能性はゼロではないの。
後だしでプチプチ情報出されても振り回されるだけだよ。
ROMリライト中に動く前提のプログラムってのがまず理解できない。
ROMを書き直す=プログラムを更新するってことだから、その時点で
割り込みベクタテーブルに処理が飛んでくる可能性はゼロではないの。
後だしでプチプチ情報出されても振り回されるだけだよ。
120デフォルトの名無しさん
2013/02/13(水) 20:28:38.85 ROMリライト中に動いちゃまずい機能は
ROMリライトの処理中は行わないようにすべきじゃ
ROMリライトの処理中は行わないようにすべきじゃ
121119
2013/02/13(水) 21:42:52.69 風呂に入ってデバッグしてきた。なんとなく状況は理解できたと思う。
1)ROMの一部を書き換える組み込みアプリを作りたい
2)ROM書き換え中はROMへのリードアクセスは禁止
3)ゆえにコードをRAMにコピーしてRAM上で動作させたい
4)リンカーの出力するバイナリはROMからの相対アドレスである
5)RAMにコピーしたコードの関数アドレスを手作業でリロケーションはできない
6)さてどうしたものか
まず2が真の時点でROM上でコードを動作させるのは不可能だから
全てのコードをRAMにコピーする前提で考える。
普通はロケーターを使うんだろうけど、話の雰囲気ではロケーターも
使えないっぽいからそれは考えない。
ならば全ての関数呼び出しを関数テーブル経由にするしかない。
第一段階としてブートストラップローダーを作る。こいつの仕事はROMの
コードを全てRAMにコピーすることと、関数呼び出し用に全ての関数を
呼び出すためのコールテーブルを作ること。もちろんコールテーブルの
関数アドレスはRAM先頭のオフセットを加える。
割り込みベクタテーブルもブートストラップが作成する。
もちろんブートストラップ動作中は割り込み禁止。
次に、関数呼び出しを統括するスーパーバイザー関数を作る。この関数
はブートストラップがRAM上に作った関数テーブルを元に、引数で指定
された関数を呼び出す。こうすることで、関数名=アドレス値がコードに
ビルトインされるのを防ぐ。
ここまで終わったら、ブートストラップがメイン処理に制御を移すだけ。
全ての処理は関数呼び出しに関数名は使わず、スーパーバイザー関数
に対して
1)ROMの一部を書き換える組み込みアプリを作りたい
2)ROM書き換え中はROMへのリードアクセスは禁止
3)ゆえにコードをRAMにコピーしてRAM上で動作させたい
4)リンカーの出力するバイナリはROMからの相対アドレスである
5)RAMにコピーしたコードの関数アドレスを手作業でリロケーションはできない
6)さてどうしたものか
まず2が真の時点でROM上でコードを動作させるのは不可能だから
全てのコードをRAMにコピーする前提で考える。
普通はロケーターを使うんだろうけど、話の雰囲気ではロケーターも
使えないっぽいからそれは考えない。
ならば全ての関数呼び出しを関数テーブル経由にするしかない。
第一段階としてブートストラップローダーを作る。こいつの仕事はROMの
コードを全てRAMにコピーすることと、関数呼び出し用に全ての関数を
呼び出すためのコールテーブルを作ること。もちろんコールテーブルの
関数アドレスはRAM先頭のオフセットを加える。
割り込みベクタテーブルもブートストラップが作成する。
もちろんブートストラップ動作中は割り込み禁止。
次に、関数呼び出しを統括するスーパーバイザー関数を作る。この関数
はブートストラップがRAM上に作った関数テーブルを元に、引数で指定
された関数を呼び出す。こうすることで、関数名=アドレス値がコードに
ビルトインされるのを防ぐ。
ここまで終わったら、ブートストラップがメイン処理に制御を移すだけ。
全ての処理は関数呼び出しに関数名は使わず、スーパーバイザー関数
に対して
122デフォルトの名無しさん
2013/02/13(水) 21:46:31.11 >>121の最後2行は無視してください。
123デフォルトの名無しさん
2013/02/13(水) 23:45:07.83 RAMが狭小で、フルイメージRAMに来れないんじゃないかとエスパー
機械語っていうか、石の話だが、関連雑談だな
機械語っていうか、石の話だが、関連雑談だな
12495
2013/02/14(木) 05:55:20.77 >>119 おつきあい下さりありがとうございます。10数年前、H8/16bitでそのような物を
作りました。その時はブートローダーの場所はイレーズしない・ROM書き換え/イレーズ
する関数のみRAMに置く、という手法でした。ブートローダーは割込を一切使わず動く
ように作りました。今回は、RAMはブートローダー全部を載せるぐらいたくさんあります。
ブートの目的は、ROMイレーズ・アプリをROMに焼くこと、焼かれたアプリはふつうに
ROMで動作します。電源ONで動くのはブートなので、アプリがROMに入っているか
チェックして、アプリに分岐するか、ROM焼きモードでブートの中で待つかします。
この方式だと、121後半の設定は不要ですね。ブート動作中は割込を使わないのは
今回も採用することになると思います。
>>123 そうなんです。ROM256/RAM32 とか、機種で多少はありますがそんな感じ。
ブートが固定ベクタを占有しちゃうんで、焼かれるアプリは固定ベクタを持たないこと。
ROM実装サイズがいろいろだが末尾に寄せて実装されている。FFFF0000〜FFFFFFFF
とか、FFFC0000〜FFFFFFFF とか。なので、ブートからアプリにジャンプする際には
「固定の先頭番地」 という過去の手法が使えないので、固定の末尾付近(ベクタのすぐ前)
を使うことになるのかな、と考えています。
後出し小出しが嫌われるのは承知していますが、課題全部はまだ承ってないし、
承っても1,2レスで列挙できるものでもないので、そこはご容赦くださいませ。
目下の選択は、ブートはROMで動く事にするか、ブートの主要部をRAMに転送するかで、
前者は実績があります。後者だと121の前半みたいなお膳立てをPGがやるわけですね。
う〜ん、厄介そうだなあ。 インテルの再配置ローダーみたいなツールがあればいいのに。
作りました。その時はブートローダーの場所はイレーズしない・ROM書き換え/イレーズ
する関数のみRAMに置く、という手法でした。ブートローダーは割込を一切使わず動く
ように作りました。今回は、RAMはブートローダー全部を載せるぐらいたくさんあります。
ブートの目的は、ROMイレーズ・アプリをROMに焼くこと、焼かれたアプリはふつうに
ROMで動作します。電源ONで動くのはブートなので、アプリがROMに入っているか
チェックして、アプリに分岐するか、ROM焼きモードでブートの中で待つかします。
この方式だと、121後半の設定は不要ですね。ブート動作中は割込を使わないのは
今回も採用することになると思います。
>>123 そうなんです。ROM256/RAM32 とか、機種で多少はありますがそんな感じ。
ブートが固定ベクタを占有しちゃうんで、焼かれるアプリは固定ベクタを持たないこと。
ROM実装サイズがいろいろだが末尾に寄せて実装されている。FFFF0000〜FFFFFFFF
とか、FFFC0000〜FFFFFFFF とか。なので、ブートからアプリにジャンプする際には
「固定の先頭番地」 という過去の手法が使えないので、固定の末尾付近(ベクタのすぐ前)
を使うことになるのかな、と考えています。
後出し小出しが嫌われるのは承知していますが、課題全部はまだ承ってないし、
承っても1,2レスで列挙できるものでもないので、そこはご容赦くださいませ。
目下の選択は、ブートはROMで動く事にするか、ブートの主要部をRAMに転送するかで、
前者は実績があります。後者だと121の前半みたいなお膳立てをPGがやるわけですね。
う〜ん、厄介そうだなあ。 インテルの再配置ローダーみたいなツールがあればいいのに。
125デフォルトの名無しさん
2013/02/14(木) 15:20:59.70 組み込みじゃなくてすまんが、ローダ付きのCOMファイルみたいのを連想するw
126デフォルトの名無しさん
2013/02/14(木) 20:38:30.06 > インテルの再配置ローダーみたいなツール
転送時点で再配置しとけばいいだけでしょ
読み込んでから再配置しようとか、難しく考えてるような
転送時点で再配置しとけばいいだけでしょ
読み込んでから再配置しようとか、難しく考えてるような
12795
2013/02/15(金) 02:49:18.57 EXEファイルと違ってROM上の実行コードには再配置情報は残っていません。
私が過去に実現したのは、再配置情報を含まないことが確認済みの関数だけを
RAMに転送してコールするという手法でした。
私が過去に実現したのは、再配置情報を含まないことが確認済みの関数だけを
RAMに転送してコールするという手法でした。
128デフォルトの名無しさん
2013/02/15(金) 05:12:38.47 hexファイルに再配置情報がないのだから
移動先のアドレスで動くhexファイルを作っておいたらってことだけど
移動先に移動させる仕掛けはどっかに必要だけどね
ROM、RAM領域のアドレスが移動できるarmで
boot時にROMは0から見えるけど
最終的には上位番地でROMの実行コードが走ることをやったことある
(RAM領域は最終的に0番地から見える)
移動先のアドレスで動くhexファイルを作っておいたらってことだけど
移動先に移動させる仕掛けはどっかに必要だけどね
ROM、RAM領域のアドレスが移動できるarmで
boot時にROMは0から見えるけど
最終的には上位番地でROMの実行コードが走ることをやったことある
(RAM領域は最終的に0番地から見える)
129デフォルトの名無しさん
2013/02/15(金) 09:12:16.11 reloc情報つきのモジュールを置いて、それを自前ローダにくわせてはだめなんか
超小型車輪の自社開発みたいになるが
感覚的には
void* loader(void* _code, int _codesize, WORD* _relocs, int _relocssize);
超小型車輪の自社開発みたいになるが
感覚的には
void* loader(void* _code, int _codesize, WORD* _relocs, int _relocssize);
13095
2013/02/15(金) 17:10:10.76 >>128 実行空間と格納空間を別に指定できるLINKの仕方がHewにあるかどうか
なのですよ。ビルド−ツールチェイン−リンカのタブにそれっぽいのが無いみたい。
それがあれば、例えばFFFF0000番地にロードするイメージを00100000番地に格納
みたいなことができるのですけどね。ただ、コンパイラのマニュアルにpic,pidオプション
ってのがある所から見ると、copyしても動くようなオプションつけてビルドしなさいと読める
なのですよ。ビルド−ツールチェイン−リンカのタブにそれっぽいのが無いみたい。
それがあれば、例えばFFFF0000番地にロードするイメージを00100000番地に格納
みたいなことができるのですけどね。ただ、コンパイラのマニュアルにpic,pidオプション
ってのがある所から見ると、copyしても動くようなオプションつけてビルドしなさいと読める
131デフォルトの名無しさん
2013/02/15(金) 18:26:44.31 FFFF0000番地にロードするイメージのhexファイルを一度作って
00100000番地に格納出来るhexファイルに加工するほうが
悩まなくて済むような
00100000番地に格納出来るhexファイルに加工するほうが
悩まなくて済むような
13295
2013/02/16(土) 03:47:45.45 いや、だからそれは再配置情報が失われているって(w
13395
2013/02/16(土) 04:34:12.70 コンパイラマニュアルのリンケージエディタの使い方:セクションオプションの章を見ると
>>130 みたいな割り付け方法は無さそう。なので一般的な手法としては pic,pid 指定を
付けてビルドし、130の例で言えば00100000番地でリンク、実行時にFFFF0000番地へ
copyして実行、という流れになると思います。固定ベクタのResetVect(再末尾)は
ROMの実行開始部を指し、そこは最低限RAMへcopyしてジャンプするコードを置く。
Hardwaresetup( ) の部分なんかはRAMで実行する必然性は無いので、reset時ROMで
実行してもかまわないでしょう。ただ、「RAMで実行することが必然」 な機能が何かという
ことを考えてゆくと、以前の仕事みたいにROMとRAMを行き来する手法もありかな、と。
後者の利点は、CODEを置くためのRAMが少量で済むこと・再配置情報が無いルーチン
だけを置くことで再配置問題を回避できること。
>>130 みたいな割り付け方法は無さそう。なので一般的な手法としては pic,pid 指定を
付けてビルドし、130の例で言えば00100000番地でリンク、実行時にFFFF0000番地へ
copyして実行、という流れになると思います。固定ベクタのResetVect(再末尾)は
ROMの実行開始部を指し、そこは最低限RAMへcopyしてジャンプするコードを置く。
Hardwaresetup( ) の部分なんかはRAMで実行する必然性は無いので、reset時ROMで
実行してもかまわないでしょう。ただ、「RAMで実行することが必然」 な機能が何かという
ことを考えてゆくと、以前の仕事みたいにROMとRAMを行き来する手法もありかな、と。
後者の利点は、CODEを置くためのRAMが少量で済むこと・再配置情報が無いルーチン
だけを置くことで再配置問題を回避できること。
134デフォルトの名無しさん
2013/02/16(土) 09:03:49.43 開始アドレスだけかえて複数のhexファイルつくって、
比較して、reloc情報を起こせばいいんじゃないかと
そんなので済むかって?
そんなので済むように書けるのが、機械語じゃないかw
比較して、reloc情報を起こせばいいんじゃないかと
そんなので済むかって?
そんなので済むように書けるのが、機械語じゃないかw
13595
2013/02/19(火) 05:00:31.82 以前書いたブートコードは、割り込みを使わずuartはポーリングで書いたのですが、
今回の石ではその手法は使えないことが判りました。なんと、uartのステータスregに
RXRDY,TXRDYのフラグが無いの(*o*) だから受信・送信のトリガーは必ず割り込みで
取らないといけない。 これで解らないのがベクタとpic,pid機能との関連。
ベクタ(=割り込み処理コードのアドレス)、処理(=ROMの10000番地に実行コード)
このベクタと処理をRAMの100000番地に書き写したとしても、ベクタの指す先はやはり
10000番地のままだから、割り込みが発生したら10000番地が実行されてしまうよね。
今回の石ではその手法は使えないことが判りました。なんと、uartのステータスregに
RXRDY,TXRDYのフラグが無いの(*o*) だから受信・送信のトリガーは必ず割り込みで
取らないといけない。 これで解らないのがベクタとpic,pid機能との関連。
ベクタ(=割り込み処理コードのアドレス)、処理(=ROMの10000番地に実行コード)
このベクタと処理をRAMの100000番地に書き写したとしても、ベクタの指す先はやはり
10000番地のままだから、割り込みが発生したら10000番地が実行されてしまうよね。
136デフォルトの名無しさん
2013/02/19(火) 05:45:21.07 普通RAM上にフックさせるだろ
137デフォルトの名無しさん
2013/02/19(火) 16:44:08.41 UARTをいつも見張ってると、CPUの手がそんだけ取られてるような
138デフォルトの名無しさん
2013/02/19(火) 17:05:45.94 ROMとRAMが同じアドレス空間にマップされるというマッピングが
そもそもあり得ないんだけど。かりに意図してそうしているのなら
何らかのバンク切り替えメカニズムもあるはずだよね。
そもそもあり得ないんだけど。かりに意図してそうしているのなら
何らかのバンク切り替えメカニズムもあるはずだよね。
139デフォルトの名無しさん
2013/02/19(火) 17:07:34.9414095
2013/02/20(水) 03:07:34.9814195
2013/02/20(水) 06:56:45.05 PICを吐くようコンパイラに指示してビルドしたけど、ベクタの中身は変わりませんでした。
原理的には想像はついてたんだけど、実際に出会ってみるとガッカリ。
ポジションインディペンデントであってセルフリロケーティングなわけじゃないもんね。
命令中の実アドレスは(再配置を要するものは)一切ダメ、ってルールブックに書いて
おけばいいのに、そこの所をマニュアルではぼかして書いてあるの。
原理的には想像はついてたんだけど、実際に出会ってみるとガッカリ。
ポジションインディペンデントであってセルフリロケーティングなわけじゃないもんね。
命令中の実アドレスは(再配置を要するものは)一切ダメ、ってルールブックに書いて
おけばいいのに、そこの所をマニュアルではぼかして書いてあるの。
142デフォルトの名無しさん
2013/02/20(水) 21:12:32.70 そんなもんコード上で書き換えないと変わるわけないじゃん。
そんな至れり尽くせりのコンパイラなんかどこにもないぞ。
そんな至れり尽くせりのコンパイラなんかどこにもないぞ。
14395
2013/02/21(木) 02:33:26.66 これは実際に製品にするので、その辺をどうするか手探りしているところです。
石はRX210、内蔵ROM/RAM=128〜512/16〜64 ぐらい、cコンパイラの拡張機能で
専用の特殊regをいじる組込関数が提供されてます。set/get_btbl( ),set/get_psw( )等
RAMの実装番地は0番地からなので、copyしたら0番地に飛ばす、あるいは特定の低い
番地に飛ばすのは可能ですね。
古代のメインフレームでは BALR USING という手法でセルフリロケーティングなコードを
書きやすくしてくれたのですが、メモリが激安の現代にそんな手法がなぜ無いのだろう・・・
あ! ROMライタにはそういう機能があったなあ。コードは0番地で動くようにLINKして、
ROMに焼くときに元のコードのロードアドレスにFFFF0000を足して転送、という機能。
(昔のライタなので8桁はムリだったかも) ルネ提供のライタにそういう機能があるかな。
石はRX210、内蔵ROM/RAM=128〜512/16〜64 ぐらい、cコンパイラの拡張機能で
専用の特殊regをいじる組込関数が提供されてます。set/get_btbl( ),set/get_psw( )等
RAMの実装番地は0番地からなので、copyしたら0番地に飛ばす、あるいは特定の低い
番地に飛ばすのは可能ですね。
古代のメインフレームでは BALR USING という手法でセルフリロケーティングなコードを
書きやすくしてくれたのですが、メモリが激安の現代にそんな手法がなぜ無いのだろう・・・
あ! ROMライタにはそういう機能があったなあ。コードは0番地で動くようにLINKして、
ROMに焼くときに元のコードのロードアドレスにFFFF0000を足して転送、という機能。
(昔のライタなので8桁はムリだったかも) ルネ提供のライタにそういう機能があるかな。
144デフォルトの名無しさん
2013/02/23(土) 10:42:42.62 手探りで製品開発?
しかもにちゃんで質問…
しかもにちゃんで質問…
145デフォルトの名無しさん
2013/02/23(土) 22:37:36.63 ちょっとどうかなと思う発想もあるが、正直よその石のことは想像でしか聞けないし、
雑談ネタを投下してくれてると思って流し読みすればおk
雑談ネタを投下してくれてると思って流し読みすればおk
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 俺の代わりに中国がバカウヨを倒してくれる [805596214]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 俺の読んだことある漫画一覧がひどい
- 1,000万円のBMWに擦ってしまった札幌のガキ、捕らえられてガチで詰む [329329848]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 高市が首相になってから進次郎の評価が爆上がりしてる件について
