ARMで学ぶアセンブリ言語入門の本

 Cortex-M 省電力向け(マイコンとか)

R 信頼性向け

A 高パフォーマンス向け

ARM Thumb命令

Thumb命令は16bit

QEMUでシミュレーションできる。

CPSRレジスタ。カレントプログラムステータス・レジスタ。CPUモードとか、演算結果とか。

 

C言語に↓のようにかけばインラインアセンブラ

__asm__(

アセンブリコード

:出力用オペ練度

:入力用オペランド

:上書きレジスタ

);

 

ベクターテーブルってやつが必ず先頭とかサイトとかにいて、割り込み処理はこいつらを見たりしてる。

x86シミュレータの本まとめ

1972年intel が8008 8bitCPUx86じゃない。

1974後継の8080 8bit

1978 8086 16bit pc9801

後継の80286,386とをあわせてx86という。

80386は1985年。32bit 286は1982年。

 

ndisasm -b 32 a.out でアセンブラ表示。

objdumpでオブジェクトから、アセンブラとソース

 

命令が面倒。

inc とdecを判断するのにフラグにしてたり、Mod/RMとか。いろいろ。

 

C言語register int i;でレジスターに残せれる。

struct List;

struct List list;//コンパイルエラー。サイズがわからずどれだけメモリーをわりあてたらいいか不明のため。

structList *list;

 

struct List;

struct List *new_list(void);

void delete_list(struct List *l);

void list_push_back(struct List *l, int v);

int list_pop_back(struct List *l);

っていうヘッダの実装ができる。

 

C言語のローカル変数に関して。ローカル変数を確保すると、その瞬間にすタックポインタが移動するのではなく、関数呼び出しをした時点で、引数とローカル分確保される。

それで、ebpからの引き算とかでスタック内にアクセスする。開放はスタックフレームごと一気に開放される。

 

ブートのはなし

基本1セクタ512バイト。

BIOSは各デバイスの先頭の1セクタを見に行く。1セクタの最後の2バイトが0x55,0xaaだったら起動可能と判断する。その後、先頭セクタをメモリの0x7c00からの位置にコピーしてその後の処理が開始される。

基本的に0x7c00に置枯れることを想定しているため、アセンブラから機械語に変換するときに先頭にorg 0x7c00とかかいてればジャンプ命令とかでアドレスが狂うことはない。

HDDとかはMBR,PBRあるが、USBメモリとかは1パーティションのみなのでPBRしかない。このPBRの先頭セクタに書いておけば。

書き込み方は

sudo dd if=./pbr.bin of=/dev/sdb bs=512 count=1

とかやれば良い。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

すぐやる!まとめ

起きて4時間後にすっきりしてないと睡眠の質が悪い

その場合

ベッドの中では何もしない。

 →ベッド=睡眠になる

平日休日の起床時間を1時間以内にする

 →ズレを防ぐ

目が覚めたら日にあたる

起床から6時間ごに1−30分目を閉じる 

 →目が空いてたら脳が休まらん

起床から11時間後にできるだけ体を動かす

起きる時間を寝る前に3回唱える

 コルチゾールが分泌され、すっきり起きれる

<すぐやるの天敵>

テレビは見ない!は見るモードになってから見ないように我慢してるので辛い。

テレビをちょっとだけ見よう→見てしまった罪悪感→ドーパミン増加→期待感が高まる→諦めて大満足

水がほしい時に相手がコップをおいたらモデルフリーシステムでそれを取ろうとする。しかしモデルベースシステムで相手のコップだからと食い止めている。

だから見せないようにしなければこの無意識に葛藤は起こってしまう。それで疲れてやめてしまう。なのですぐやるには見せないこと。無意識にやってしまっていることを見せないことが重要。例えばリモコンを雑然とおかずに定位置におくとか、付箋をはらないとか。

好きだからやるというのも嘘くさい。2どねが好きだけど後悔するのは体が寝るのでそれを勝手にすきだと情動でそうさせている。

