アセンブラメモ
提供: Astarisk Works Wiki
目次 |
アセンブラの命令
| 命令 | 説明 | 例 | 例の説明 |
|---|---|---|---|
| ADD | add 加算命令 | ADD SI,1 | レジスタSIの値に1を加える |
| CALL | | | |
| CMP | compare 比較命令。JE等と組み合わせて使う |
CMP AL,0 JE fin |
レジスタALの値と0を比較する。 比較の結果が等しければラベルfinにジャンプする |
| DB |
data byte 1バイトを直接書き込む | | |
| DD | data double-word 4バイト(32ビット)を書き込む | | |
| DW | data word 2バイト(16ビット)を書き込む | | |
| EQU | equal 定数を定義する | CYLS EQU 0x0ff0 | CYLS=0x0ff0という定数を定義 |
| HLT | halt CPUを待機状態にする。 | ||
| INT | interrupt ソフトウェア割り込み。BIOSの関数を呼ぶ | | |
| IRETD | |||
| JB | jump if below 小さければジャンプ | | |
| JBE | jump if below or equal 小さいか等しければジャンプ | | |
| JC | jump if carry キャリーフラグが1ならジャンプ | JC error | キャリーフラグが1ならerrerラベルまでジャンプ |
| JE | jump if equal 等しければジャンプ | ||
| JNC | jump if not carry キャリーフラグが0ならジャンプ | JNC error | |
| JMP | jump 指定された箇所にジャンプする。 | JMP putloop | putloopのラベルがつけられた箇所にジャンプする。 |
| ORG | origin プログラムが読み込まれる予定の番地を示す | ORG 0x0700 | プログラムが0x0700に読み込まれる予定 |
| OUT |
output 指定されたI/Oポートに接続されたデバイスに出力する | | |
| MOV | move 代入 | MOV SS,AX | SSにAXの内容を代入する。 |
| POP | pop | ||
| POPAD | pop all | ||
| PUSH | push | ||
| PUSHAD | |||
| RESB | reserve byte 指定されたバイト数だけ空ける。 | RESB 10 | 10バイトを空ける |
| RET | return |
各命令では読み込みや書き込みにレジスタやメモリの番地を指定することができる。
メモリの番地を指定する場合には[ ]をつけてアドレスを指定する。
レジスタ
16ビットレジスタ
| レジスタ名 | 説明 |
|---|---|
| AX | アキュムレータ。累積演算器の意味。番地の指定には使えない |
| CX | カウンタ。番地の指定には使えない |
| DX | データ。番地の指定には使えない |
| BX | ベース |
| SP | スタックポインタ。スタック用ポインタ。番地の指定には使えない |
| BP | ベースポインタ。ベース用ポインタ |
| SI | ソースインデックス。読み込みインデックス |
| DI | ディスティネーションインデックス。書き込みインデックス |
8ビットレジスタ
それぞれ対応する16ビットレジスタの上位ビット、下位ビットに対応する。
つまりAX=AH+ALとなる。たとえばAXにE21Fを格納するとAH=E2、AL=1Fとなる。
| レジスタ名 | 説明 |
|---|---|
| AL | アキュムレータロウ |
| CL | カウンタロウ |
| DL | データロウ |
| BL | ベースロウ |
| AH | アキュムレータハイ |
| CH | カウンタハイ |
| DH | データハイ |
| BH | ベースハイ |
32ビットレジスタ
32ビットレジスタもやはり一部16ビットレジスタと値を共有しているが、下位16ビットのみを共有する。
上位16ビットの値をとりたい場合はビットをシフトさせたりして取り出す。
| レジスタ名 | 説明 |
|---|---|
| EAX | |
| ECX | |
| EDX | |
| EBX | |
| ESP | |
| EBP | |
| ESI | |
| EDI | |
変数
| 変数 | 説明 |
|---|---|
| $ |
先頭からのバイト数が格納される。 ORG命令があれば読み込まれる予定のメモリの番地が格納される |
| | |