1: 2007-12-06 (木) 12:07:55 |
現: 2024-01-06 (土) 22:37:40 |
| **できること [#n6e2d0b2] | | **できること [#n6e2d0b2] |
| MOV AL,0x02 ;ALレジスタに0x02を入れる | | MOV AL,0x02 ;ALレジスタに0x02を入れる |
| + | |
| MOV AX,DX ;AXレジスタにDXレジスタの内容を入れる | | MOV AX,DX ;AXレジスタにDXレジスタの内容を入れる |
- | | + | |
- | MOV EAX,LABEL ;EAXレジスタにLABELというラベルの「番地」を入れる | + | MOV AX,LABEL ;AXレジスタにLABELというラベルの「番地」を入れる |
- | | + | |
- | MOV EDX,[0X0200] ;EDXレジスタに0x0200番地の「メモリの内容」を入れる | + | MOV DX,[0X0200] ;DXレジスタに0x0200番地の「メモリの内容」を入れる |
- | | + | |
- | MOV EBX,[EAX] ;EBXに、EAXに入っている番地の「メモリの内容」を入れる | + | MOV BX,[AX] ;BXに、AXに入っている番地の「メモリの内容」を入れる |
| | | |
| | | |
| -大きさが異なるレジスタ間の転送はできない | | -大きさが異なるレジスタ間の転送はできない |
| 例: | | 例: |
- | MOV EBX,AL ;EBXは32bit、ALは16bitで大きさが異なる | + | MOV BX,AL ;BXは16bit、ALは8bitで大きさが異なる |
| | | |
- | -直接代入できないレジスタである | + | -直接代入できないレジスタがある |
| 例: | | 例: |
| MOV ES,0x30 ; ESレジスタは即値を直接代入できない | | MOV ES,0x30 ; ESレジスタは即値を直接代入できない |
| + | --直接代入できないレジスタ |
| + | ---ES |
| + | ---CS |
| + | ---DS |
| + | ---ES |
| + | ---SS |
| + | ---IP |
| | | |
- | | + | -メモリ間では代入できない |
- | | + | 例: |
- | | + | MOV [0x200],[0x300] ; 0x200番地から0x300番地に値を転送。 |
- | | + | ; メモリ間では直接転送できない |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | -CPUの仕様?からか、直接代入できないレジスタがあるので注意。 | + | |
- | | + | |
- | |~汎用レジスタ|~レジスタ代入|~即値代入|~備考| | + | |
- | |AX|○|○|| | + | |
- | |BX|○|○|アドレス指定の使用に向いている| | + | |
- | |CX|○|○|ループ時のカウンタとして使用するのに向いている| | + | |
- | |DX|○|○|| | + | |
- | |~インデックスレジスタ|~正式名称|~用途|~備考| | + | |
- | |SI|ソースインデックス|汎用|ストリング命令に使用すると便利?| | + | |
- | |DI|ディスティネーションインデックス|汎用|~| | + | |
- | |~特殊レジスタ|~正式名称|~用途|~備考| | + | |
- | |BP|ベースポインタ||| | + | |
- | |SP|スタックポインタ||スタックアドレスの''オフセット値''を示す| | + | |
- | |IP|インストラクションポインタ|×|次に実行すべき命令の番地の''オフセット値''を示す| | + | |
- | |~セグメントレジスタ|~正式名称|~用途|~備考| | + | |
- | |CS|○|×|次に実行すべき命令の番地の''セグメント値''を示す| | + | |
- | |DS|○|×|| | + | |
- | |ES|○|×|| | + | |
- | |SS|○||スタックアドレスの''セグメント値''を示す| | + | |
- | |~フラグレジスタ|~正式名称|~用途|~備考| | + | |