カフェでスマフォを出さない

付箋をはらない。

フィードフォワード

会議が終わったらファイルを机におくいて、なかなか議事録をやらない場合。このままではファイルの置き方ばかりが綺麗になっていきます。(フィードバックが働くため。)

脳に目的をつけさせて、すぐに取り掛からせるようにする。(単なる目標設定ではない)

ファイルをおかずに少しだけ手を付けてやめる。先行き不安定でOK。(フィードフォワード)。こうすることで何が目標かを脳みそがわかるようになってきて、頑張らなくても勝手にすぐやるようになる。

資格の勉強なんかは家に帰ると最初はやるところに日付をつけるだけでOK。そのフィードフォワード脳を刺激して勝手にやるようになる。

目標通りにできたかどうかではなく、自分でコントロールできているかをどうかに目を向けること。

流し台に皿をおかない。

無意識にやってしまっている行動に目を向けて変えてみる。するとコントロールできる。(電車で座ったらスマフォを見るとか。)

<やらない病は伝染する>

聞くより触るより、見るほうが真似てしまう。やらない病のほうが伝染しやすい。

見ないに越したことない。

あとは、すぐやる人の行動を言語化すると自分もできやすくなる。

 

<言語化>

主観的言葉

客観的言葉

経験的言葉(客観的な話に、感じたことや体の様子を付け加えるように話をする)

大切なのは経験的言葉

自分のはなししている言葉がよく入ってくるので大切。他人の話も重要。だから雑談が大切。なぜそうしたのか。どう思ったかという質問をしてみる。といい。

経験的言葉は次にどうすればいいかということを無意識的に想像している。勝手にやる気になってる。

自分の経験を語るだけで積極的になれます。

〇〇みたい。に例えてみるのも良い。

 

<わざ言語>

「レシーブはボールを押し出すように」とか速読は読まないように読むとか言うのがわざ言語。

すぐやるひとはわざ言語をいう。言うとどんどんやる気が出てくる。

すぐやる人はどんどんやって、やらないひとはやらないまま。

わざ言語を理解することが重要。それができれば境界線をまたぎ、レベルアップする。そのためには使ってみるしかない。

わざ言語はできたあとの話。だから「やればできる」系は違う

やればできるといってやっていなければ脳はどう理解したらいいのかわからん。

やればできるけどやらん→罪悪感→ドーパミン→期待感→できんから挫折。→全否定

ここまではできる」と到達点を具体てきにすること。できていないことは脳に要求しないこと。

小さな成功に着目できる。そしてドーパミンがでなくなる。

どうしても朝起きれない→30分早く寝る努力→でも起きれないけど1日あった→その一日はわりとすっとお切れた→ドーパミン現象→起きれる日が増える。

SNSの他人のわざ言語を見ない。

望まない状態を口にしない。

課題のレベル付も良い。

 

<メンタル文法>

メンタル文法は普段の会話で用意している語順集みたいなもん。

それを意図的に変えるとすぐやる人になれる。

自分の体が自然に動く状態になってる時の言葉、モチベーションの源泉となるキーワードを見つけること。その言葉を紙に書き、

「すぐやる」

を付け足す。

「人のためならすぐやる」

許せないことはすぐやる」

というように、自分の体がすぐ動く状態+すぐやるをメンタル文法にする。

メンタル文法を使い続けているとニューロンの発火が起こりやすくなる。

 

<触覚も大切>

強制握反射

たのしいとき、きぶんがいいときの行動を丁寧にすることで、触覚が刺激されて、乏しかった感覚が豊富になる。かんかくにたいするいしきが脳内で変わってやる気がでるようになる。

 

<色んなコトやり過ぎ注意>

脳が疲れる。靴変えたら歩き方が変わるので脳みそが疲れる。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

pingは「ピン」

ゴルフクラブはピンっていうのに

pingコマンドはピングっていっちゃう。