CASL入門
|
|
|
- まいえ やすもと
- 7 years ago
- Views:
Transcription
1 4 章 機械語の設計 ここでは 機械語の設計をしてみましょう 機械語の設計! そんなことができるのでしょうか 情報処理技術者試験の CASLⅡ 説明書の参考資料には 命令後の構成は定義しないが と記載されています アセンブラ言語を理解するためには機械語の理解が非常に大切になりますし 自分で設計してみれば格段に理解が容易になります そこで 定義されていないなら 定義してしまおう というわけです CASLⅡが動くコンピュータである COMETⅡは仮想のコンピュータですから どんな設計をしてもかまわないのです しかし 命令後の構成は定義しない とする一方で 次のような構成を想定する として 機械語が定義されています この章では 自分で最初から設計する ことで話を進め 最終的には 想定された構成 になるように考えてみましょう - -
2 4. 設計の手順 設計といっても どうすればよいのでしょうか その方法を考えてみましょう 4.. 機械語とはそれでは 今さらですが 機械語 とは何でしょうか プログラムは アセンブラ言語であれ 高級言語であれ ある程度人間が理解できるように書かれます コンピュータは もちろん理解できませんから これを機械のわかる言葉 (= 機械語 ) に変換 ( つまり アセンブルする コンパイルする ) してからコンピュータに命令を与えることになります 機械語は 実行時にはコンピュータのメモリーに置かれますから ビットの集合です しかし このビットの集合は 元はプログラムとして書かれたものですから 逆に機械語から元のプログラムが復元できるようになっていなければなりません 4..2 実際に設計設計してみる例えば LD GR,KINGAKU,GR2 という命令を機械語に変換することを考えてみましょう この命令を機械語に変換した結果として ( 機械語から ) 次の情報を読み取ることができなければなりません 命令 ( オペレーション ) が LD 命令であること 2 汎用レジスタ GR へロードする命令であること 3 ロード元としてアドレスが定義されていること (LD GR,GR2 というような ロード元が汎用レジスタではないこと ) 4 アドレスとして KINGAKU が指定されていること 5 インデックスとして汎用レジスタ GR2 が指定されていることそれでは 順に考えていきましょう オペレーション CASLⅡには全部で 38 種類の命令があります ( 命令の種類は 28 種類ですが バリエーションを含めると 38 個になります ) 38 種類の命令を区別するためには 少なくとも 6 ビット必要です (6 ビットで 64 種類表現できますが 5 ビットですと 32 種類しか表現できません ) 従って 命令のオペレーション部分として 最低 6 ビットが必要です 汎用レジスタ汎用レジスタは 0~7 までの 8 種類がありますから 最低 3 ビットが必要です アドレスアドレスは 0~65535 までありますから 6 ビットが必要です - 2 -
3 インデックスインデックスも汎用レジスタと同じく 3 ビットが必要です ここまで 必要なビット数は 28 ビットになりました さて COMETⅡは 語が 6 ビットですから 28 ビットというのはいかにも中途半端です そこで 少しもったいないのですが 6 ビットを 2 つ 合計 32 ビットを使用することにします ここで 再度 命令に必要なビット数を見ますと アドレス部はそれだけで 6 ビットですので これを 語として 残りの 語 6 ビットに他の部分を埋め込むことにします 他の部分は 2 ビットですから 6 ビットを使うと 4 ビットが余ることになります 余りは 未使用 でもかまわないのですが 将来拡張されることを考慮して オペレーションを 8 ビット 汎用レジスタとインデックスをそれぞれ 4 ビットとします そうすれば 将来オペレーションの種類が 256 まで増えても大丈夫ですし 汎用レジスタが 6 個まで増えても大丈夫です ここまでをまとめると次のようになります 最初の 8 ビットオペレーションの種類 語目次の 4 ビット汎用レジスタ最後の 4 ビットインデックスレジスタ 2 語目アドレス表 4- 語の割り振りそれでは LD r,r2 のような インデックスが無い代わりに汎用レジスタが 2 個あり アドレスも無い命令はどうなるでしょうか このような命令は アドレス部が不要なので 命令は 語となる インデックスの代わりに r2 を 語目最後の 4 ビットに設定するということにします では RET や NOP のように オペランドの無い命令はどうなるでしょうか このような命令は 語目の最初の 8 ビットのみであとは不要です この場合 命令は 8 ビットで済むのですが COMETⅡでは番地が 語単位にしか割り振られていないので 残りの 8 ビットをすべてゼロ とし 命令の長さを 語にします つまり 全ての命令は 語か 2 語になるというわけです オペレーション部分は 勝手に ( 同じ値にならないように ) 割り振っていけばよいのですが 想定され 特にゼロにする必要は無いが 通常このような場合はゼロにする - 3 -
4 る命令語の構成 にしたがってみましょう この構成では 命令後の上位 4 ビットで命令を大きく分類し 下位 4 ビットで細かく分けているようで す このようにして全ての命令を設計したのが次の表で 情報処理推進機構のホームページに記載され ています 4..3 宿題の答 命令 オペランド 語目 ( ビット位置 ) 5~8 7~4 3~0 2 語目 LD LoaD r,r r r2 - r,adr[,x] r x adr ST STore r,adr[,x] r x adr LAD LoadADdress r,adr[,x] r x adr ADDA ADD Arithmetic r,r r r2 - r,adr[,x] r x adr ADDL ADD Logical r,r r r2 - r,adr[,x] r x adr SUBA SUBtract Arithmetic r,r r r2 - r,adr[,x] r x adr SUBL SUBtract Logical r,r r r2 - r,adr[,x] r x adr AND AND r,r r r2 - r,adr[,x] r x adr OR OR r,r r r2 - r,adr[,x] r x adr XOR exclusive OR r,r r r2 - r,adr[,x] r x adr CPA ComPare Arithmetic r,r r r2 - r,adr[,x] r x adr CPL ComPare Logical r,r r r2 - r,adr[,x] r x adr SLA Shift Left Arithmetic r,adr[,x] r x adr SRA Shift Right Arithmetic r,adr[,x] r x adr SLL Shift Left Logical r,adr[,x] r x adr SRL Shift Right Logical r,adr[,x] r x adr JPL Jump on PLus adr[,x] x adr JMI Jump on MInus adr[,x] x adr JNZ Jump on Not Zero adr[,x] x adr JZE Jump on ZEro adr[,x] x adr JOV Jump on OVerflow adr[,x] x adr JUMP unconditional JUMP adr[,x] x adr PUSH PUSH adr[,x] x adr POP POP r r CALL CALL subroutines adr[,x] x adr RET RETurn from subroutines SVC SuperViser Call adr[,x] x adr NOP No OPeration 表 4-2 機械語一覧 ( 出典は 情報処理推進機構情報処理推進機構ホームページホームページ ) それではここで 宿題の回答をしておきましょう 宿題 汎用レジスタ 0 は なぜインデックスレジスタとして使用できないのか - 4 -
5 命令の説明で書いたように 命令を構成する 6 ビットのうちの最後の 4 ビットでインデックスレジスタとして使用する汎用レジスタの番号を設定します ただし インデックスレジスタが指定されていない場合はどうすれば良いでしょうか 通常は ゼロを設定しておきます すると インデックスレジスタとして汎用レジスタ 0 が指定された のか インデックスが指定されていないのか 区別がつかなくなります そこで エイッ とばかり 汎用レジスタ 0 はインデックスとして使用できない としたのです この設計では 汎用レジスタが 7 個しかないのにレジスタ設定部として 4 ビットを確保していますので 4 ビット中の最上位ビットは常に 0 となります ですから たとえば 最上位ビットが のときはインデックスを使用していない とでも定義しておけばよいのですが 将来汎用レジスタが 6 個に増えたりしたときには この手は使えなくなりますので 汎用レジスタ 0 はインデックスとして使用できない と決めたのです 4.2 アセンブルの仕組仕組み それではここで 定義した機械語を使って 実際にアセンブラ 2 がどのようにソースプログラムから機械 語を作り出していくかを見てみましょう 4.2. プログラム例 例として 次のようなプログラムを紙上でアセンブルしてみましょう このプログラムは SUCHI にある値と SUCHI2 にある値を加算して 結果を KOTAE へ格納すると いうもので 非常に単純なプログラムです 加算は 一旦 SUCHI の内容を汎用レジスタ へ持ってきて そこへ SUCHI2 の内容を加算し 結果を 6 進の X F0F0 で論理積をとって KOTAE へ格納します 論理積をとるのは あまり意味はないのですが リテラルの説明のためにあえてこの命令を入れまし た くどいようですが このプログラム自体は 特に何をするというものでもなく 単に命令を並べただえで すので どんな結果になるのか 何をしようとしているのか などを考えないでください SAMPLE START ; LD GR,SUCHI ;2 ADDA GR,SUCHI2 ;3 AND GR,=HF0F0 ;4 ST GR,KOTAE ;5 RET ;6 SUCHI DC 200 ;7 SUCHI2 DC 300 ;8 KOTAE DS ;9 END ;0 IBM メインフレームのアセンブラも同様です 2 くどいようですが アセンブラ が アセンブラ言語で書かれたソースプログラム を機械語に変換すること ( アセン ブルすること ) を アセンブリ と言います - 5 -
6 以下 順に説明します 説明 プログラム名を SAMPLE としています 2 SUCHI の内容を GR へロードします SUCHI は6で 200 と定義されていますので 汎用レジスタ には ( 命令実行前の無いように関係なく )200 が格納されます SUCHI の内容は変わりません 3 GR に SUCHI2 の内容を加算します SUCHI2 は7で 300 と定義されていますので 汎用レジスタ には =500 が設定されます 4 結果を 6 進の X F0F0 で論理積をとります 5 加算結果を KOTAE へ格納します 命令実行前の KOTAE の内容が何であれ 無視されて加算結果が格納されます 6 プログラムを終了して制御を OS へ返します 7 SUCHI という領域を 語確保し 初期値を 200 とします 8 SUCHI2 という領域を 語確保し 初期値を 300 とします 9 加算結果を格納する領域を 語確保し その領域に KOTAE という名前をつけています 初期値は未定です ( 何がはいっているかわかりません ) 0 プログラムの終わりを示します アセンブルそれでは 上記プログラムをアセンブルしてみましょう アセンブルは 2つのフェーズに分けて行います まず 第 フェーズです 上記 は機械語の命令ではありませんから 変換しません 前に設計した 機械語一覧によれば 2は次のようになります 語目の 5~8 ビット目 これが 機械語で LD 命令になります 語目の 7~4 ビット目汎用レジスタは を使用しますので 000 語目の 3~0 ビット目インデックスは使用していませんので 語目は まだ分かりませんので 仮に? としておきましょう ここまでで 語目は となります 2 進数では見にくいので 6 進表示にすると X 20 になります これで命令ひとつが機械語になったわけですが ( まだ 2 語目は? のままですが ) プログラムは 0 番地から始まるとしてで 0 番地 X 0000 番地 X???? となります 以下 同様に6までアセンブルします ただし 6のように 語だけで構成される命令もあります では 7はどうなるでしょうか これは 単に 200 という数字です 200 は 0 進数ですので これを 6 進数に変換して X 00C8 になります - 6 -
7 同様に 8は X 02C ですね では 9はどうでしょうか これは 単に領域を確保するだけで 初期値は定義されていないのですが 機械語に変換するとき困りますので X 0000 とでもしておきましょう ここまでの変換結果をまとめてみます 語目ラベルオヘ レーションオヘ ラント アト レスビット表現 5~8 7~4 3~0 6 進 2 語目 SAMPLE START 00 2 LD GR,SUCHI ? 3 ADDA GR,SUCHI ?2 4 AND GR,=HF0F ?4 5 ST GR,KOTAE ?3 6 RET ( なし ) 7 SUCHI DC C8 ( なし ) 8 SUCHI2 DC C ( なし ) 9 KOTAE DS ( なし ) 表 4-3 アセンブル結果 ( フェーズ ) 次に フェーズ 2 です フェーズ 2 では フェーズ で とりあえず? にしておいたところを解決します 上の表では 3 箇所 (??2?3および?4) の未解決部分があります まず?ですが これは SUCHI のアドレスが分からないので とりあえず? にした というものです ところがフェーズ が終わった段階で 上表を見ると SUCHI のアドレスは 9 番地 に決定していますので これを 6 進に変換して X 0009 がアドレスになります 同様に?2と?3はそれぞれ X 000A と X 000B になります 最後に?4が残りました これはリテラルですので プログラムに存在しませんから自動で作り出してあげる必要があります 作り出す場所は END 命令の直前 と定義されていますから 直前に DC #F0F0 という命令を作り出します このアドレスは 最後 (9) のアドレスの次になります - 7 -
8 これらの値を上表に埋め込むと 次のようになります ラベルオヘ レーション オヘ ラント アト レ ス 語目ビット表現 5~8 7~4 3~0 6 進 2 語目 SAMPLE START 00 2 LD GR,SUCHI ADDA GR,SUCHI A 4 AND GR,=HF0F C 5 ST GR,KOTAE B 6 RET ( なし ) 7 SUCHI DC C8 ( なし ) 8 SUCHI2 DC C ( なし ) 9 KOTAE DS ( なし ) F0F0 表 4-4 アセンブル結果 ( フェーズ 2) これでアセンブルが全て終了しました 完成した表から 機械語部分のみをとりだすと 6 進で A C 0 000B C8 02C 0000 F0F0 となります これが このプログラムを機械語に変換した結果なのです 4.3 機械語でのでのコーディング それでは このプログラムを次のようにコーディングしたらどうなるでしょうか SAMPLE START 00 ; DC #030,#0009 ;2 DC #0B0,#000A ;3 DC #90,#000C ;4 DC #040,#000B ;5 DC #6600 ;6 DC 200 ;7 DC 300 ;8 DS ;9 DC #F0F0 ; END ;0 なんだかまったく分からないプログラムなのですが 機械語部分は変わりませんから立派に動作しそう ですが 実は動かないのです 理由は後で - 8 -
9 ところで このプログラムに RET 命令が無かったらどうなるでしょうか コンピュータは ST 命令の次にも命令があると思って 次の命令の実行にかかります 次の命令 ( と判断したもの ) は 6 進で X'00C8' ですから 命令のオペレーション部分は ビットで ' ' となります ところがこんな命令はありませんから エラーとなり 実行が止まってしまいます しかし もし偶然に 先頭へ戻る ( ジャンプする ) というような命令になっていたらどうなるでしょうか このプログラムは先頭へ戻って また同じ事を繰り返しますから 永久に止まりません 4.4 アブソリュートタームとリロケータブルタームリロケータブルターム 今 次のようなプログラムを作成し 実行することを考えてみます SAMPLE START LAD GR,000 ST GR,KINGAKU RET KINGAKU DS END これをアセンブルして機械語に変換すると次のようになります アドレス命令 命令 2 コーディング SAMPLE START E8 LAD GR, ST GR,KINGAKU RET KINGAKU DS 表 4-5 アセンブル直後直後の機械語 CASLⅡ の説明書によれば プログラムは OS によって起動される プログラムがロードされる主記憶の領域は不定であるが プログラムのラベルに対するアドレス値は OS によって実アドレスに補正されるものとする とあります つまり プログラムをアセンブルしたときは そのプログラムは 0 番地 から始まるようにアセンブルさ れるが 実行時には 0 番地から始まるわけではないということです このとき OS が ラベルに対するアドレス値 を補正します 上記プログラムでは 3 の 命令 2 が ラベルに対するアドレス値 ですので この値が補正されるこ とになります なお 2 の 命令 2 は ラベルに対するアドレス値 ではないので 補正対象にはなりません 例えば このプログラムが 00 番地 (6 進で X 0064 ) からロードされたとします すると ラベルに対するアドレス値 を補正 (00 を加える ) されると 次のようになります - 9 -
10 アドレス 命令 命令 2 コーディング SAMPLE START E8 LAD GR, ST GR,KINGAKU RET KINGAKU DS 表 4-6 補正されたされた機械語 では 仮に 補正されない とするとどうなるでしょうか アドレス 命令 命令 2 コーディング SAMPLE START E8 LAD GR, ST GR,KINGAKU RET KINGAKU DS 表 4-7 補正されないされない機械語 本来は X 0069 番地へストアーしなければならないのに X 0005 番地へストアーすることに なってしまいます X 0005 番地はこのプログラムの 外 ですので 正しく動作しないのみならず 途中で異常終了 する可能性があります ところで 2はなぜ 補正 されないのでしょうか 2も3も実効アドレスのはずです 仮に 補正した とした場合 次のようになります アドレス 命令 命令 2 コーディング SAMPLE START C LAD GR, ST GR,KINGAKU RET KINGAKU DS 表 4-8 不必要に補正補正されたされた機械語 補正された結果 X 044C (=00) となり KINGAKU には 000 ではなく 00 がストアーされてしま います このように プログラムがロードされる時点で アドレスが補正されるものとされないものがあります 補正される アドレス( 項 ) を リロケータブル ターム といい 補正されない 項を アブソリュート ターム といいます 一般に ラベルはリロケータブルタームで 数値そのものはアブソリュートタームになります - 0-
11 ここで 4.3 の宿題の答えを出しておきます 宿題は なんだかまったく分からないプログラムなのですが 機械語部分は変わりませんから立派に動作しそうですが 実は動かないのです 理由は後で でした もうお分かりでしょうか このプログラムは すべてのアドレス部がアブソリュートタームとして定義されます したがって このプログラムが 0 番地 からロードされれば正しく動作しますが 0 番地以外からロードされた場合 リロケータブルタームの再配置が行われません ( アブソリュートタームばかりですから ) ので 正しく動作しないということになります - -
main.dvi
20 II 7. 1 409, 3255 e-mail: [email protected] 2 1 1 1 4 2 203 2 1 1 1 5 503 1 3 1 2 2 Web http://www.icsd2.tj.chiba-u.jp/~namba/lecture/ 1 2 1 5 501 1,, \,", 2000 7. : 1 1 CPU CPU 1 Intel Pentium
主記憶の使われ方 システム領域 SP スタックポインタ システム用 スタック用 プログラム起動時に OS によって確 保される (SP が決められる ) プログラム用 メインルーチン プログラム領域 命令コードの列定数 変数用領域サブルーチン命令コードの列 先頭番地は リンク時に OS によって決め
Copyright 守屋悦朗 2005 コンピュータの仕組み (2) ソフトウェア 3.3 アセンブラプログラミング (CASLⅡ) 情報処理技術者試験基本情報技術者試験 (http://www.jitec.jp/index.html) では 仮想コンピュータ (16ビットのワードマシン 主記憶容量 64KW)COMETⅡを定義し COMETⅡ のためのアセンブリ言語 CASLⅡを定めている COMETⅡとCASLⅡの仕様は情報処理技術者試験センターのウェブサイト
PowerPoint プレゼンテーション
コンピュータアーキテクチャ 第 7 週命令セットアーキテクチャ ( 命令の表現 命令の実行の仕組 ) 2013 年 11 月 6 日 金岡晃 授業計画 第 1 週 (9/25) 第 2 週 (10/2) 第 3 週 (10/9) 第 4 週 (10/16) 第 5 週 (10/23) 第 6 週 (10/30) 第 7 週 (11/6) 授業概要 2 進数表現 論理回路の復習 2 進演算 ( 数の表現
CASL入門
3 章 アセンブラ言語 CASLⅡ の仕様 ここでは アセンブラ言語の説明をします ちょっと待て 第 2 章の話は アセンブラ言語の話ではなかったのか と思われた人はいませんでしょうか 一般に プログラム という場合 その構成要素は次の 3 つに分かれます 1 動作のための命令加算 減算 比較などの命令 2 領域確保や定数定義など 動作しない部分 3 プログラム名の定義などこのうち 1が第 3 章で説明した部分にあたります
Microsoft PowerPoint - ProcML-12-3.ppt
プロセッサと 年次前次前期 ( 第 回 ) 進数の加減算 (overflow( overflow) 演習 次の ビット演算の結果は overflow か? () + + () + + 答 答 中島克人 情報メディア学科 [email protected] () - = + + 答 進数の加減算 (overflow( overflow) 演習 次の ビット演算の結果は overflow
COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1
COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1 ここでは機械命令レベルプログラミングを学びます 機械命令の形式は学びましたね機械命令を並べたプログラムを作ります 2 その前に プログラミング言語について 4 プログラミング言語について 高級言語 (Java とか C とか ) と機械命令レベルの言語 ( アセンブリ言語 ) があります 5 プログラミング言語について
コンピュータ工学Ⅰ
コンピュータ工学 Ⅰ 中央処理装置 Rev. 2019.01.16 コンピュータの基本構成と CPU 内容 ➊ CPUの構成要素 ➋ 命令サイクル ➌ アセンブリ言語 ➍ アドレッシング方式 ➎ CPUの高速化 ➏ CPUの性能評価 コンピュータの構成装置 中央処理装置 (CPU) 主記憶装置から命令を読み込み 実行を行う 主記憶装置 CPU で実行するプログラム ( 命令の集合 ) やデータを記憶する
CASL入門
2 章 システム COMETⅡ の仕様 ここでは 情報処理推進機構 (IPA) が発行している情報処理技術者試験のパンフレットにある アセンブラ言語の仕様 にそって説明していきます この資料では システム COMETⅡの仕様 の中に命令の説明が書かれており アセンブラ言語 CASLⅡの仕様 には命令の説明は記載されていません 何か奇異な感じがしますが アセンブラの命令はハードウェア命令そのものであるので
アセンブラ入門(CASL II) 第3版
CASLDV i COMET II COMET II CASL II COMET II 1 1 44 (1969 ) COMETCASL 6 (1994 ) COMETCASL 13 (2001 ) COMETCASL COMET IICASL II COMET IICASL II CASL II 2001 1 3 3 L A TEX 2 CASL II COMET II 6 6 7 Windows(Windows
ex05_2012.pptx
2012 年度計算機システム演習第 5 回 2012.05.25 高水準言語 (C 言語 ) アセンブリ言語 (MIPS) 機械語 (MIPS) コンパイラ アセンブラ 今日の内容 サブルーチンの実装 Outline } ジャンプ 分岐命令 } j, jr, jal } レジスタ衝突 回避 } caller-save } callee-save 分岐命令 ( 復習 ) } j label } Jump
ソフトウェア基礎技術研修
算術論理演算ユニットの設計 ( 教科書 4.5 節 ) yi = fi (x, x2, x3,..., xm) (for i n) 基本的な組合せ論理回路 : インバータ,AND ゲート,OR ゲート, y n 組合せ論理回路 ( 復習 ) 組合せ論理回路 : 出力値が入力値のみの関数となっている論理回路. 論理関数 f: {, } m {, } n を実現.( フィードバック ループや記憶回路を含まない
Windows10の標準機能だけでデータを完全バックアップする方法 | 【ぱそちき】パソコン初心者に教えたい仕事に役立つPC知識
ぱそちき パソコン初心者に教えたい仕事に役立つ PC 知識 Windows10 の標準機能だけでデータを完全バックアッ プする方法 パソコンが急に動かなくなったり 壊れてしまうとパソコンに保存していたテキストや写真などの データも無くなってしまいます このように思いがけない事故からデータを守るには バックアップを取っておくしかありません Windows10のパソコンを使っているなら データをバックアップするのに特別なソフトは必要ありません
計算機アーキテクチャ
計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1 授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ
1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが
MPASM MPASM は Microchip Tecnology Inc. 社の開発した PIC のためのアセンブリ言語である ここでは MPASM の文法と使用法などについて記述する 1. 文法 ソースコードファイルは ASCII テキストファイルエディターを使って作成する そのように作られたソースコードは以下に示す基本的ガイドラインに従うべきである ソースファイルの各行は次の 4 つのタイプの情報を含んでよい
書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf
情報処理基礎 C 言語についてプログラミング言語は 1950 年以前の機械語 アセンブリ言語 ( アセンブラ ) の開発を始めとして 現在までに非常に多くの言語が開発 発表された 情報処理基礎で習う C 言語は 1972 年にアメリカの AT&T ベル研究所でオペレーションシステムである UNIX を作成するために開発された C 言語は現在使われている多数のプログラミング言語に大きな影響を与えている
Microsoft PowerPoint - 7.Arithmetic.ppt
第 7 章デジタル演算回路 1 デジタル信号処理音声, 音楽, 通信信号 信号 = 符号付き 2 進データ 負の数値の表現方法 2 2 進数 n ビット n-1 =Σb i 2 i 0 2 の補数 +=2 n n-1 n-1 2 n =1+Σb i 2 i +Σb i 2 i 0 0 n-1 =2 n ー =1+Σb i 2 i 0 3 2 進数の補数 2 の補数 各桁のビットを反転した後で最下位に
CASL II revision revision02 Copyright c Daikoku Manabu This tutorial is licensed under a Creative Commons Attribution
CASL II revision02 CASL II revision02 2013 1 10 2014 10 2 revision02 Copyright c 2012 2014 Daikoku Manabu This tutorial is licensed under a Creative Commons Attribution 2.1 Japan License. 3 1 CASL II 9
命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c
第 11 回機械語とアーキテクチャ コンピュータは, 記号で組み立てられ, 記号で動く機械 : ソフトウェアソフトウェア としても理解されなければならない ソフトウェアの最も下位レベルのしくみが ( 命令セット ) アーキテクチャ である 講義では命令符号 ( 機械語 ) の構成と種類についてまとめる また, 機械語を効率良く実行するために採用されている技術について紹介する 機械語とアセンブリ言語
ソフトウェア基礎技術研修
命令と命令表現 ( 教科書 3.1 節 ~3.4 節 ) プロセッサの命令と命令セット 命令 : プロセッサへの指示 ( プロセッサが実行可能な処理 ) 加算命令 減算命令 論理演算命令 分岐命令 命令セット : プロセッサが実行可能な命令の集合 ( プログラマから見えるプロセッサの論理仕様 ) プロセッサ A 加算命令分岐命令 プロセッサ B 加算命令減算命令 命令セットに含まれない命令は直接実行できない!
Microsoft PowerPoint - Sol7 [Compatibility Mode]
ミニクイズ 4 E ハザード ( つ前の命令の結果を必要とする状況 ) が発生する条件を つ挙げよ. また それぞれの時に 制御線 ForwardA, ForwardB はどのように設定すれば良いか? ( 回答 ) E/.RegWrite= かつ E/.RegisterRd = ID/.RegisterRs この時,ForwardA = と制御すれば良い. E/.RegWrite= かつ E/.RegisterRd
3 SIMPLE ver 3.2: SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE (main memo
3 SIMPLE ver 3.2: 20190404 1 3 SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE 1 16 16 (main memory) 16 64KW a (C )*(a) (register) 8 r[0], r[1],...,
ネットワーク工学演習 解答編 典型的な IP アドレス問題と解答を示す 解き方をよく覚えるように N 科 ある PC がある ネットワークの設定をみると IP アドレスが であり サブネットマスクは である 下記について解答せよ [1]
ネットワーク工学演習 解答編 典型的な IP アドレス問題と解答を示す 解き方をよく覚えるように N 科 ある PC がある ネットワークの設定をみると IP アドレスが 192.168.10.130 であり サブネットマスクは 255.255.255.224 である 下記について解答せよ [1] この PC が属するネットワークアドレスは何か? [2] CIDR 表記で描くと /X の X はいくつになるか
PowerPoint プレゼンテーション
コンピュータアーキテクチャ 第 13 週 割込みアーキテクチャ 2013 年 12 月 18 日 金岡晃 授業計画 第 1 週 (9/25) 第 2 週 (10/2) 第 3 週 (10/9) 第 4 週 (10/16) 第 5 週 (10/23) 第 6 週 (10/30) 第 7 週 (11/6) 授業概要 2 進数表現 論理回路の復習 2 進演算 ( 数の表現 ) 演算アーキテクチャ ( 演算アルゴリズムと回路
Microsoft PowerPoint - OS07.pptx
この資料は 情報工学レクチャーシリーズ松尾啓志著 ( 森北出版株式会社 ) を用いて授業を行うために 名古屋工業大学松尾啓志 津邑公暁が作成しました 主記憶管理 主記憶管理基礎 パワーポイント 27 で最終版として保存しているため 変更はできませんが 授業でお使いなる場合は松尾 ([email protected]) まで連絡いただければ 編集可能なバージョンをお渡しする事も可能です 復習 OS
Microsoft Word - CygwinでPython.docx
Cygwin でプログラミング 2018/4/9 千葉 数値計算は計算プログラムを書いて行うわけですが プログラムには様々な 言語 があるので そのうちどれかを選択する必要があります プログラム言語には 人間が書いたプログラムを一度計算機用に翻訳したのち計算を実行するものと 人間が書いたプログラムを計算機が読んでそのまま実行するものとがあります ( 若干不正確な説明ですが ) 前者を システム言語
MASM32 基本
MASM32 の基本 MASM 3 今回の課題項目 MASM(8086) の命令 転送命令 システムコール 今回の重点項目 MASM(8086) の命令 -1- 命令 各論 予備知識 実効アドレス EA(Effective Address) の計算方法 8086 で 処理速度 ( クロック数 ) は アドレッシング方法に依り異なる 各アドレッシングに依るクロック数を 下記の表に示す アドレッシングクロック数
Microsoft PowerPoint - 工学ゼミⅢLED1回_2018
工学ゼミ Ⅲ 安全 環境活動に役立つ LEDイルミネーションの製作 第 1 回 1. 概要 3~5 名の学生グループで安全 環境活動に役立つ LED イルミネーションを作製する 作品のデザイン画や部品リスト 回路図 動作フロー図等は事前に作成し 計画的に作業を行うことが求められる 2. 達成すべき目標 作品に係る資料を事前にまとめ それに基づいて製作が行える 集団の中で 自身の知識 技術を積極的に応用しながら
Microsoft Word - VBA基礎(6).docx
あるクラスの算数の平均点と理科の平均点を読み込み 総点を計算するプログラムを考えてみましょう 一クラスだけ読み込む場合は test50 のようなプログラムになります プログラムの流れとしては非常に簡単です Sub test50() a = InputBox(" バナナ組の算数の平均点を入力してください ") b = InputBox(" バナナ組の理科の平均点を入力してください ") MsgBox
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき
Microsoft PowerPoint - No6note.ppt
前回 : 管理 管理の目的 : の効率的利用 ( 固定区画方式 可変区画方式 ) しかし, いかに効率よく使ったとしても, 実行可能なプログラムサイズや同時に実行できるプロセス数は実装されているの大きさ ( 容量 ) に制限される 256kB の上で,28kB のプロセスを同時に 4 個実行させることはできないか? 2 256kB の上で,52kB のプロセスを実行させることはできないか? 方策 :
文字コード略歴 よこやままさふみ社内勉強会 2012/05/18 文字コード略歴 Powered by Rabbit 2.0.6
文字コード略歴 よこやままさふみ社内勉強会 2012/05/18 自己紹介 横山昌史 入社 4 年目 プログラマ etc... 所属プロジェクト Java UNIX 雑用 etc... 文字コードの " るつぼ " Rabbit について プレゼンテーションツール 実装 : Ruby/GTK 動作 : UNIX/Win/Mac 文章とデザインの分離 バージョン管理しやすい 文字コードとは 文字をコンピュータで扱うための符号化方式
PowerPoint Presentation
マイクロプロセッサ ( 第 1 回 ) P. Ravindra S De Silva [email protected] 1 はじめに 情報 知能工学系学生実験サイト http://www.cs.tut.ac.jp/jikken/ 実験の説明資料などはWeb 上で公開中 http://www.icd.cs.tut.ac.jp/~ravi/mp/index.html 受け取りは メールにて行う 宛先は [email protected]
スライド 1
RL78/G13 周辺機能紹介安全機能 ルネサスエレクトロニクス株式会社 ルネサス半導体トレーニングセンター 2013/08/02 Rev. 0.00 00000-A コンテンツ 安全機能の概要 フラッシュ メモリ CRC 演算機能 RAM パリティ エラー検出機能 データの保護機能 RAM ガード機能 SFR ガード機能 不正メモリ アクセス機能 周辺機能を使用した安全機能 周波数検出機能 A/D
マウス操作だけで本格プログラミングを - 世界のナベアツをコンピュータで - プログラムというと普通は英語みたいな言葉で作ることになりますが 今回はマウスの操作だけで作ってみます Baltie, SGP System 操作説明ビデオなどは 高校 情
マウス操作だけで本格プログラミングを - 世界のナベアツをコンピュータで - プログラムというと普通は英語みたいな言葉で作ることになりますが 今回はマウスの操作だけで作ってみます Baltie, SGP System http://www.sgpsys.com/en/ 操作説明ビデオなどは 高校 情報科 の教材 指導案作ってみました http://www.beyondbb.jp/ Zip の教材内に入っています
PowerPoint プレゼンテーション
講座を行う前に 自己紹介 僕と上回生について 1 年生同士で少しお話しよう! オリエンテーションの宿題 アルゴロジック http://home.jeita.or.jp/is/highschool/algo/index3.html どこまでできましたか? あまりできなかった人はこれから全部クリアしよう! 2016 年度 C 言語講座 第一回目 2016/6/11 fumi 今回の目標 プログラムを書いて実行するやり方を覚える
ディジタル回路 第1回 ガイダンス、CMOSの基本回路
1 前回教育用の RISC POCO を導入しました 今日はその Verilog 記述を紹介します まず この復習をやっておきましょう 2 最も重要な点は メモリの読み書きで レジスタ間接指定の理解です これはポインタと一緒なので 間違えないように修得してください 3 RISC なので 基本の演算はレジスタ同士でしかできません MV はレジスタ間のデータ移動なので気をつけてください 4 イミーディエイト命令は
アセンブラとコンパイラ・インタプリタ
Copyright 守屋悦朗 2005 アセンブラとコンパイラ インタプリタ ここでは 人間にとってより分かりやすい言語 ( アセンブラ語や BASIC, FORTRAN, C, Pascal などの汎用プログラミング言語 ) で書かれたプログラムを コンピュータのハードウエアが直接理解して実行できるプログラム (= 機械語 ) に翻訳するプログラムについて考える アセンブラ語のプログラムを機械語に翻訳するプログラムがアセンブラであり
PowerPoint プレゼンテーション
プログラミング応用演習 第 4 回再帰的構造体 プログラミングを 余談 : 教えることの難しさ 丁寧に説明しないと分かってもらえない 説明すると 小難しくなる学生が目指すべきところプログラム例を説明されて理解できる違うやり方でも良いので自力で解決できる おっけー 動けば良い という意識でプログラミング 正しく動くことのチェックは必要 解答例と自分のやり方との比較が勉強になる 今日のお題 再帰的構造体
また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)
コンピュータ工学講義プリント (12 月 11 日 ) 今回は ローテイト命令を用いて 前回よりも高度な LED の制御を行う 光が流れるプログラム 片道バージョン( 教科書 P.119 参照 ) 0.5 秒ごとに 教科書 P.119 の図 5.23 の様に LED の点灯パターンが変化するプログラムを作成する事を考える この様にすれば 光っている点が 徐々に右に動いているように見え 右端まで移動したら
コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n
コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n を入力してもらい その後 1 から n までの全ての整数の合計 sum を計算し 最後にその sum
<4D F736F F D2094F795AA95FB92F68EAE82CC89F082AB95FB E646F63>
力学 A 金曜 限 : 松田 微分方程式の解き方 微分方程式の解き方のところが分からなかったという声が多いので プリントにまとめます 数学的に厳密な話はしていないので 詳しくは数学の常微分方程式を扱っているテキストを参照してください また os s は既知とします. 微分方程式の分類 常微分方程式とは 独立変数 と その関数 その有限次の導関数 がみたす方程式 F,,, = のことです 次までの導関数を含む方程式を
Microsoft PowerPoint - chap10_OOP.ppt
プログラミング講義 Chapter 10: オブジェクト指向プログラミング (Object-Oriented Programming=OOP) の入り口の入り口の入り口 秋山英三 F1027 1 例 : 部屋のデータを扱う // Test.java の内容 public class Test { public static void main(string[] args) { double length1,
<4D F736F F D CA08CC082AA B835E B D C58B9194DB82B382EA82DC82B582BD2E646F63>
CREATE DATABASE 権限がデータベース 'master' で拒否されました (262) というメッセージが書かれている場合 どうしたらいいですか? 上記のエラーが発生した場合は 以下のようなケースが考えらます A.AnyONE インストール時に一緒に登録される SQL サーバー が正しくインストール出来なかった B.AnyONE をインストールする前から 既にパソコンに SQL サーバー
Microsoft Word - ミクロ経済学02-01費用関数.doc
ミクロ経済学の シナリオ 講義の 3 分の 1 の時間で理解させる技術 国際派公務員養成所 第 2 章 生産者理論 生産者の利潤最大化行動について学び 供給曲線の導出プロセスを確認します 2-1. さまざまな費用曲線 (1) 総費用 (TC) 固定費用 (FC) 可変費用 (VC) 今回は さまざまな費用曲線を学んでいきましょう 費用曲線にはまず 総費用曲線があります 総費用 TC(Total Cost)
目次 1. はじめに 1 2. マルチALUプロセッサ MAP MAP の構成 MAP 命令セットアーキテクチャ 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 次 Booth アルゴリズム 次 Bo
目次 1. はじめに 1 2. マルチALUプロセッサ MAP 2 2.1 MAP の構成 2 2.2 MAP 命令セットアーキテクチャ 3 2.3 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 7 3.1 1 次 Booth アルゴリズム 7 3.2 2 次 Booth アルゴリズム 8 3.3 3 次 Booth アルゴリズム 10 4. シミュレーションによる並列化の評価
Microsoft Word - VBA基礎(3).docx
上に中和滴定のフローチャートを示しました この中で溶液の色を判断する部分があります このような判断はプログラムではどのように行うのでしょうか 判断に使う命令は IF 文を使います IF は英語で もし何々なら という意味になります 条件判断条件判断には次の命令を使います If 条件式 1 Then ElseIf 条件式 2 Then ElseIf 条件式 3 Then 実行文群 1 実行文群 2 実行文群
【手引き】完了時の手続について
新潟県 CALS システム完了時の手続きについて NEC/TOiNX 業務特定共同企業体 目次 1.CALS システム利用から完了までの流れ 2 2. 納品データの登録 3 2.1 書類の提出 決裁 4 2.2 納品物を作る 5 3. 納品情報の入力 8 3.1 案件基本情報 9 3.2 書類納品情報 12 3.3 写真 図面等の納品情報 15 4. 電子納品媒体作成 16 4.1 一括ダウンロード
コンピュータの仕組み(1)ハードウェア
Copyright 守屋悦朗 2005 コンピュータの仕組み (1) ハードウェア 2.1 CPU の基本原理 2 つの整数の和を出力するプログラムを考えよう main() { int a, b, c; /* 変数 a,b が整数値をとる変数であることを宣言する */ a = 1; /* a に 1 を代入する */ b = 2; /* b に 2 を代入する */ c = a+b; /* a と
Microsoft PowerPoint - 09.pptx
情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源
ユーティリティ 管理番号 内容 対象バージョン 157 管理情報バッチ登録コマンド (utliupdt) のメッセージ出力に対し リダイレクトまたはパイプを使用すると メッセージが途中までしか出 力されないことがある 267 転送集計コマンド (utllogcnt) でファイル ID とホスト名の組
レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン HULFT BB クライアント for Windows Type BB1 6.3.0 HULFT BB クライアント for Windows Type BB2 6.3.0 < 対応 OS> Windows2000, WindowsXP, WindowsServer2003 < 追加機能一覧 > HULFT BB クライアント 管理番号 内容
sinfI2005_VBA.doc
sinfi2005_vba.doc MS-ExcelVBA 基礎 (Visual Basic for Application). 主な仕様一覧 () データ型 主なもの 型 型名 型宣言文字 長さ 内容 整数型 Integer % 2 バイト -32,768 32,767 長整数型 Long & 4 バイト -2,47,483,648 2,47,483,647 単精度浮動小数点数 Single 型!
Microsoft PowerPoint - H2.ppt [互換モード]
力装置はじめに マイクロプロセッサ ( 第 回 ) 担当 : 佐竹純二 情報 知能工学系学生実験サイト http://www.cs.tut.ac.jp/jikken/ 実験の説明資料などは Web 上で公開中 http://www.aisl.cs.tut.ac.jp/~satake/class/ 実験レポートの受け取りはMoodle 上で行う https://moodle.imc.tut.ac.jp/course/view.php?id=285
4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for
4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for 文 ) */ int i, no; for (i = 0; i
クラス図とシーケンス図の整合性確保 マニュアル
Consistency between Class and Sequence by SparxSystems Japan Enterprise Architect 日本語版 クラス図とシーケンス図の整合性確保マニュアル (2011/12/6 最終更新 ) 1 1. はじめに UML を利用したモデリングにおいて クラス図は最も利用される図の 1 つです クラス図は対象のシステムなどの構造をモデリングするために利用されます
文法と言語 ー文脈自由文法とLR構文解析2ー
文法と言語ー文脈自由文法とLR 構文解析 2 ー 和田俊和資料保存場所 http://vrl.sys.wakayama-u.ac.jp/~twada/syspro/ 前回までの復習 最右導出と上昇型構文解析 最右導出を前提とした場合, 上昇型の構文解析がしばしば用いられる. 上昇型構文解析では生成規則の右辺にマッチする部分を見つけ, それを左辺の非終端記号に置き換える 還元 (reduction)
UNIX 初級講習会 (第一日目)
情報処理概論 工学部物質科学工学科応用化学コース機能物質化学クラス 第 3 回 2005 年 4 月 28 日 計算機に関する基礎知識 Fortranプログラムの基本構造 文字や数値を画面に表示する コンパイル時のエラーへの対処 ハードウェアとソフトウェア ハードウェア 計算, 記憶等を行う機械 ソフトウェア ハードウェアに対する命令 データ ソフトウェア ( 命令 ) がないとハードウェアは動かない
2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の )
割り込み / ポーリング /DMA/DTC(RL78 での周辺機能制御 ) 周辺機能を介してデータ転送を制御する方法には, 大きく分けて 3 つの方法があります その中で DMA や DTC は CPU を介することなく, 高速にデータを転送することができますが, 使用できるチャネル数が限られます そのため, たとえば,CSI のスレーブでの高速通信のように限られた時間内に転送が必要な場合に使用できます
スライド 1
2. 転送命令を学ぼう 2004 年 8 月に本講義ノートを Web にアップして以来, とても多くの方の訪問を受けてきました. 内容が一部古くなっていたので,2012 年 5 月時点の情報に書き改めました. 主な変更点は以下の通りです. 第 0 章に本講座の準備のための章を設け, 以下の更新をしました. 1. プログラム開発環境 (MPLAB IDE) を v8.84 に更新しました. 2012
JavaプログラミングⅠ
Java プログラミング Ⅰ 2 回目 ようこそ Java へ 今日の講義で学ぶ内容 画面へのメッセージの表示 文字や文字列 数値を表現するリテラル 制御コードを表すエスケープシーケンス 画面出力の基本形 ソースファイル名 : クラス名.java class クラス名 System.out.println(" ここに出力したい文字列 1 行目 "); System.out.println(" ここに出力したい文字列
C#の基本
C# の基本 ~ 開発環境の使い方 ~ C# とは プログラミング言語のひとつであり C C++ Java 等に並ぶ代表的な言語の一つである 容易に GUI( グラフィックやボタンとの連携ができる ) プログラミングが可能である メモリ管理等の煩雑な操作が必要なく 比較的初心者向きの言語である C# の利点 C C++ に比べて メモリ管理が必要ない GUIが作りやすい Javaに比べて コードの制限が少ない
