|
資料集
ここはhideyosiの学習帳です。いろいろな資料を集めたり整理したりしています。オイラ用のノートなので間違っていたり未完成だったりしますので信用度は相当低いことをあらかじめご了承くださいませ。
2: 2007-11-06 (火) 15:25:25 |
現: 2024-01-06 (土) 22:37:41 |
| [[FrontPage]] | | [[FrontPage]] |
| | | |
- | 比較を行う | + | 比較を行う。~ |
| 比較の結果は各フラグで判定できる | | 比較の結果は各フラグで判定できる |
| | | |
- | CMP AX,BX ;AXの内容とBXの内容を比較する | + | *できること [#p6f6d78f] |
| + | CMP AX,BX ;レジスタとレジスタを比較する |
| + | |
| + | CMP AX,[0x200] ;レジスタとメモリの内容を比較する |
| + | |
| + | CMP AX,0x3F ;レジスタと即値を比較する |
| + | |
| + | CMP [0x200],0x3F ;メモリの内容と即値を比較する |
| + | |
| | | |
| + | *できないこと [#x91ab0f2] |
| + | CMP [0x200],[0x250] ;メモリの内容同士を直接比較する |
| + | |
| + | CMP 0x3F,0xA8 ;即値同士を直接比較する |
| + | |
| + | CMP ES,[0x250] ;セグメントレジスタが絡む比較 |
| | | |
| + | ---- |
| + | -CMPで比較を行っても値はまったく変化しない。FLAGSのレジスタが変化するだけである。 |
| | | |
- | *結果 [#i071c2c0] | + | -比較した後は各種ジャンプ命令で条件分岐を行う。詳しくは[[こちら>NASK/条件分岐]]を。 |
- | -同じだった!!! | + | |
- | MOV AX,0x20 | + | |
- | MOV BX,0x20 | + | |
- | CMP AX,BX | + | |
| | | |
- | 結果、各種フラグがセットされますのでそのすぐ下で条件ジャンプをします。 | + | *ウンチク [#hd8d5049] |
| + | 以下は知らなくても実用上はあまり問題ではない話。 |
| | | |
- | JZ xxxxH ;AXとBXが同じだったらジャンプ! | |
| | | |
- | JNZ xxxxH ;AXとBXが違っていたらジャンプ! | + | CMP命令はSUBと同じ法則でFLAGSを変化させる。いうなれば''値が変化しない引き算''と言える。 |
| | | |
- | JB xxxxH ;BXのほうが大きかった( AX < BX )らジャンプ! | |
| | | |
- | JA xxxxH ;AXのほうが大きかった( AX > BX )らジャンプ! | + | 具体的には以下のように各フラグが変化する。 |
| | | |
- | JBE xxxxH ;AXがBX以下( AX <= BX )ならジャンプ! | |
| | | |
- | JAE xxxxH ;AXがBX以上( AX >= BX )ならジャンプ! | + | |
| + | CMP AX,BX |
| + | |
| + | | |>|>|>|>|>|>|>|>|>|>|>|>|>|>|CENTER:FLAGS|h |
| + | |~CMP結果|~ |~NT|~IOPL|~0F|~DF|~IF|~TF|~SF|~ZF|~ |~AF|~ |~PF|~ |~CF| |
| + | | AX > BX|-|-|-|-|-|-|-|-|0|-|-|-|-|-|0| |
| + | | AX = BX|-|-|-|-|-|-|-|-|1|-|-|-|-|-|0| |
| + | | AX < BX|-|-|-|-|-|-|-|-|0|-|-|-|-|-|1| |
Counter: 4049,
today: 2,
yesterday: 1
|