2016-07-01から1ヶ月間の記事一覧

仮想ハードウェア理論

入力Aの状態が出力Bの逆の状態となる回路を作るとする。 論理回路で作る場合、 となる。極めてシンプルで、Aの状態に瞬時に反応する回路である。 コンピュータで作る場合、 となり、プログラムのメイン部は、 MAIN btfsc PORTB,0 bsf PORTB,7 btfss PORTB,0 …

コマンドプロンプトでタスク管理を行おう

タスクとは、現在展開されているアプリケーションのことを言う。 tasklistというコマンドで、現在展開されているアプリケーションの一覧を見ることが出来る。 taskkill /IM (アプリケーション名)というコマンドで、現在展開中のアプリケーションを強制終了さ…

仮名の文字列の長さは?

このC言語ソースコードをコンパイルして実行してみよう。 #include <stdio.h> #include <string.h> int main(void) { printf("こんにちは:%d\n",strlen("こんにちは")); return 0; } そうすると画面に、 と出力される。 5文字なのになぜか10文字と表示されるのだ。 全角カナだと</string.h></stdio.h>…

コマンドプロンプトにおけるコマンドの正体

C言語のソースファイルをコンパイルすれば、拡張子が.exeのファイルしか作れないと思った? 実はそうではない。拡張子が無いファイルも作れる。 Hello.cというファイルをコンパイルする場合、 gcc Hello.c -o Hello.exe と入力しても、 gcc Hello.c -o Hello…

オリジナルのコマンドを作ろう

以下のC言語ソースコードをコンパイルして、echosというコマンドを作る。 #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { int i,j; int inte=0; int ju_no_ruijo=1; for(i=0;i</string.h></stdio.h>

C言語におけるコマンドライン引数の目的

新たなコマンドを作ることではないだろうか。 例えば、以下のC言語ソースコードをコンパイルして、sqrtというアプリケーションファイルを作ってみる。 #include <stdio.h> #include <math.h> int main(int argc, char *argv[]) { printf("%f",sqrt(argv[1][0]-0x30)); return </math.h></stdio.h>…

ホームページとブログ その2

ホームページだと、デザインやフォームを1から作らなければいけない。 そのホームページは、親のホームページを持つものとそうでないものとがある。 しかしブログだとあらかじめ用意されたものを使用して作ることが出来る。 一昔前は、個人はホームページを…

自作仮想OSを作ってみよう その2

以下のC言語ソースコードをコンパイルしてみよう。 #include <stdio.h> #include <string.h> int my_main(int my_argc, char *my_argv); int main(void) { int shutdown_flg; int i; char command[30]; char str[10]; shutdown_flg = 0; printf("Root 2にようこそ!\n"); printf</string.h></stdio.h>…

C言語における、符号つき変数と符号なし変数との違い

出力の仕方が異なる。それだけだ。 例えば、1バイトの変数であるchar型変数、同じく1バイトの変数であるunsigned char型変数。 それらはサイズが同じため、取り扱える値の範囲が同じで、0から255までの数値が扱える。 char型変数の場合、負の数として出力さ…

性能の異なるハードウェア間のインターフェース

性能の異なるハードウェア間のインターフェース、それがオペレーティング・システムである。 オペレーティング・システムは、ハードウェアを仮想的に作り出すソフトウェアである。 その仮想のハードウェアは、性能の異なるハードウェアでも通用するものであ…

Linuxコマンドリファレンス

