3年前 (2015-10-16)  百元百科 |   抢沙发  631 
文章评分 2 次,平均分 5.0

学习汇编中碰到的很多命令书上都是强行给出,丝毫不讲命令用词的原由,命令究竟是哪个英文单词的缩写,这样记起来很是麻烦,现总结一下,以方便记忆。

一、寄存器类(register):

  1. 通用寄存器:AX,BX,CX,DX——这几个没什么好写的,就是这样了。
  2. 段寄存器:代码段寄存器CS--code segment , 数据段寄存器DS--data segment , 堆栈段寄存器SS--stack segment ,附加段寄存器ES--extra segment 。
  3. 特殊功能寄存器:指令指针寄存器IP--instruction pointer ,堆栈指针SP--stack pointer ,基址指针BP--base pointer ,源变址寄存器SI--source index ,目标变址寄存器DI--destination index ,标志寄存器FR--flag register(或者叫程序状态字PSW--program status word)。
  4. PSW常用的标志有:

标志 值为1时的标记 值为0时的标记

  • OF(overflow flag) OV(overflow) NV(not overflow)
  • ZF(zero flag) ZR(zero) NZ(not zero)
  • PF(parity flag) PE(parity even) PO(parity odd)
  • CF(carry flag) CY(carried) NC(not carried)
  • DF(direction flag) DN(down) UP(up)
  • SF(sign flag) NG(negtive) PL(plus)
  • TF(trap flag)
  • IF(interrupt flag)
  • AF(auxiliary flag)

汇编指令对应的英文单词

命令类

1.通用数据传送指令.

    • MOV----> move
    • MOVSX---->extended move with sign data
    • MOVZX---->extended move with zero data
    • PUSH---->push
    • POP---->pop
    • PUSHA---->push all
    • POPA---->pop all
    • PUSHAD---->push all data
    • POPAD---->pop all data
    • BSWAP---->byte swap
    • XCHG---->exchange
    • CMPXCHG---->compare and change
    • XADD---->exchange and add
    • XLAT---->translate

2.输入输出端口传送指令.

  • IN---->input
  • 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
  • PUSHF---->push flag
  • POPF---->pop flag
  • PUSHD---->push dflag
  • POPD---->pop dflag

二、算术运算指令

  • ADD---->add
  • ADC---->add with carry
  • INC---->increase 1
  • AAA---->ascii add with adjust
  • DAA---->decimal add with adjust
  • SUB---->substract
  • 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 multiplication
  • AAM---->ascii adjust on multiplication
  • DIV---->divide
  • IDIV---->integer divide
  • AAD---->ascii adjust on divide
  • CBW---->change byte to word
  • CWD---->change word to double word
  • CWDE---->change word to double word with sign to EAX
  • CDQ---->change double word to quadrate word

三、逻辑运算指令

  • AND---->and
  • OR---->or
  • XOR---->xor
  • 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---->scan string
  • 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
  • CALL---->call
  • RET---->return
  • 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---->jump when not has overflow flag
  • 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>中断指令

  • INT---->interrupt
  • 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
  • SEGMENT---->segment
  • ASSUME---->assume
  • ENDS---->end segment
  • END---->end
 

本文已在版权印备案,受著作权法律保护,未经允许不得转载!如需转载请联系作者或访问版权印获取授权,如果你觉得这篇文章对你有用,可以点击下面的“赞助作者”打赏作者!

转载注明原文出处:王柏元的博客>>http://wangbaiyuan.cn/assembly-instruction-corresponding-english-words.html

关于
记录生活,镌刻心路;泼洒文墨,分享技术!王柏元的博客致力于IT经验交流,并原创翻译引进外文文章,打开IT国际化视野

发表评论

格式

暂无评论

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册