« ^ »

8086

所要時間: 約 3分

16ビットマイクロプロセッサであるIntel 8086の各種レジスタと命令セットをまとめた。

レジスタ

汎用

Registervalue(H/L)日本語用途
AX (AH/AL)アキュムレータ算術演算操作の結果が格納される
BX (BH/BL)ベースレジスタセグメントモードでのDSに格納されたデータを指し示すために使用される
CX (CH/CL)カウンタレジスタシフトローテート命令とループ命令に使用される
DX (DH/DL)データレジスタ算術演算操作とI/O操作に使用される

インデックス

Registervalue日本語用途
SIソースインデックスストリーム操作コマンドでのソースへのポインタとして使用される
DIディスティネーションインデックスストリーム操作コマンドでの転送先へのポインタとして使用される

特殊

Registervalue日本語用途
IPインストラクションポインタ次に実行するアセンブリ命令のアドレスを格納する
SPスタックポインタスタックのトップを指す
BPスタックベースポインタスタックのベースを指す

セグメント

Registervalue日本語用途
CSコードセグメント
DSデータセグメント
SSスタックセグメント
ESエクストラセグメント

status flags

Registervalue(H/L)日本語用途
FLAGSフラグプログラムの実行によって変化する CPU の状態を表す

特殊レジスタの各ビット

flagvalueビット日本語セットされる場合
CF0キャリーフラグMSBからのオーバー/ボロー発生時
PF2パリティフラグ下位 8 ビット中で値 1 のビットの合計数が偶数個になったとき
AF4補助キャリーフラグビット 3 からのオーバー/ボロー発生時
ZF6ゼロフラグゼロになったとき
SF7サインフラグMSBが 1 になったとき
TF8トラップフラグシングルステップモード指定時
IF9割り込み許可フラグ外部(ハードウエア)割り込みの許可時
DF10方向フラグSTD 命令(ストリング命令で使用)
OF11オーバフローフラグMSBへのオーバー/ボロー発生時

命令セット

データ転送

MnemonicDescriptionOperand
MOV
PUSH
POP
XCHGExchange
INInput from
OUTOutput to
XLATTransfer Byte to AL
LEALoad EA to register
LDSLoad pointer to DS
LESLoad pointer to ES
LAHFLoad AH with flags
SAHFStore AH into flags
PUSHFPush flags
POPFPop flags

算術

MnemonicDescriptionOperand
ADD
ADCAdd with Carry
INCIncrement
AAAASCII adjust for add
BAADecimal Adjust for add
SUBSubtract
SSBSubstract with borrow
DECDecrement
NEGChange sign
CMPCompare
AASASCII adjust for subtract
DASDecimal adjust for subtract
MULMultiply (unsiged)
IMULIingeter multiply (signed)
AAMASCII adjust for multiply
DIVDivide (unsiged)
IDIVInteger Divide (siged)
AADAscii adjust for divide
CBWConvert Byte to Word
CWDConvert Word to Double Word

論理

MnemonicDescriptionOperand
NOTInvert
SHL/SALShift Logical/Arithmetic Left
SHRShift Logical Right
SARShift Arithmetic Right
ROLRotat Left
RORRotat Right
RCLRotat Through Carry Flag Left
RCRRotat Through Carry Right
ANDAnd
TESTAnd Function to Flags, No Result
OROr
XORExclusiv or:

文字列操作

MnemonicDescriptionOperand
REPRepeat
MOVSMove Byte/Word
CMPSCompare Byte/Word
SCASScan Byte/Word
LODSLoad Byte/Wd to AL/AX
STOSStor Byte/Wd from AL/A

制御(CONTROL TRANSFER)

MnemonicDescriptionOperand
CALL
JMPUnconditional Jump
RETReturn from CALL
JE/JZJump on Equal/Zero
JL/JNGEJump on Less/Not Greater
JLE/JNGJump on Less or Equal/
JB/JNAEJump on Below/Not Above
JBE/JNAJump on Below or Equal/
JP/JPEJump on Parity/Parity Even
JOJump on Overflow
JSJump on Sign
JNE/JNZJump on Not Equal/Not Zero
JNL/JGEJump on Not Less/Greater
JNLE/JGJump on Not Less or Equal/
JNB/JAEJump on Not Below/Above
JNBE/JAJump on Not Below or
JNP/JPOJump on Not Par/Par Odd
JNOJump on Not Overflow
JNSJump on Not Sign
LOOPLoop CX Times
LOOPZ/LOOPELoop While Zero/Equal
LOOPNZ/LOOPNELoop While Not
JCXZJump on CX Zero
INTInterrupt
INTOInterrupt on Overflow
IRETInterrupt Return

プロセッサ制御

MnemonicDescriptionOperand
CLCClear Carry
CMCComplement Carry
STCSet Carry
CLDClear Direction
STDSet Direction
CLIClear Interrupt
STISet Interrupt
HLTHalt
WAITWait
ESCEscape (to External Device)
LOCKBus Lock Prefix