汇编指令集(汇编语言指令大全)
-
-
类目:知识大全
-
联系人:
-
微信号:
-
Q Q 号:
-
手机号:
-
浏览量:
312
【商户信息】
【货源详情】
想写系统软件的话,谭浩强的《C 语言程序设计》和王爽的《汇编语言》这两本入门书是必须的。 谭老的c语言相当成熟,王老师的汇编有一点小毛病。 因为指令中没有英语的全名,所以现在正在学习编程的朋友可能以为不记得单词。 新生代作家好像看不懂英语原著。 但是,我想记住指令的英语全名,很难混淆,会给人留下更深刻的印象,所以把王爽本上的英语缩写全名排在一起,让入门的朋友能更好地记住。
8086CPU具有以下大型指令:
一.数据传输指令
例如,mov(move、push、pop、pushf(push flags、popf(pop flags、xchg(exchange等都是数据传输指令) )、寄存器和存储器、寄存器和寄存器
二.算术运算命令
例如add、sub(substract )、ADC (addwithcarry )、sbb (substractwithborrow )、Inc(increase )、dec (decrease ) )、CMP idiv(integerdivide )、AAA (asciiaddwithadjust )等是实现寄存器和存储器内数据运算的算术运算指令。 这些执行结果会影响标志寄存器的sf、zf、of、cf、pf、af位。
三.逻辑命令
例如,and、or、not、xor、exclusiveor、test、SHL、SHR、shiftlogicright、sal、shiftarithmeticleft rol (rotate left )、旋转左边缘除not指令外,它们的执行结果影响标志寄存器的相关标志位。
本帖隐藏的内容
四.搬迁指令
修改IP或同时修改CS和IP的命令统称为转移命令。 跳转命令分为以下几类。
)1)无条件转移命令。 例如,jmp(jump );
)2)条件分支指令,例如,jcxz(jumpifCXiszero )、je ) jumpifequal )、JB ) jumpifbelow )、ja ) jumpifnotbelow )、jnb )
)3)环路指令,例如loop;
4 )过程,例如call、return、retf ) returnfar;
)5)中断,例如int (中断)、iret (中断返回)。
五.处理器控制指令
这些指令设定标志寄存器和其他处理器状态,例如,CLD(cleardirection )、STD (set direction )、CLI (clear interrupt )、STI (set interrupt )等
六.串行处理令
这些命令位于movsb(movestringbyte )、movestringword (MPs )、CMPS (comparestring )、scas (scanstring )、lods (lods )等存储器中必须与前缀命令(如rep(repeat )、repe (repeatifequal )和repne (repeatifnotequal ) )结合使用。
附: 8086CPU寄存器英文全名
1、通用寄存器
ax (计数、bx(base )、CX (计数)、dx (数据) )这些寄存器可按照字(16位、或字节(8位) )为单位来访问;
sp(stackpointer )、BP (base pointer )、si ) sourceindex )、di ) destinationindex )、这些寄存器只能以字(16位)为单位进行访问
2、专用寄存器
分析点(IP )、存储处理器(sp )堆栈点;
FLAGS也称为程序设计(PSW ),可分为以下几类:
条件代码
of(overflow )、SF(sign )、ZF (zero )、cf (carry )、af (auxiliary )、pf (parity ) )。
控制标志
目录(df )
系统标志
TF(trap )、if (interrupt )、iopl (iopl )和I/oprivilegelevel )。
3、段寄存器
cs(code )、ds(data )、ss (stack )、es (extra ) )。
汇编指令的英文全名
一.数据传输指令
1 .通用数据传输命令。
MOV—- move
movsx-- extendedmovewithsigndata
movzx-- extendedmovewithzerodata
推——推
POP—-pop
推——推全部
POPA—-pop all
推送- -推送所有数据
POPAD—-pop all data
BSWAP—-byte swap
XCHG—-exchange
CMPXCHG—-compare and change
xadd——exchange和add
XLAT—-translate
2 .输入输出端口传送命令。
输入- -输入
OUT—-output
3 .目标地址传输命令。
LEA—-load effective address
LDS—-load DS
LES—-load ES
LFS—-load FS
LGS—-load GS
LSS—-load SS
4 .标志传送命令。
LAHF—-load AH from flag
SAHF—-save AH to flag
推送——推送标志
popf——pop标志
推- -推dflag
POPD—-pop dflag
二.算术运算命令
ADD—-add
ADC—-add with carry
INC—-increase 1
AAA—-ascii add with adjust
DAA—-decimal add with adjust
子——子
SBB—-substract with borrow
DEC—-decrease 1
NEC—-negative
CMP—-compare
AAS—-ascii adjust on substract
DAS—-decimal adjust on substract
MUL—-multiplication
imul-- integer多应用程序
am-- asciiadjustonmultiplication
DIV—-divide
idiv--集成设备
AAD—-ascii adjust on divide
CBW—-change byte to word
CWD—-change word to double word
wde-- changewordtodoublewordwithsigntoeax
cdq-- changedoublewordtoquadrateword
三.逻辑运算命令
和——和
OR—-or
XOR—-xor Exclusive OR
NOT—-not
TEST—-test
SHL—-shift left
SAL—-arithmatic shift left算术
SHR—-shift right
SAR—-arithmatic shift right
ROL—-rotate left
ROR—-rotate right
RCL—-rotate left with carry
RCR—-rotate right with carry
四.串行命令
MOVS—-move string
CMPS—-compare string
scas——扫描字符串
LODS—-load string
STOS—-store string
REP—-repeat
REPE—-repeat when equal
REPZ—-repeat when zero flag
REPNE—-repeat when not equal
REPNZ—-repeat when zero flag
REPC—-repeat when carry flag
REPNC—-repeat when not carry flag
五.程序转移指令
1无条件转移命令(长转移) ) ) ) ) ) ) )。
JMP—-jump
呼叫- -呼叫
返回- -返回
RETF—-return far
2条件分支指令(短分支,-128到127的距离内) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
JAE—-jump when above or equal
JNB—-jump when not below
JB—-jump when below
JNAE—-jump when not above or equal
JBE—-jump when below or equal
JNA—-jump when not above
JG—-jump when greater
JNLE—-jump when not less or equal
JGE—-jump when greater or equal
JNL—-jump when not less
JL—-jump when less
jnge——jump when not greater or equal
JLE—-jump when less or equal
JNG—-jump when not greater
JE—-jump when equal
JZ—-jump when has zero flag
JNE—-jump when not equal
JNZ—-jump when not has zero flag
JC—-jump when has carry flag
JNC—-jump when not has carry flag
jno-- jumpwhennothasoverflowflag
JNP—-jump when not has parity flag
JPO—-jump when parity flag is odd
JNS—-jump when not has sign flag
JO—-jump when has overflow flag
JP—-jump when has parity flag
JPE—-jump when parity flag is even
JS—-jump when has sign flag
3循环控制指令(短转移) ) ) )。
LOOP—-loop
LOOPE—-loop equal
LOOPZ—-loop zero
LOOPNE—-loop not equal
LOOPNZ—-loop not zero
JCXZ—-jump when CX is zero
JECXZ—-jump when ECX is zero
4中断命令
输入- -内部
INTO—-overflow interrupt
IRET—-interrupt return
5处理器控制指令
HLT—-halt
WAIT—-wait
ESC—-escape
LOCK—-lock
NOP—-no operation
STC—-set carry
CLC—-clear carry
CMC—-carry make change
STD—-set direction
CLD—-clear direction
STI—-set interrupt
CLI—-clear interrupt
六.伪令
DW—-definw word
PROC—-procedure
ENDP—-end of procedure
段- -段
资产- -资产
结束- -结束消息
结束- -结束
Move )
移动代码(movc )
移动外部(movx )
xch (交换)
推送
POP
AJMP (Absolute Jump )
这是长jmp (长jump )
这是短jmp
jmp(jumpindirect ) )。
是JZ(jumpzero )
JNZ(jumpnotzero ) )。
日本工业标准(JC ) )。
JNC (Jump if Not Carry )
JB(jumpifbitisset ) )。
jnb(jumpifnotbit ) )。
ifbitissetandclearbit (jbc ) )。
计算和计算专用质量(cjne ) )。
离散和jumpifnotzero (djnz ) )。
A呼叫(absolute call ) )。
lcall (长呼叫) )。
是ret (返回)
无操作(nop ) )。
ADD
自适应阵列(addc ) )。
子仓库(subb )。
多点(multiply )
div(divide ) )。
输入(Inc )
缺省(dec )
这是逻辑和
ORL (逻辑或)
xrl (逻辑执行或)
CPL (完成)
这是清除
是sebt (设置位)
是旋转左(rl )
是旋转权限(RR )
旋转浮置标记(RLC ) )。
旋转字符架构标志(RRC ) )。
XCHD
交换
是数字调整(da )
原始)。
定义字节(db )
定义世界(dw )
这是一个快速通道
数据
xdata (外部数据)
比特
结束