久しぶりの投稿になるが面白い動画を発見したんで張ることにする



↑俺にもわからない

アルゴ


ループ端記号

反復構造をわかりやすくするため使うことができる

ループ始端記号

繰り返しの始まりを示す

ループ終端記号

ループ始端と対応する終端に同じ名前を付けて繰り返しを表す


終了条件


ループ始端記号ないにある場合(前判定型)は条件の評価が繰り返しの最初に実施される

条件が成立するとループ外に制御を移す


ループ終端記号ないにあるばあい(後判定型)は条件の評価が繰り返しの最後で行われる

条件が成立するとループ外にでる



今日は実習でした


#include<stdio.h>


void main()

{

int Age,Sex,X8,X7,X1; /*変数の宣言Ageは年齢/Sexは性別/Xは年齢の7倍をする際しようする*/

char Name[20] /*char型の文字列を保存する領域Nameを宣言.名前を格納する*/


printf("名前は?");/*名前をNameに格納*//*scanf("%s",Name);でも同じく格納*/

gets(Name);                  /*できるこの際&は使用しない*/

printf("年齢は?");

scanf("%d",&Age); /*年齢をAgeに格納。&を忘れない!!*/

printf("性別は?(男:1,女:2)");

scanf("%d",&Sex); /*性別1or2をAgeに格納*/ /*ここまでが変数の入力*/

printf("私の名前は%sです\n",Name);

printf("年齢は%d歳です\n",Age); /*名前年齢の表示*/

X8=Age<<3; /*年齢を左に3シフトして8倍にしたものをX8に格納*/

X1=~Age+1; /*年齢のビットをすべて反転させたものに1を足してX1に格納*/

X7=X8+X1; /*上で出した8倍に元の数の2の補数を足してX7に7倍として格納*/


printf("年齢を7倍すると%dです\n",X7);

if(Sex==1) /*イフ文命令を分岐させるイコールを使う場合は==にする!!*/

printf("性別は男です\n"); /*条件を満たす場合の処理*/

else

printf("性別は女です\n"); /*条件を満たさない場合の処理*/

}

こんなのつくったよ


ま、思い出しながら打ったんで打ちミスあるかも



ま、今日はそんなとこか


再配置可能(リロケータブル):プログラムが主記憶装置のどこに配置されても実行可能な性質


1基底アドレス(標準アドレス、ベースアドレス)

主記憶装置上に格納されているプログラムの先頭アドレスのこと


2基底レジスタ(ベースレジスタ)

基底アドレスを保持するレジスタ


変位(ディスプレースメント)

プログラム内の命令や領域のアドレスがプログラムの先頭を0としたときいくつになるか示す値


汎用レジスタ

演算装置内にあるレジスタの一種

複数個あり主記憶装置から取り込まれた演算対象のデータや演算の途中結果、最終結果などを格納する


実行アドレス(有効アドレス、実行番地)

命令処理の対象となるデータなどが格納されている主記憶装置のアドレス


アドレス指定方法


直接アドレス指定方式(絶対アドレス方式)

命令の番地部に記された内容が、実行アドレスになる

LD GR,100

これで100番地を入力する


関節アドレス指定方式

命令の番地部に記された内容で示される主記憶装置の内容がじっこうあどれすになる


インデックス修飾指定方式(指標アドレス指定方式)

命令の番地部の値にインデックスレジスタ(指標レジスタ)の内容を加算した値が実効アドレスになる


ベースレジスタ指定方式(基底レジスタ指定方式、基底アドレス指定方式)

命令の番地部の値にベースレジスタの内容を加算した値が実効アドレスになる


相対レジスタ指定方式

命令の番地部の値に命令アドレスレジスタ(プログラムカウンタ)の内容を加算した値が実効アドレスになる


命令アドレスレジスタ(プログラムカウンタ):制御装置内のレジスタ。次に実行される命令の主記憶装置のアドレスが格納されている


即値アドレス指定方式

命令の番地部の内容をそのまま命令の処理対象にする。主記憶装置を参照しない


レジスタアドレス指定方式

番地部に汎用レジスタの番号が指定されその汎用レジスタに処理対象の実行アドレスが入っている


命令後(単に命令ともいう


      操作部  レジスタ番号指定部  アドレス変位部

命令語  LD    GR1,          100

              番地部


操作部(命令部・オペレーション部)

番地部(アドレス部・オペランド部)



プロセッサ内のレジスタと機器


1命令アドレスレジスタ(プログラムカウンタ)

制御装置内のレジスタ。次に実行する命令の主記憶装置上のアドレスが格納されている


命令レジスタ

制御装置内のレジスタ。主記憶装置から取り出された命令が格納される


命令レコーダ

制御装置内の機器。命令レジスタに格納された命令を解読し必要な危機に制御信号を送って動作指示をだす


汎用レジスタ

制御装置内のレジスタで演算の途中結果を格納したりアドレス指定方式に用いる


アキュームレータ

演算装置内のレジスタで演算の途中結果などが格納される


フラグレジスタ

演算装置内のレジスタ、演算結果の負、0、正の情報が格納される


主記憶装置へのアクセスを伴う演算命令の実行順序


1命令呼び出し(命令フィッチ)


2命令解読

命令レジスタに格納されている命令の命令部が命令デコーダに送られ解読される

3実効アドレスの計算

実効アドレスを生成する

4オペランド呼び出し


5演算



MIPS(ミップス)

CPUが1秒間に何百万音憂う実行できるかを表す単位

10MIPS=1千万命令/秒


平均命令実行時間

CPUが1命令を実行する平均時間