Emerald@ ウィキ内検索 / 「プログラミングの流れ」で検索した結果
-
プログラミングの流れ
「mov」とはデスティネーションオペランドにソースオペランドを代入しろ。の意味。 オペランドとは上の画像でいう ax や 50 の部分。 デスティネーションオペランドとはこの画像で左の ax ソースオペランドとはこの画像で右の 50 そして結果として AX に 50 が代入されていることが分かる。 開始 debug メモリアドレス指定 A メモリアドレス 実行 G=実行アドレス 終了アドレス 終了 q -
メニュー
...ょっと勉強。 プログラミングの流れ 汎用レジスタ 加算と減算 ジャンプ命令 フラグレジスタと条件分岐 乗算と除算 ループ命令 フラグ操作 命令ポインタ スタックと特殊汎用レジスタ サブルーチン 論理演算 シフト ローテート セグメントとオフセット メモリ操作 システムコール リンク @wiki @wikiご利用ガイド 他のサービス 無料ホームページ作成 無料ブログ作成 2ch型掲示板レンタル 無料掲示板レンタル お絵かきレンタル 無料ソーシャルプロフ ここを編集 a -
命令ポインタ
命令ポインタとは IP(インストラクションポインタ)レジスタのことです。 IPレジスタは現在実行中のプログラムのアドレスを示します。 使用するには -T=[開始アドレス] [実行する命令数] と指定します。 このプログラムではアドレス 0100 から2つの命令を実行しています。 結果からIPレジスタが次々に移っていく様子が分かる。 IPレジスタは実行中のアドレスを示すレジスタでプログラマが変更することはできない。 -
ジャンプ命令
ジャンプ命令 ジャンプ命令には「jmp」を使う。 使う場合は jmp+(アドレス) という風に指定する。 プログラムを戻るジャンプ(上)ならばアドレスは見えているのでそれを指定すればいいが プログラムを進むジャンプ(下)ならばアドレスは見えていないので一工夫必要になる。 最初のjmp命令ではとりあえず適当なアドレス(ここでは0100)を入れておいてあとから書き加えるというもの。 書き加えられたところには jmp 010A という命令があり、アドレス0106から010Aにジャンプすることになっている。 つまりプログラムはアドレス0108のadd命令を実行せずに終わり、結果として最初に代入された値のままになっている。 このようにあとから変更することも可能。 ちなみにjmp命令のオペランドにはレジスタも指定可能。その場合はレジスタの値のアドレスにジャンプ... -
フラグ操作
フラグレジスタは一般的に条件分岐に使われます。 CFフラグは「キャリーフラグ」と呼ばれており、演算結果の桁上がりが 起こると1(CY)となり、桁上がりが起こらなければ0(NC)となります。 ALレジスタに FF を格納して、さらに1を加算することでALレジスタは桁上がりが発生します。 ALレジスタは1バイトなので当然、桁上がりが発生したら0になります。 また桁上がりが発生したのでCFフラグが1(CY)になっているのが結果からわかります。 このプログラムではadd命令によってCFフラグを変化させましたが、フラグレジスタを変化させるだけの命令が存在します。 「clc」命令はCFフラグを0(NC)にする命令です。 プログラムではadd命令によってCFフラグは1(CY)になるはずですが 次のclcl命令によって再び0(NC)に戻っています... -
汎用レジスタ
汎用レジスタとはCPUのレジスタのひとつ。 レジスタには大きく分けて 「汎用レジスタ」「フラグレジスタ」「命令ポインタ」「セグメントレジスタ」の4つ。 AX(アキュームレータ) オペランドと結果データ用のアキュムレータ BX(ベースレジスタ) DSセグメント内のデータに対するポインタ CX(カウントレジスタ) ストリング操作およびループ操作用のカウンタ DX(データレジスタ) I/Oポインタ SI(ソースインデックス) DSレジスタに対応するセグメント用ポインタ DI(デスティネーションインデックス) ESレジスタに対応するセグメント用ポインタ mov命令で代入した値がしっかりと入っている。 この6つのレジスタはプログラマが自由に使用してよいレジスタ。 そしてAX BX CX DX の4つのレジスタに限り上位と下位にそれぞれ分けられる。 ... -
スタックと特殊汎用レジスタ
特殊汎用レジスタとはこの本(アセンブリ言語の教科書 著:愛甲健二)のみでの読み方なので注意。 これらも一般的に「汎用レジスタ」と定義されている。 データ構造 「スタック」 最後に入った物が最初に取り出せる というデータ入出力方式を「Last In, First Out」又は「First In, Last Out」と呼ぶ。 略:「LIFO」「FILO」 特殊汎用レジスタ BP(ベースポインタ) スタックベースのアドレス SP(スタックポインタ) スタックトップのアドレス 新しい命令が出てきました。 「push」命令は指定した値をスタックへ積み上げる命令。 「pop」命令はスタックのトップから値を取り出す命令。 このプログラムの動きを見てみましょう。 -
プラグイン/ニュース
ニュース @wikiのwikiモードでは #news(興味のある単語) と入力することで、あるキーワードに関連するニュース一覧を表示することができます 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_174_ja.html たとえば、#news(wiki)と入力すると以下のように表示されます。 ウィキペディアを作ったiMacが箱付きで競売に登場。予想落札価格は約96万円!(ギズモード・ジャパン) - Yahoo!ニュース - Yahoo!ニュース メトロイド ドレッド攻略Wiki - Gamerch(ゲーマチ) ツムツム攻略Wiki|ゲームエイト - Game8[ゲームエイト] 【グランサガ】リセマラ当たりランキング - グランサガ攻略wiki - Gamerch(ゲーマチ) アイプラ攻略Wiki|アイドリー... -
プラグイン/関連ブログ
関連ブログ @wikiのwikiモードでは #bf(興味のある単語) と入力することで、あるキーワードに関連するブログ一覧を表示することができます 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_161_ja.html たとえば、#bf(ゲーム)と入力すると以下のように表示されます。 #bf -
トップページ
@wikiへようこそ ウィキはみんなで気軽にホームページ編集できるツールです。 このページは自由に編集することができます。 メールで送られてきたパスワードを用いてログインすることで、各種変更(サイト名、トップページ、メンバー管理、サイドページ、デザイン、ページ管理、等)することができます まずはこちらをご覧ください。 @wikiの基本操作 用途別のオススメ機能紹介 @wikiの設定/管理 分からないことは? @wiki ご利用ガイド よくある質問 無料で会員登録できるSNS内の@wiki助け合いコミュニティ @wiki更新情報 @wikiへのお問合せフォーム 等をご活用ください @wiki助け合いコミュニティの掲示板スレッド一覧 #atfb_bbs_list その他お勧めサービスについて 大容量1G、PHP/CGI、MySQL、FTPが使える無料ホームページは@PAGES 無... -
プラグイン
@wikiにはいくつかの便利なプラグインがあります。 アーカイブ コメント ニュース 人気商品一覧 動画(Youtube) 編集履歴 関連ブログ これ以外のプラグインについては@wikiガイドをご覧ください = http //atwiki.jp/guide/ -
プラグイン/アーカイブ
アーカイブ @wikiのwikiモードでは #archive_log() と入力することで、特定のウェブページを保存しておくことができます。 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/25_171_ja.html たとえば、#archive_log()と入力すると以下のように表示されます。 保存したいURLとサイト名を入力して"アーカイブログ"をクリックしてみよう サイト名 URL - @wiki全体から「プログラミングの流れ」で調べる