資料集
ここはhideyosiの学習帳です。いろいろな資料を集めたり整理したりしています。オイラ用のノートなので間違っていたり未完成だったりしますので信用度は相当低いことをあらかじめご了承くださいませ。
1: 2007-12-04 (火) 11:48:56 ソース バックアップ No.1 を復元して編集
Line 1: Line 1:
 +[[FrontPage]]
 +比較を行う
 +比較の結果は各フラグで判定できる
 +
 + CMP    AX,BX          ;AXの内容とBXの内容を比較する
 +
 +
 +
 +*結果 [#i071c2c0]
 +-同じだった!!!
 + MOV    AX,0x20
 + MOV    BX,0x20
 + CMP    AX,BX
 +
 +結果、各種フラグがセットされますのでそのすぐ下で条件ジャンプをします。
 +
 +*単純な比較 [#b4dedf8a]
 + JZ    xxxxH        ;AXとBXが同じだったらジャンプ!
 + JE    xxxxH        ;AXとBXが同じだったらジャンプ!
 +
 + JNZ    xxxxH        ;AXとBXが違っていたらジャンプ!
 + JNE    xxxxH        ;AXとBXが違っていたらジャンプ!
 +
 +
 +*符号なし整数比較 [#a5818235]
 +頭のビットを符号としないで比較する。Cの変数でいえばunsignedで宣言した変数のようなもの
 +
 + JA      xxxxH      ;AXのほうが大きかった( AX > BX )らジャンプ!
 + JNBE    xxxxH      ;AXのほうが大きかった( AX > BX )らジャンプ!
 +
 + JB xxxxH      ;BXのほうが大きかった( AX < BX )らジャンプ!
 + JNAE    xxxxH      ;BXのほうが大きかった( AX < BX )らジャンプ!
 +
 + JAE    xxxxH        ;AXがBX以上( AX >= BX )ならジャンプ!
 + JNB    xxxxH        ;AXがBX以上( AX >= BX )ならジャンプ!
 +
 + JBE    xxxxH        ;AXがBX以下( AX <= BX )ならジャンプ!
 + JNA    xxxxH        ;AXがBX以下( AX <= BX )ならジャンプ!
 +
 +
 +*符号あり整数比較 [#fad58d64]
 +頭のビットを符号として比較する。
 +
 + JG      xxxxH      ;AXのほうが大きかった( AX > BX )らジャンプ!
 + JNLE    xxxxH      ;AXのほうが大きかった( AX > BX )らジャンプ!
 +
 + JL xxxxH      ;BXのほうが大きかった( AX < BX )らジャンプ!
 + JNGE    xxxxH      ;BXのほうが大きかった( AX < BX )らジャンプ!
 +
 + JGE    xxxxH        ;AXがBX以上( AX >= BX )ならジャンプ!
 + JNL    xxxxH        ;AXがBX以上( AX >= BX )ならジャンプ!
 +
 + JLE    xxxxH        ;AXがBX以下( AX <= BX )ならジャンプ!
 + JNG    xxxxH        ;AXがBX以下( AX <= BX )ならジャンプ!
 +
 +*符号とは? [#obc13660]
 +レジスタにセットされた16進数の値を、符号付き変数とするか符合なし変数と捕らえるか。(これは最後はプログラマの判断になる)
 +
 +たとえば、AXレジスタに0xFFをセットしたとする。この0xFFを符号なしと捕らえると、255という値になるが、符号付だと解釈すると-1という扱いになる。
 +
 +これを意識せずに比較を行うとおかしくなってしまうわけ。
 +
 +そのため、比較命令はおのおの、符号ありと符号なしに分かれて別々に用意されている。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 2657, today: 2, yesterday: 0