アセンブリ言語(4)

 前回の応用でちょっと数値計算っぽいことを。

今回は01-FFまでを出力する。



bits 16
org 0x100

mov dx,file
mov cx,0
mov ah,0x3c
int 0x21;ファイルを開く
mov [fh],ax;ファイルハンドラをとっとく

mov bx,[fh]
mov dx,buf

doit:
inc byte [buf];インクリメント
mov cx,1;書き込みサイズ
mov ah,0x40
int 0x21;書き込み
cmp byte [buf],0xff;比較
mov cx,10;終了しないように
loopne doit

;ファイル終了処理
mov ah,0x3e
int 0x21
mov ah,0x4c
mov al,0
int 0x21

file db "hello.txt",0
fh dw 0
buf db 0
ジャジャガッチ | アセンブリ言語 | 21:36 | comments(0) | trackbacks(0) |

アセンブリ言語(3)

 アセンブリ言語カテゴリを作った。

書き忘れていたけど、参考書は独習アセンブラで、開発環境は

MS-DOS上でNASMを使っている。

数値計算結果を確認するのにasciiコードを使ってごにょごにょするのは大変なので

バイナリ形式のファイル出力するという方針にしたのだった。

簡単な例として16進数のFFをファイル出力してみた。



できた。結果はバイナリエディタで確認している。

ソース=>

bits 16
org 0x100

mov dx,file
mov cx,0
mov ah,0x3c
int 0x21;ファイルを開く
mov [fh],ax;ファイルハンドラをとっとく

mov bx,[fh]
mov dx,buf
mov cx,1
mov ah,0x40
int 0x21

;ファイル終了処理
mov ah,0x3e
int 0x21
mov ah,0x4c
mov al,0
int 0x21

file db "hello.txt",0
fh dw 0
buf db 0xff


ジャジャガッチ | アセンブリ言語 | 21:03 | comments(0) | trackbacks(0) |

アセンブリ言語(2)

 アセンブリ言語で数値計算するにしても画面に結果を表示するのが大変そう。

バイナリ形式でファイル出力してC言語使って変換するなり、

Gnuplotでバイナリのままプロットするなりするのがお手軽かな。
ジャジャガッチ | コンピュータ | 23:51 | comments(0) | trackbacks(0) |

アセンブリ言語

 基本情報の勉強は飽きちゃってアセンブリ言語の勉強を始めた。

アセンブリ言語は機械語と1対1対応している言語。

オブジェクト指向も何となくわかったし、次はアセンブリ言語かな、と。

とりあえずの目標は簡単な数値計算プログラムの作成。

オブジェクト指向も知識の定着のために何か作ってみないといけないけど。

仕事関係のプログラムはC#で作ってみたけどあんまり美しく出来なかった。

Kinectの参考書が増えてきたので、Kinect関係のプログラムをC++で作りたいと思っている。


あと、最近ニュートリノが光の速度を超えているかもしれないというニュースが話題になっているので、

タキオン(超光速粒子)とタイムマシンについても考察したい。

忙しいなあ。
ジャジャガッチ | コンピュータ | 23:13 | comments(0) | trackbacks(0) |

複素数のバブルソート

 基本交換法の別名はバブルソートらしい。

バブルソートなら聞いたことある。

今回は基本情報とはあんまり関係ない話。

オブジェクト指向のメリットのひとつ、型の隠蔽について。

今ここにIntegerというクラスがあったとする。

Integer配列を引数とするSort(Integer *i)という関数があったとしよう。

この間数はInteger配列をバブルソートする関数とする。

バブルソートは絶対値を比較して行うとする。

ここで、複素数のバブルソートを行いたくなったとする。

つまり、複素数を絶対値順に並び替えたい。

Complexというクラスを作ってSort(Complex *c)という関数を作ればよい。

しかし、次のようなことをすればもっとエレガントにできる。

Integer及びComplexはValueという基本クラスの派生クラスとする。

Valueはメンバ変数として絶対値という概念を持っている。

バブルソート関数はSort(Value *v)というふうにする。

このように作っておけばいちいち型に合わせてSort関数を作らなくても

型キャストを行うことで対応できる。

設計の際に、将来変わりそうなところを予測して基本クラスでくくっておくと、

あとで対応が楽なのだ。

