スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

アセンブリ始めました

OSを作ってみたい!
と思って相談したら、CPUの動作も少し知っているといいよ、と言われたために脇道に逸れています。


Windows環境でも標準でアセンブリをアセンブルできるようなので、ポチポチと進めています。

アセンブリ入門
1.コマンドプロンプトにdebugと打ち込む。
2.プログラムを書く。
3.実行する。
以上。


ここ1週間の集大成
アセンブリで除算

赤枠の部分が自分で打ち込んだ部分。
要点のみ解説。


a 0100
  プログラムを書き始める場所(アドレス)を指定する。
  慣習的なアレで 0100 から始めるらしい。
mov al, 7
  alレジスタの値に7を代入する
cmp al, bl
  alレジスタとblレジスタの値を比べる
  等しければZFが1、CFが0になる。
  alが大きければどちらも0になる。
  blが大きければZFが0、CFが1になる。
jbe 110
  ZFとCFのどちらかが1なら0100の処理に飛ぶ
  いわゆるジャンプ
inc cl
  clレジスタの値をインクリメントする
jmp 0106
  強制的に0106の処理に飛ぶ
jne 0116
  ZFが0なら0116の処理に飛ぶ
  ジャンプ関連の命令には、このほかにjeがあり、ZFが1のときに指定されたアドレスに飛ぶ。
g=0100 0116
  0100から0116までを実行しなさいという命令



その結果、CX=0003となっているのが分かる。
7/2の商がきちんと3になったというわけだ!

参考書籍:
 アセンブリ言語の教科書 ¥3,800-
 愛甲健二さん(KENJI'S HOMEPAGEの管理者)

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

管理者にだけ表示を許可する

プロフィール

森嶋晃介

Author:森嶋晃介
社会人2年目。
独学する勉強のために、いろいろ手を出して、それについて書いていく予定です。
今年こそ、たくさん書くぞ

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。