COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

Similar documents
主記憶の使われ方 システム領域 SP スタックポインタ システム用 スタック用 プログラム起動時に OS によって確 保される (SP が決められる ) プログラム用 メインルーチン プログラム領域 命令コードの列定数 変数用領域サブルーチン命令コードの列 先頭番地は リンク時に OS によって決め

Microsoft PowerPoint - ProcML-12-3.ppt

コンピュータ工学Ⅰ

CASL入門

計算機アーキテクチャ

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

CASL入門

C#の基本

コンピュータの仕組み(1)ハードウェア

プログラミング基礎

PowerPoint プレゼンテーション

アセンブラ入門(CASL II) 第3版

90 0 4

Microsoft PowerPoint - OS07.pptx

PowerPoint プレゼンテーション



Microsoft Word - CygwinでPython.docx

1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが

ex05_2012.pptx

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

CASL入門

JavaプログラミングⅠ

u u u 1 1

cp-7. 配列

PowerPoint プレゼンテーション

Arduino をドリトルから 制御する教材の試行 鈴木裕貴 1


喀痰吸引

平成18年度「商品先物取引に関する実態調査」報告書

Microsoft Word - VBA基礎(6).docx

ソフトウェア基礎技術研修

第1回 プログラミング演習3 センサーアプリケーション

Microsoft PowerPoint - å®�æ−•試é¨fi3ㆮ対ç�Œ.pptx

main.dvi

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

JavaScriptで プログラミング



DX-PC55_−ç(0)-A


コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

Windows10の標準機能だけでデータを完全バックアップする方法 | 【ぱそちき】パソコン初心者に教えたい仕事に役立つPC知識

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

MIPSのマイクロアーキテクチャ

マウス操作だけで本格プログラミングを - 世界のナベアツをコンピュータで - プログラムというと普通は英語みたいな言葉で作ることになりますが 今回はマウスの操作だけで作ってみます Baltie, SGP System 操作説明ビデオなどは 高校 情

講習No.1

Fortran 勉強会 第 5 回 辻野智紀

PowerPoint プレゼンテーション

ガイダンス

「東京こどもネット・ケータイヘルプデスク(こたエール)」平成22年度相談実績の概要

key

5-1_a-kanaoka_JPNICSecSemi_Phish_Tech_ _3.PDF



アセンブラとコンパイラ・インタプリタ

02: 変数と標準入出力

Microsoft PowerPoint ppt

JavaプログラミングⅠ

テスト 1/5 ページ プレポスト OSIV/MSP JCL とユーティリティ 受講日程受講番号氏名 1 ジョブ制御文で指定する情報として間違っているものを選びなさい 1. 実行プログラム名 2. 入出力データセット名 3. コンピュータの機種名 4. 実行プログラムの処理順序 解答 2 ジョブ制御

Transcription:

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

ここでは機械命令レベルプログラミングを学びます 機械命令の形式は学びましたね機械命令を並べたプログラムを作ります 2 その前に

プログラミング言語について 4 プログラミング言語について 高級言語 (Java とか C とか ) と機械命令レベルの言語 ( アセンブリ言語 ) があります 5

プログラミング言語について 高級言語 (Java とか C とか ) と機械命令レベルの言語 ( アセンブリ言語 ) があります 高級言語 コンパイラ 機械命令 同レベルアセンブリ言語 6 プログラミング言語について 高級言語 (Java とか C とか ) と機械命令レベルの言語 ( アセンブリ言語 ) があります 高級言語 人間に近い 書きやすい アセンブリ言語 機械に近い プログラムの効率が良い と言われる 7

ここで挑戦するアセンブリ言語は 効率よりは 機械の動作を理解することが目的 あまり細かいことは気にしない 8 ここで挑戦するアセンブリ言語は 効率よりは 機械の動作を理解することが目的 あまり細かいことは気にしない でも 一応はアセンブリ言語の形になったプログラムを書きましょう 9

もう一つ お断り 10 ここで挑戦するアセンブリ言語は 機械が実在しない ( 仮想的 ) なものを使います 情報処理技術者試験で使われる仮想 CPU COMET-II のためのアセンブリ言語 CASL-II を使う http://www.jitec.jp/1_1download/shiken_yougo_ver2_0.pdf 11

ここで挑戦するアセンブリ言語は 機械が実在しない ( 仮想的 ) なものを使います 情報処理技術者試験で使われる仮想 CPU COMET-II のためのアセンブリ言語 CASL-II を使う たとえば Intel の PC 用 CPU (Core-/5/7i など ) を使ってもよいのだが 命令が複雑で 最初の学習には向かないだろう 12 ようやく本論アセンブリ言語 CASL-II 1

まず書き方の規則 14 まず書き方の規則 1 に 1 命令 [ ラベル :] OP コード, オペランド ( 複数 ) オペランドは命令によっていろいろ 15

まず書き方の規則 1 に 1 命令 [ ラベル ]: OP コード, オペランド ( 複数 ) オペランドは命令によっていろいろ LABEL1: ADDA GR, 257 16 まず書き方の規則 1 に 1 命令 [ ラベル ]: OP コード, オペランド ( 複数 ) オペランドは命令によっていろいろ LABEL1: ADDA GR, 257 ラベル OP コードオペランド 17

