汇编指令集(汇编语言指令大全)

2022-07-22 21:49:14  浏览:308  作者:管理员
  • 汇编指令集(汇编语言指令大全)

  • 【商户信息】

  • 类目:知识大全


  • 联系人:


  • 微信号:

  • Q Q 号:

  • 手机号:

  • 浏览量:

    308


【货源详情】


想写系统软件的话,谭浩强的《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 (外部数据)

比特

结束

评论区

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机新闻】

返回顶部