Sort関数は派生クラスを意識する必要はなく、派生クラスの隠蔽になっている。

実行結果の一部は下。ソースは続きから。


続きを読む >>
ジャジャガッチ | 基本情報技術者試験 | 22:36 | comments(0) | trackbacks(0) |

基本交換法

 栢木先生の本で勉強している。

猫の絵が可愛らしい。

今日から読み始めP.95まで読んだ。

基本交換法というのが出てきた。数字の列を小さい順(大きい順)に並べるためのアルゴリズムだ。

Cで作ってみた。

勉強になる。

ソースは続きから。
続きを読む >>
ジャジャガッチ | 基本情報技術者試験 | 21:50 | comments(0) | trackbacks(0) |

オブジェクト指向について

 プログラムについて、僕はC言語から入門した。

厳密に言えば一番最初は授業のFortranが最初だったがさっぱりわからなかった。

Cの次はJavaをやったが、ピンとこなかった。

で、C言語に軸足をおいて、アセンブリ言語、Visual Basic、C++、C++/CLI、C#などをかじった。

本当にかじる程度に。

オブジェクト指向も勉強した。でもよくわからなかった。

本を読んでもよくわからないたとえ話で煙に巻かれるし、

大規模、多人数向けの開発でないとメリットはないと言われてたりするし、混乱した。

最近「独習C++」、「独習C#」を一通り読み通して、オブジェクト指向熱が湧き上がってきた。

何とか理解したい。

そこで、C言語の構造体とクラスの違いを自分なりに考えるところから始めた。

動作の同じプログラムをC++とCで書いてみて、違いを見たりもした。

で、少しずつわかってきた。

とどめに「デザインパターンとともに学ぶオブジェクト指向のこころ」、

「Java言語で学ぶデザインパターン入門」という本を読んで自分なりの理解を得た。

この2冊はおすすめです。

小規模個人開発者には関係ない話なんてうそっぱちじゃないか。

世の中に胡散臭い情報があふれすぎているせいで理解が遅れた感がある。

少なくとも僕は小さなプログラムでもオブジェクト指向を取り入れるメリットを感じた。
ジャジャガッチ | コンピュータ | 21:33 | comments(0) | trackbacks(0) |

PC購入

 新しいPCを購入した。

このところずっとLinuxがいじりたくてしかたなく、我慢できずに買ってしまった。

今使っているWindows PCに入れてもよかったのだが、

HDDの容量が少ない、増設するにはケースを換えなければいけない、

ということもあり、専用PCを買うことにした。

ドスパラで4万円くらい。

CPUはPhenom ii x6 1090T。メモリは4GB。

ディスプレイもOSもなしなので安かった。

Ubuntu 11.04を入れた。動作はかなり快適で、

Linuxで遊ぶためのサブPCにしようと思っていたが快適過ぎてメインPCになってしまった。

Texで作ったpdfの日本語が文字化けすることだけが悲しい。

Windowsに移すと普通に見れるのに。

あと、インストール直後に全システムアップデートをかけると起動しなくなってしまった。

不満はそれくらい。あとは快適。
ジャジャガッチ | コンピュータ | 21:22 | comments(0) | trackbacks(0) |

基本情報技術者試験

 暇つぶしに基本情報技術者試験の勉強をすることにした。

まず何も勉強しないで平成14年春の問題を解いてみた。

午前はちょうど七割くらい、午後もそれくらいだと思う。

選択問題はC言語を選択した。

ポインタがどうこうというのを聞かれるのかと思いきや全く関係なく、

C言語を知らない人でも解けそうな問題で拍子抜けした。

試験時間は午前午後共に2時間半ということだが、そんなにかかりそうにない。

今年の秋の申し込みは締め切られてしまったので来年春に受験しようと思う。

飽きなければ。

時間があるので基本情報ではなく応用情報を受けようかな。
ジャジャガッチ | 基本情報技術者試験 | 21:13 | comments(0) | trackbacks(0) |
1/1PAGES | |

09
--
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
--
>>
<<
--
PR
RECOMMEND
RECENT COMMENT
MOBILE
qrcode
OTHERS
Since 2013/09/17
LATEST ENTRY
CATEGORY
ARCHIVE
LINKS
PROFILE
SEARCH