まず書き方の規則 1 に 1 命令 [ ラベル ]: OP コード, オペランド ( 複数 ) オペランドは命令によっていろいろ LABEL1: ADDA GR, 257 ラベル OP コードオペランド 18 命令 ( 何をするか ) を指定する ADDA= 足し算をする まず書き方の規則 1 に 1 命令 [ ラベル ]: OP コード, オペランド ( 複数 ) オペランドは命令によっていろいろ LABEL1: ADDA GR, 257 ラベル OP コードオペランド 19 操作の対象を指定する GR に 257 番地の内容を足す

まず書き方の規則 1 に 1 命令 [ ラベル ]: OP コード, オペランド ( 複数 ) オペランドは命令によっていろいろ LABEL1: ADDA GR, 257 ラベル OP コードオペランド 20 まず書き方の規則 1 に 1 命令 [ ラベル ]: OP コード, オペランド ( 複数 ) オペランドは命令によっていろいろ LABEL1: ADDA GR, 257 ラベル OP コードオペランド この命令の置いてある場所を す LABEL1 で される場所に置いてある 21

命令が並ぶと LD GR, 201 ADDA GR, 202 ST GR, 20 メモリ 201 番地の内容を汎用レジスタ へロード ( コピー ) メモリ 202 番地の内容と汎用レジスタ を足してレジスタ へ格納 汎用レジスタ の内容をメモリ 20 番地へストア ( コピー ) 22 命令が並ぶと 1 LD GR, 201 メモリ 201 番地の内容を汎用レジスタ へロード ( コピー ) 2 ADDA GR, 202 ST GR, 20 2 CPU GR 5 + 1 2 201 202 20 メモリ 202 番地の内容と汎用レジスタ を足してレジスタ へ格納 汎用レジスタ の内容をメモリ 20 番地へストア ( コピー ) メモリ 5 8

命令が並ぶと 1 LD GR, 201 メモリ 201 番地の内容を汎用レジスタ へロード ( コピー ) 2 ADDA GR, 202 ST GR, 20 24 CPU GR 8 5X + 1 2 201 202 20 メモリ 202 番地の内容と汎用レジスタ を足してレジスタ へ格納 汎用レジスタ の内容をメモリ 20 番地へストア ( コピー ) メモリ 5 8 命令が並ぶと 1 LD GR, 201 メモリ 201 番地の内容を汎用レジスタ へロード ( コピー ) 2 ADDA GR, 202 ST GR, 20 25 CPU GR 8 5X + 1 2 201 202 20 メモリ 202 番地の内容と汎用レジスタ を足してレジスタ へ格納 汎用レジスタ の内容をメモリ 20 番地へストア ( コピー ) メモリ 5 8

命令が並ぶと 1 LD GR, 201 メモリ 201 番地の内容を汎用レジスタ へロード ( コピー ) 2 ADDA GR, 202 ST GR, 20 26 CPU GR 8 5X + 1 2 201 202 20 メモリ 202 番地の内容と汎用レジスタ を足してレジスタ へ格納 汎用レジスタ の内容をメモリ 20 番地へストア ( コピー ) メモリ 5 8 このように命令を 1 ずつ順番に実 する ここまでまとめると 1 に1 命令 [ ラベル :] OPコード, オペランドの形 OPコード= 何をする命令か ( 命令種類 ) オペランド= 命令の操作対象 上から順に1 ずつ処理が進む ( 実 ) 27

もう少し先へ こう オペランドの書き方 28 オペランド LD GR,201 メモリ上の 201 番地の内容 29

オペランド LD GR,201 メモリ上の 201 番地の内容 プログラマのイメージは x=x+y ( 名前の付いた ) 変数 0 オペランド LD GR,201 メモリ上の 201 番地の内容 プログラマのイメージは x=x+y 番地でなく名前で呼びたい メモリ上の変数 y ( 名前の付いた ) 変数 1

オペランド LD GR,201 メモリ上の 201 番地の内容 プログラマのイメージは x=x+y 番地でなく名前で呼びたい メモリ上の変数 y ( 名前の付いた ) 変数 2 LD GR,y と書く 但し y は予めメモリ上に取った変数の名前 オペランド LD GR,201 メモリ上の 201 番地の内容 プログラマのイメージは x=x+y 番地でなく名前で呼びたい メモリ上の変数 y LD GR,y ( 名前の付いた ) 変数 但しこの授業では厳密にはしない 厳密には他の本を てください と書く 但し y は予めメモリ上に取った変数の名前

もう少し先へ こう オペランドの書き方 4 オペランド LD GR,201 汎用レジスタ 5

オペランド LD GR,201 汎用レジスタ COMET IIでは 汎用レジスタは GR0, GR1,, GR7 の8つ 6 7 オペランド LD GR,201 汎用レジスタ COMET IIでは 汎用レジスタは GR0, GR1,, GR7 の8つ どれをどう使ってもよい ( プログラマの勝手 ) が GR0 だけは指標レジスタとして使えない これも この授業では厳密には制限しない

脱線かな? いろいろな命令 COMET II の命令一覧 8 COMET II の命令の資料 教科書 28 ページ資料 : 情報処理技術者試験 試験で使用する情報技術に関する用語 プログラム言語など ver 2.2 の別紙 1 の 9 ページ https://www.jitec.ipa.go.jp/1_1download/shiken_yougo_ver2_2.pdf 命令の種類と動作は 4 ページの表 (5 ページは使わない ) を参照すること 9

COMET II の命令の資料 40 COMET II の命令の資料 41

COMET II の命令の資料 42 このぐらいにして 具体的なプログラミングに移ろう 4