・コンソール関連 echoコマンド 書式:echo (画面に出力する文字列) 効果:画面に文字を出力する exitコマンド 書式:exit 効果:CUIを閉じる ・フォルダ関連 pwdコマンド 書式:pwd 効果:カレントディレクトリを表示する mkdirコマンド 書式:mkdir (新た…

C言語における、変数とレジスタ

C言語における変数の値は、レジスタというメモリーに格納される。 レジスタは、1つにつき1バイト(8ビット)。 個々のレジスタにはアドレスというものが割り振られる。 複数バイトの変数の型の変数は、複数のレジスタを使うため、アドレスとして画面に表すと、…

C言語における型が違う変数のアドレス

このソースファイルをコンパイルして、アプリケーションとして実行してみよう。 #include <stdio.h> int main(void) { char a,b; short int c; int d; printf("%d\n",&a); printf("%d\n",&b); printf("%d\n",&c); printf("%d\n",&d); return 0; } char型変数(1バイト</stdio.h>…

自作仮想OSを作ってみよう

仮想OSとは、OS上で動作するOSのことである。 以下のソースコードは、Root 2という仮想OSのC言語ソースコードである。 未完成の仮想OSのコードだが。 #include <stdio.h> #include <string.h> int my_main(int my_argc, char *my_argv); int main(void) { int shutdown_flg; cha</string.h></stdio.h>…

C言語におけるsizeofについて

sizeofは、int型の配列には使ってはいけないようだ。 #include <stdio.h> int main(void) { int arr[30] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}; int i; for(i=0;i<sizeof(arr);i++) printf("%d ",arr[i]); return 0; } だとコマンドプロンプトの画面に、 と出力される。 #include <stdio.h> int main(void) { int arr…</sizeof(arr);i++)></stdio.h>

ヘッダーファイル無しでC言語ソースコードをコンパイル出来るか

出来る。 例えば、このソースコードはコンパイル出来る。 void main(void){}

インターネットは巨大なメモリー

インターネットとは、いくつものサーバーが繋がれて構成される、巨大なメモリーである。 我々はそのメモリーに記録されているデータを、パソコンなどのIT機器で見ているのである。 今や世界中に展開されているインターネット。地球はもはやコンピュータのメ…

GUIについて

GUIとは、グラフィックによって入出力が行えるシステムである。 現代のユーザーインターフェースはそれが主流である。 WindowsのGUIについて。 WindowsというOSの画面、言い換えればデスクトップ画面は、物理的なディスプレイに直接表される。 それに対して…

アプリケーションとデバイスドライバとの違い

アプリケーション:ユーザーが実行するもの デバイスドライバ(拡張子が.koのファイル):コンピュータが実行するもの と考えれる。 例えば、OS起動時の画面や、CUIにおいて文字を入力するシステムは、デバイスドライバによるものではないだろうか。

C言語で音を鳴らそう

C言語でそんなことができるのか!と思うだろう。 だが、C言語で音を鳴らすのはそう難しくなく、ヘッダーファイルはstdio.hのみでいいのである。 putchar(7); という文を用いれば、音を鳴らすことが出来る。 その文を用いたサンプルプログラムのC言語コードは…

仮想のものと、OS

仮想ドライビング、仮想ペット、コンピュータを使って様々なものが仮想的に再現されている。 では、仮想のコンピュータとはどんなものとイメージできる? 仮想マシンが使えるアプリケーションで使う、仮想マシンと大概の人はイメージするだろう。 しかしオペ…

シェルファイル(.sh)

シェルファイルとは、実行すると複数のコマンドを自動で実行することができるファイルである。 例えば、以下の中身のシェルファイルを実行すると? #!/bin/sh str=hello echo $str strという変数にhelloという文字列が格納され、その後echoコマンドによってs…

母音字と子音字の配置法を考慮し、適当な文字列を表示するプログラム 後

「母音字と子音字の配置法を考慮し、適当な文字列を表示するプログラム 前」の続き char vowel_select(void) { switch(rand() % 5) { case 0: return 'a'; break; case 1: return 'e'; break; case 2: return 'i'; break; case 3: return 'o'; break; case 4…

母音字と子音字の配置法を考慮し、適当な文字列を表示するプログラム 前

本プログラムは、1つの音節の綴りを表示するプログラムである。 文字1字につき1つの音素を表すものとし、母音字1つで1つの母音が、子音字1つで1つの子音が表されるものとする。 音節は、「母音1つ」、「1つまたは複数の子音 - 1つの母音 - 1つまたは複数の子…

ファイルに数値を記録するプログラムのC言語ソース

#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { unsigned short int OK,NG; char command[2],answer[2]; FILE *f[2]; char str[6]; srand*1; f[0] = fopen("OK.txt","r"); fgets(str,6,f[0]); OK = 0; OK += (str[0] - 0x30) * 10000; OK += (str[1] - 0x3</time.h></stdlib.h></stdio.h>…

CUIでペイントのプログラム

#include <stdio.h> int main(void) { int x,y; int tx,ty; int xA,yA,xB,yB; int b; int command; unsigned char image[32][32]; while(1) { printf("何をしますか?\n"); printf("1:点を打つ 2:線を引く 3:絵のデータを消す 4:絵を表示する 5:プログラムを終える\n")</stdio.h>…

アプリケーションはあんなものとイメージできる

オペレーティング・システムは、仮想のコンピュータを作っていくソフトウェアである。 オペレーティング・システム上で動くプログラムであるアプリケーションは、仮想のマイコンとイメージできる。 デスクトップ画面上に10個のアプリケーションのアイコンが…

適当な文字列を生成し画面にその文字列を出力するプログラム

そのプログラムのC言語ソースはこれ。 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> int main(void) { int i; unsigned char word[10]; srand*1; for(i=0;i<10;i++) word[i] = '\0'; word[0] = 0x41 + ( rand() % 26 ); for(i=1;i<10;i++) { word[i] = 0x61 + (</time.h></stdlib.h></string.h></stdio.h>…

ファイルを、セーブデータを記録するメモリーとして扱うプログラムのC言語コード

#include <stdio.h> #include <string.h> #include <math.h> int i; int command; int status; FILE *fp; char data_name[10]; void show_select(void); void show1(void); void show2(void); void show3(void); void show4(void); void show5(void); int main(void) { command = 0; sta</math.h></string.h></stdio.h>…

コンピューターのプログラムと、アプリケーションのプログラム

コマンドライン引数とは、main関数の引数である。 その引数が存在しうるプログラムと、存在し得ないプログラムとがある。 物理的な媒体に直接組み込まれるのが、コンピューターのプログラム。 マイコンのプログラムはそれに該当する。 コンピューターのプロ…