C/C++プログラマーが予備知識として学ぶIntel64/MIPS32アセンブリ言語プログラミング・コンピューターアーキテクチャー改訂第二版本pdf無料ダウンロード

C/C++プログラマーが予備知識として学ぶIntel64/MIPS32アセンブリ言語プログラミング・コンピューターアーキテクチャー改訂第二版 Kindle版

OS, Linuxオペレーティングシステム, プログラミング (Kindleストア), 小松正樹


C/C++プログラマーが予備知識として学ぶIntel64/MIPS32アセンブリ言語プログラミング・コンピューターアーキテクチャー改訂第二版 Kindle版の表紙

によって 小松正樹

5つ星のうち4.8 5つ星のうち 6個の評価 人の読者

ファイルサイズ : 27.74 MB

本書の目的は並列プログラミング、最適化、OSレベルの低層でのコーディングに必要なプロセッサーとメモリー、キャッシュの仕組みを広く浅く(厳密ではなくざっと)学ぶことです。C/C++ をある程度使える技術者や学生が情報科学の書籍(以下リスト)を読むために、最低限必要な準備知識を備えるための副読本として執筆しました。- C言語並列プログラミング(2020年8月予定)- C++ 並列プログラミング(2020年12月予定)- 自作 DBMS プログラミング(2021年4月予定)- Operating System プログラミング(2021年8月予定)- Compiler プログラミング(2022年4月予定)情報科学に興味のない方は得るものは少ないと思います。特定のアセンブリ言語の事前知識は不要ですが、GDBでのデバッグに慣れている方が有利だと思います。※注1:文体は端的でカジュアルな表現を心がけたので、ブログ調にアレルギーのある方は読まないほうが良いでしょう。※注2:第一版で追加更新内容の配信依頼をしたところ、Amazon運営側で「読書体験を損なうおそれのある品質上の問題の対象外」との判断があり、「新たに別の本としてご出版いただくことを推奨」されたので、今後の修正内容は新版して出版します。内容序章C/C++開発環境の設定Intel 64(X86_64)アセンブラの基本知識MIPS32の基本知識前半の章電子、半導体、ダイオード、電子回路中間の章コンピューター(プロセッサー・メモリー)アーキテクチャー(MIPS32を使用、一部x86もからめる)Intel CPU(Kabylake)のアーキテクチャー後半の章Intel 64アセンブリ言語(NASMとGAS、AT&TとIntelシンタックス、呼出規約では X86_32も軽く説明)読み方- アセンブリを学びたいだけの方は「アセンブリ言語でハローワールド」の章を呼んだら「レジスター」の章までスキップしてください。- コンピューターアーキテクチャー、プロセッサーアーキテクチャーを学びたいかたはMIPS32の章から読み進めてください。- 半導体や電子回路を学びたい方は、ハローワールドや環境設定はスキップして「電子の基本」の章から読み始めてください。必要な知識・スキル- C言語/C++のプログラミング- 拙著「C++プログラミング(基礎編)」のGDB・ライブラリーの章必要な開発環境- Windows 10/Bash on Windows または Ubuntu 16.04- MSYS2 (Mingw32)- GCC 7.2- PCSpim(「PCSpim_9.1.9.zip」と検索するダウンロードできる場所が表示されるはずです)注意- PCSpimのインストールの説明は画像を使っていません- Intel CPUの64ビット環境で x86_64 の検証をしているだけなので、Intel 64に特化した説明はありません正誤表(第一版購入者向け)R-Sラッチの項目内のリセット画像の直下の図説明において、「Qnextは1です」と記述されていますが、0が正しい記述です。また「Qprevの値に関係なく、Qnextは(1ではなく)0となってますね」が正しい記述です。図が正しく説明が誤ってました。UbuntuのGCCディストリビューションの一部には「-fPIC」「-fPIE 」オプションを自動で発行するものがあります。gcc を使用時にPIEのエラーが出たら「-no-pie」コマンドオプションを追加指定してください。$ gcc -no-pie ファイル名他のコマンドオプションとも併用可能です。目次コンピューターアーキテクチャーとアセンブリ言語C/C++での開発環境準備GNU開発ツールを使ったデバッグアセンブリ言語アセンブリ言語でハローワールドシステムコールとLinux64bit Linux GAS ハローワールド64bit Linux NASM システムコールによる出力MIPS32PCSpimのインストールMIPS32でハローワールドMIPS32アセンブリ言語32ビットMIPSの命令フォーマットMIPS32で算術演算MIPS32で論理演算MIPSのアドレスモード電子の基本整理電荷電荷キャリア電子ホール(正孔)イオン導電率価電子バンド共有結合(covalent bond)熱エネルギーの効果電子密度とホール密度半導体(セミコンダクター)フェルミ準位ドーピングによるバンド構造の性質変化N型半導体P型半導体電圧印加と励起(Excitation)電界効果と反転層半導体ダイオードPN接合リバースバイアス(逆バイアス)フォワードバイアス(順バイアス)トランジスター集積回路FETMOSVLSIMOSFETCMOS回路論理演算回路基本回路:ゲートメモリープロセッサーアーキテクチャーフォン・ノイマン型のCPUアーキテクチャーCPUの汎用アーキテクチャー- 命令サイクル- データパスパイプラインハザード- 構造的ハザード- データハザード- 制御ハザードC言語での分岐予測分岐予測命令の仕組みと用語RISCとCISCアウト・オブ・オーダー実行動的スケジューリングレジスターリネーミング- Tomasuloアルゴリズム- Reservation Station(予約ステーション)投機的な動的スケジューリングメモリーアーキテクチャーキャッシュの基本アーキテクチャマルチプロセッサーバスプロトコルキャッシュコヒーレンス- MESIプロトコル- MOESIプロトコルMMU(Memory Management Unit)x86_32のページテーブルx86_64のアドレスTLBIntel CPUアーキテクチャーKabylake-CPUコアのアーキテクチャーレジスター・エイリアス・テーブル(RAT)ブランチ・オーダー・バッファー予約ステーション(予約機構)スケジューラーキャッシュタイプ:Intel 64アーキテクチャーレジスターx86_64のレジスターx87レジスターと命令命令アセンブラー命令のフォーマット算術命令ビット演算ジャンプ命令シフト演算命令補数メモリーアドレッシングx86_64のアドレッシングモードスタックフレーム相対命令ポインター(Instruction-pointer relative)PIC(位置独立コード、position independent code)共有ライブラリーへのアクセスGlobal Offset Table(GOT)Procedure Lookup Table(PLT)PLTとGOTの仕組み呼出規約呼び出し規約(非マイクロソフト)マイクロソフトの呼び出し規約- 32ビットならMSYS2- cdecl? stdcall? fastcall?インラインアセンブラーインラインアセンブラの概要基本asm構文拡張インラインアセンブラー特殊なオペランド制約CMPEXCHG命令文字列処理命令浮動小数点命令セグメントレジスターSIMDプリフェッチ gccのビルトインプリフェッチ命令インラインアセンブラでprefetcht0の呼出アセンブラ命令の最適化(おまけ)Macro-FusionMicro-FusionMove eliminationZero Idiom等

ファイル名 : c-c-プログラマーが予備知識として学ぶintel64-mips32アセンブリ言語プログラミング-コンピューターアーキテクチャー改訂第二版-kindle版.pdf

Komentar

Popular Posts

「NEW セブ島でちょっと一人旅 in フィリピン」-海外旅行はこれ1冊- 海外旅行の心得: 「セブ島でちょっと一人旅 in フィリピン」-海外旅行はこれ1冊- 海外旅行の7つの心得電子ブックダウンロードepub

日本の365日を愛おしむ 特別版無料のオンラインPDFを読む

一瞬で正しい判断ができる インバスケット実践トレーニング (朝日新書)無料のPDFブック