ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

2008-04-01から1ヶ月間の記事一覧

全部入りのbinutilsを作る。

バイナリアンへの道は遠いで悩んでいたら、shinhさんに良い方法を教わりました。http://shinh.skr.jp/m/?date=20080428#p07ありがとうございます。 ./configure --enable-targets=all --program-prefix=all- で作ると、確かに全部入りができるのですが、アー…

2章 Ex2.4 即値の減算の比較

Exercise 2.4の発展で、他のCPUも調べてみました。とは言っても各CPUのデータシートを追っていくのは大変ので、Cソースをコンパイルして必要なところを抜き出しています。やっていることは、a = b + 10, a = b - 50; で、10の加算と50の減算です。フラグ関係…

Exercise 2.2-2.4

Exercise 2.2 What binary number does this hexadecimal number represent:0x7FFF_FFFA? What decimal number does it represent? 0x7FFF_FFFAは2進で表すと、0111_1111 1111_1111 1111_1111 1111_1100。十進で表すと、2147483642。 Exercise 2.3 What hexa…

Exercise 2.1

Exercise 2.1 Using the MIPS program in Exercise 2.34 (with bugs intact), determine the instruction format for each instruction and the decimal values of each instruction field. Exercise 2.34のコードをPCspimで読み込んで、コードをダンプしま…

2章 2.9 32bit即値のロード

教科書のSection 2.9に出てくる32bit即値の話。RISCプロセッサというのは、命令長が固定な為、命令長が32bitであれば、32bitの即値をそのまま入れることはできません。クロスアセンブラの環境ができたので、早速各CPUの比較をしてみましょう。各コマンドは本…

sparcのクロスコンパイル環境を用意する。

勉強用にcygwinで動くsparc向けのクロスコンパイル環境を作りました。 インストールは途中でエラー終了してしまいましたが、勉強には十分なので整理してみました。実際の開発に耐えられる物ではないので、注意してください。 gmp-4.1のインストール GCCの4.3…

クロス環境の構築

適当に各プロセッサのCコンパイラを揃えてみました。勉強に使う分には十分だと思います。Cygwinがインストールしてあることが前提です。CQ出版のCDにも体験版などが入っているのですが、気軽にダウンロードできること、Optionが統一されているの理由でgcc系…

2章 mips シミュレータの準備

Exercise 2.1 をする前準備 exercise 2.34のバグ付きプログラムを使って、各命令についてフォーマットと、10進の値を確認しなさい。まじめにやろうとするとアセンブラが必要なんですが、mipsシミュレータでさくっと確認しましょう。 手順を簡単にまとめまし…

パタヘネを勉強するための自分用ルール

臨機応変に 自分用ルール 主に章末の練習問題と、CDROMを中心に勉強する。練習問題は基本的には解いていきたいけど、初版のやつは「CPUをHDLで書け」とか無茶な練習問題もあったので、ボリューム次第。 プロセッサ周辺は、たとえ少しでもVerilogとかSystemC…

パタヘネを一緒に勉強する人募集中、めざせバイナリアン!

練習問題を中心にパタヘネを勉強していくブログです。 パタヘネとは Computer Organization and Design: The Hardware/Software Interface Patterson先生とHennessy先生が書いた、ソフトとハードのインターフェイスを書いた本。初版に比べるとソフトウェアに…

上とは違うの?

りすと りすと りすと

ここに見出し書くの?

リスト リスト リスト

アセンブラを張ってみる

main: addi $v0, $zero, 0 # initialize count loop: lw $v1, 0($a0) # Read next word from source sw $v1, 0($a1) # Write to destinetion addi $a0, $a0, 4 # Advance pointer to next source addi $a1, $a1, 4 # Advance pointer to next distination be…

初めてのはてなダイアリ

砂場書いてみるよ。