汇编指令的英文全称
(完整版)ARM汇编指令英文全称及功能描述V2.0
1 ARM指令英文全称及功能描述V2.0作者:满光明2019年4月9日转载请支持原创,保留此页信息,否则将追究责任前言我在工作前买了一本关于ARM指令的书籍,当时出于方便记忆理解的考量,整理了ARM指令,并且加入了英文的全称。
了解了英文的全称,能够好的帮助记忆和理解。
百度网盘里分享出来的ARM 指令英文全称我看了一下都是我当年整理的版本,但他们把作者的名字去掉了。
几年过去了,ARM技术取得了巨大的进步,ARM以其低功耗、低成本、高性能的优势抢占了移动市场。
相信在不远的未来,ARM会普遍运行在个人电脑和服务器上。
在可穿戴、边缘计算等前沿领域ARM拥有无与伦比的优势。
作为一个技术控,工作以来我一直从事ARM相关的开发工作,计算机领域需要学习的东西太多,但很多基础知识都是相通的。
我也希望能把自己这么多年的技术积累拿出来分享给即将走上硬件开发、底层驱动开发的同仁们本篇仍然以介绍ARM架构以及ARM指令为主,在原来的基础上重新调整了指令顺序,首先介绍ARM 架构不同版本的区别,进而引出基本指令结构,最后详细列出所有指令详表,增强可读性,易于理解。
2一、ARM指令集版本历史计算机完成一定的操作通过指令来实现,不同的指令方式被称为计算机架构,目前计算机主要有两大架构阵营,一是CISC (Complex Instruction Set Computers)复杂指令集架构,另一种是RISC(Reduced Instruction Set Computers)精简指令集架构。
采用CISC架构的代表是Intel和AMD的X86指令集,采用RISC架构的代表是ARM指令集和PowerPC指令集。
ARM架构从诞生到今天从V1版本已经升级到了V8版本,各版本代表的分支型号如下表所示。
从图中可以看出,Cortex-A9 架构的CPU采用的是ARMv7的指令集,目前高性能的64位视频处理,比如Cortex-A72,采用的是ARMv8指令集。
汇编语言中指令的英文解释.
1.通用数据传送指令.MOV----> move MOVSX---->extended move with sign dataMOVZX---->extended move with zero data PUSH---->push POP---->pop PUSHA---->push all POPA---->pop all PUSHAD---->push all dataPOPAD---->pop all data BSWAP---->byte swap XCHG---->exchangeCMPXCHG---->compare and change XADD---->exchange and addXLAT---->translate2.输入输出端口传送指令.IN---->input OUT---->output3.目的地址传送指令.LEA---->load effective address LDS---->load DS LES---->load ESLFS---->load FS LGS---->load GS LSS---->load SS4.标志传送指令.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 1AAA---->ascii add with adjust DAA---->decimal add with adjust SUB---->substract SBB---->substract with borrow DEC---->decrease 1 NEC---->negativeCMP---->compare AAS---->ascii adjust on substractDAS---->decimal adjust on substract MUL---->multiplicationIMUL---->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 EAXCDQ---->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---->repeatREPE---->repeat when equal REPZ---->repeat when zero flagREPNE---->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 far2>条件转移指令(短转移,-128到+127的距离内JAE---->jump when above or equal JNB---->jump when not belowJB---->jump when below JNAE---->jump when not above or equalJBE---->jump when below or equal JNA---->jump when not aboveJG---->jump when greater JNLE---->jump when not less or equalJGE---->jump when greater or equal JNL---->jump when not lessJL---->jump when less JNGE---->jump when not greater or equalJLE---->jump when less or equal JNG---->jump when not greaterJE---->jump when equal JZ---->jump when has zero flagJNE---->jump when not equal JNZ---->jump when not has zero flagJC---->jump when has carry flag JNC---->jump when not has carry flagJNO---->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 flagJO---->jump when has overflow flag JP---->jump when has parity flagJPE---->jump when parity flag is even JS---->jump when has sign flag3>循环控制指令(短转移LOOP---->loop LOOPE---->loop equal LOOPZ---->loop zeroLOOPNE---->loop not equal LOOPNZ---->loop not zeroJCXZ---->jump when CX is zero JECXZ---->jump when ECX is zero4>中断指令INT---->interrupt INTO---->overflow interrupt IRET---->interrupt return5>处理器控制指令HLT---->halt WAIT---->wait ESC---->escape LOCK---->lock NOP---->no operation STC---->set carry CLC---->clear carry CMC---->carry make changeSTD---->set direction CLD---->clear direction STI---->set interruptCLI---->clear interrupt六、伪指令DW---->definw word PROC---->procedure ENDP---->end of procedureSEGMENT---->segment ASSUME---->assume ENDS---->end segmentEND---->end。
汇编语言缩写与英文
汇编语言缩写与英文汇编语言(Assembly Language)是一种低级编程语言,由机器语言指令和符号助记符组成,用于与计算机硬件直接交互。
在汇编语言中,缩写常常被使用,以减少代码的长度和提高代码的可读性。
本文将介绍一些常见的汇编语言缩写及其对应的英文。
一、数据传输指令1. MOV - MoveMOV指令用于将数据从一个位置移动到另一个位置。
例如,将数据从内存移动到寄存器,或者从寄存器移动到内存时,可以使用MOV指令。
2. LDR - LoadLDR指令用于从内存中加载数据。
通常,LDR指令用于将数据加载到寄存器中。
3. STR - StoreSTR指令用于将数据存储到内存中。
通常,STR指令用于将寄存器中的数据存储到内存地址中。
二、算术运算指令1. ADD - AddADD指令用于将两个操作数相加,并将结果保存到目标操作数中。
2. SUB - SubtractSUB指令用于将两个操作数相减,并将结果保存到目标操作数中。
3. MUL - MultiplyMUL指令用于将两个操作数相乘,并将结果保存到目标操作数中。
4. DIV - DivideDIV指令用于将两个操作数相除,并将结果保存到目标操作数中。
三、逻辑运算指令1. AND - Bitwise ANDAND指令用于对两个操作数执行按位与操作,并将结果保存到目标操作数中。
2. OR - Bitwise OROR指令用于对两个操作数执行按位或操作,并将结果保存到目标操作数中。
3. XOR - Bitwise XORXOR指令用于对两个操作数执行按位异或操作,并将结果保存到目标操作数中。
四、跳转指令1. JMP - JumpJMP指令用于无条件跳转到指定的地址。
2. JZ - Jump if ZeroJZ指令用于在操作数为零时跳转到指定的地址。
3. JNZ - Jump if Not ZeroJNZ指令用于在操作数不为零时跳转到指定的地址。
五、堆栈指令1. PUSH - PushPUSH指令用于将数据压栈。
汇编语言中的英文缩写
汇编语言中的英文缩写在汇编语言中,英文缩写是指将长词或短语用其首字母组合而成的缩写形式。
这些缩写在汇编语言中广泛使用,有助于简化代码编写和阅读的过程。
本文将介绍一些常用的汇编语言中的英文缩写。
1. 寄存器缩写在汇编语言中,寄存器是存储和处理数据的关键之一。
以下是一些常见寄存器的缩写:- 累加器(Accumulator):简写为 ACC- 数据寄存器(Data Register):简写为 DR- 源操作数寄存器(Source Operand Register):简写为 SOR- 目标操作数寄存器(Destination Operand Register):简写为 DOR - 程序计数器(Program Counter):简写为 PC2. 指令缩写汇编语言中的指令用于实现特定的操作,以下是一些常用指令的缩写:- 加法(Addition):简写为 ADD- 减法(Subtraction):简写为 SUB- 逻辑与(Logical AND):简写为 AND- 逻辑或(Logical OR):简写为 OR- 转移(Jump):简写为 JMP- 存储(Store):简写为 ST- 加载(Load):简写为 LD3. 程序标志缩写程序标志用于指示运行过程中的条件和结果,以下是一些常见的程序标志缩写:- 无进位标志(Carry Flag):简写为 CF- 零标志(Zero Flag):简写为 ZF- 溢出标志(Overflow Flag):简写为 OF- 符号标志(Sign Flag):简写为 SF4. 内存缩写在汇编语言中,对于内存地址或单元的引用也可以使用缩写形式,以下是一些例子:- 基地址寄存器(Base Address Register):简写为 BAR- 偏移量(Offset):简写为 OFF- 存储器(Memory):简写为 MEM5. 输入输出缩写在处理输入输出时,也存在一些常用的缩写形式:- 输入(Input):简写为 IN- 输出(Output):简写为 OUT- 打印(Print):简写为 PRNT- 读取(Read):简写为 RD在编写汇编代码或阅读他人的代码时,使用这些缩写能够提高代码的可读性和整洁度。
instruction 文件术语
instruction 文件术语在计算机科学中,instruction 文件(指令文件)是一种包含了计算机程序的指令和相关信息的文件。
它通常用于指导计算机或处理器执行特定的操作或任务。
以下是一些与instruction 文件相关的术语解释:1. 指令(Instruction):指令是计算机程序中的基本操作单元,用于告诉计算机或处理器执行特定的动作或操作。
指令可以包括算术、逻辑、分支、存储器访问等操作。
2. 指令集(Instruction Set):指令集是计算机体系结构中支持的所有指令的集合。
它定义了处理器可以执行的操作和操作码的编码方式。
3. 汇编语言(Assembly Language):汇编语言是一种低级编程语言,使用助记符(mnemonics)来表示指令和操作码。
汇编语言的源代码需要通过汇编器转换为可执行的机器码。
4. 汇编器(Assembler):汇编器是一种将汇编语言源代码转换为机器码的工具。
它读取指令文件中的汇编语言代码,并将其转化为计算机可执行的指令序列。
5. 目标文件(Object File):目标文件是编译器或汇编器生成的中间文件,其中包含了编译或汇编后的指令和数据。
目标文件通常需要链接器(Linker)将其与其他目标文件合并为可执行文件。
6. 可执行文件(Executable File):可执行文件是包含了完整指令集和数据的文件,可直接在计算机上运行。
它包含了操作系统和处理器需要执行的所有指令和数据。
7. 符号表(Symbol Table):符号表是一个数据结构,用于存储指令文件中定义的符号和它们的地址或值。
符号可以是变量、函数或标签等,符号表提供了一个关联符号和地址的映射关系。
8. 拷贝(Patch):在某些情况下,需要对指令文件进行修改或修补,以修复一些错误或改变程序行为。
这些修改被称为拷贝,可以通过修改指令文件中的特定指令或数据来实现。
指令文件是计算机程序的重要组成部分,它定义了程序的执行流程和具体操作。
51汇编指令对应英文全称
MOV (Move)MOVC (Move Code) 代码字节传送MOVX (Move External) [ikˈst ə:nəl]外部的PUSH 推POP(pop-up) 弹出AJMP (Absolute Jump)LJMP (Long Jump)SJMP (Short Jump)JMP (Jump Indirect)[ˌindiˈrekt]间接的JZ (Jump Zero)JNZ (Jump Not Zero)JC (Jump if Carry进位) 进位为1转移JNC (Jump if Not Carry) 进位为0转移JB (Jump if Bit is set) 直接寻址位为1转移JNB (Jump if Not Bit)JBC (If Bit is set and Clear Bit) 直接寻址位为1转移并清该位CJNE (Compare比较and Jump if Not Equal相等) DJNZ (Decrement减1 andJump if Not Zero)ACALL (Absolute Call)LCALL (Long Call)RET (Return)NOP (No Operation)ADD (addition)ADDC (Add with Carry进位)SUBB (Subtract with Borrow借)MUL (Multiply)[ˈmʌltiplai] 相乘DIV (Division) 除INC (Increment) 增量DEC (Decrement) 减量ANL (Logical AND)ORL (Logical OR)XRL (Logical Exclusive of OR)[ikˈsklu:siv]排他的(非),异或CPL (Complement) [ˈkɔmplimənt]补充,取反CLR (Clear)SEBT (Set Bit) 置位RL (Rotate Left) [rəuˈteit].(使)旋转RR (Rotate Right)RLC (Rotate Left throught theCarry flag) 经过进位的**循环左移RRC (Rotate Right throughtthe Carry flag)XCH (Exchange) 交换XCHD 交换低4位字节SWAP 高低4位互换DA (Decimal Adjust) [ˈdesiməl]十进制调整ORG (Origin) [ˈɔridʒin]起点DB (Define Byte)DW (Define Word)EQU (Equal)DATAXDATA (External Data)BIT。
(完整版)ARM汇编指令英文全称及功能描述V2.0
1 ARM指令英文全称及功能描述V2.0作者:满光明2019年4月9日转载请支持原创,保留此页信息,否则将追究责任前言我在工作前买了一本关于ARM指令的书籍,当时出于方便记忆理解的考量,整理了ARM指令,并且加入了英文的全称。
了解了英文的全称,能够好的帮助记忆和理解。
百度网盘里分享出来的ARM 指令英文全称我看了一下都是我当年整理的版本,但他们把作者的名字去掉了。
几年过去了,ARM技术取得了巨大的进步,ARM以其低功耗、低成本、高性能的优势抢占了移动市场。
相信在不远的未来,ARM会普遍运行在个人电脑和服务器上。
在可穿戴、边缘计算等前沿领域ARM拥有无与伦比的优势。
作为一个技术控,工作以来我一直从事ARM相关的开发工作,计算机领域需要学习的东西太多,但很多基础知识都是相通的。
我也希望能把自己这么多年的技术积累拿出来分享给即将走上硬件开发、底层驱动开发的同仁们本篇仍然以介绍ARM架构以及ARM指令为主,在原来的基础上重新调整了指令顺序,首先介绍ARM 架构不同版本的区别,进而引出基本指令结构,最后详细列出所有指令详表,增强可读性,易于理解。
2一、ARM指令集版本历史计算机完成一定的操作通过指令来实现,不同的指令方式被称为计算机架构,目前计算机主要有两大架构阵营,一是CISC (Complex Instruction Set Computers)复杂指令集架构,另一种是RISC(Reduced Instruction Set Computers)精简指令集架构。
采用CISC架构的代表是Intel和AMD的X86指令集,采用RISC架构的代表是ARM指令集和PowerPC指令集。
ARM架构从诞生到今天从V1版本已经升级到了V8版本,各版本代表的分支型号如下表所示。
从图中可以看出,Cortex-A9 架构的CPU采用的是ARMv7的指令集,目前高性能的64位视频处理,比如Cortex-A72,采用的是ARMv8指令集。
汇编语言指令英文全称
汇编指令英文全称1.通用数据传送指令MOV----> moveMOV dest,src ;dest←srcMOV指令把一个字节或字的操作数从源地址src传送至目的地址dest。
MOVSX---->extended move with sign dataMOVZX---->extended move with zero dataPUSH---->pushPOP---->pop进栈出栈指令PUSHA---->push allPOPA---->pop allPUSHAD---->push all dataPOPAD---->pop all dataBSWAP---->byte swapXCHG---->exchange交换指令用来将源操作数和目的操作数内容交换,操作数可以是字、也可以是字节,可以在通用寄存器与通用寄存器或存储器之间对换数据,但不能在存储器与存储器之间对换数据。
mov ax,1234h ;ax=1234hmov bx,5678h ;bx=5678hxchg ax,bx ;ax=5678h,bx=1234hxchg ah,al ;ax=7856hXADD---->exchange and addXLAT---->translate换码指令用于将BX指定的缓冲区中、AL指定的位移处的数据取出赋给AL。
2.输入输出端口传送指令IN---->inputOUT---->output3.目的地址传送指令LEA---->load effective addres有效地址传送指令mov bx,0400hmov si,3chlea bx,[bx+si+0f62h] ;BX=139EH这里BX得到的是主存单元的有效地址,不是物理地址,也不是该单元的内容。
LDS---->load DSLES---->load ESLFS---->load FSLGS---->load GSLSS---->load SS4.标志传送指令LAHF---->load AH from flagSAHF---->save AH to flagPUSHF---->push flagPOPF---->pop flagPUSHD---->push dflagPOPD---->pop dflag二、算术运算指令ADD---->add加法指令mov al,0fbh ;al=0fbh add al,07h ;al=02hADC---->add with carryINC---->increase 1AAA---->ascii add with adjustDAA---->decimal add with adjust SUB---->substractSBB---->substract with borrow DEC---->decrease 1NEC---->negativeAAS---->ascii adjust on substract DAS---->decimal adjust on substract MUL---->multiplicationIMUL---->integer multiplicationAAM---->ascii adjust on multiplicationDIV---->divideIDIV---->integer divideAAD---->ascii adjust on divideCBW---->change byte to wordCWD---->change word to double wordCWDE---->change word to double word with sign to EAX CDQ---->change double word to quadrate word三、逻辑运算指令AND---->andor---->orXOR---->xorNOT---->notTEST---->testSHL---->shift leftSAL---->arithmatic shift leftSHR---->shift rightSAR---->arithmatic shift rightROL---->rotate leftROR---->rotate rightRCL---->rotate left with carryRCR---->rotate right with carry四、串指令MOVS---->move stringSCAS---->scan stringLODS---->load stringSTOS---->store stringREP---->repeatREPE---->repeat when equalREPZ---->repeat when zero flagREPNE---->repeat when not equalREPNZ---->repeat when zero flagREPC---->repeat when carry flagREPNC---->repeat when not carry flag五、程序转移指令1>无条件转移指令(长转移)JMP---->jumpCALL---->callRET---->returnRETF---->return far2>条件转移指令(短转移,-128到+127的距离内)JAE---->jump when above or equalJNB---->jump when not belowJB---->jump when belowJNAE---->jump when not above or equal JBE---->jump when below or equalJNA---->jump when not aboveJG---->jump when greaterJNLE---->jump when not less or equal JGE---->jump when greater or equal JNL---->jump when not lessJL---->jump when lessJNGE---->jump when not greater or equal JLE---->jump when less or equalJNG---->jump when not greaterJE---->jump when equalJZ---->jump when has zero flagJNE---->jump when not equalJNZ---->jump when not has zero flagJC---->jump when has carry flagJNC---->jump when not has carry flag JNO---->jump when not has overflow flagJNP---->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 flag3>循环控制指令(短转移)LOOP---->loopLOOPE---->loop equalLOOPZ---->loop zeroLOOPNE---->loop not equal LOOPNZ---->loop not zeroJCXZ---->jump when CX is zero JECXZ---->jump when ECX is zero4>xx指令INT---->interruptINTO---->overflow interruptIRET---->interrupt return5>处理器控制指令HLT---->haltWAIT---->waitESC---->escapeLOCK---->lockNOP---->no operation STC---->set carryCLC---->clear carryCMC---->carry make change STD---->set directionCLD---->clear directionSTI---->set interruptCLI---->clear interrupt六、伪指令DW---->definw word PROC---->procedure ENDP---->end of procedure SEGMENT---->segment ASSUME---->assume ENDS---->end segment END---->end汇编指令中文xx数据传输指令───────────────────────────────────────它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1.通用数据传送指令.MOV传送字或字节.MOVSX先符号扩展,再传送.MOVZX先零扩展,再传送.PUSH把字压入堆栈.POP把字弹出堆栈.PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP交换32位寄存器里字节的顺序XCHG交换字或字节.(至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG比较并交换操作数.(第二个操作数必须为累加器AL/AX/EAX )XADD先交换再累加.(结果在第一个操作数里)XLAT字节查表转换.──BX指向一张256字节的表的起点, AL为表的索引值(0-255,即0-FFH);返回AL为查表结果. ( [BX+AL]->AL )2.输入输出端口传送指令.IN I/O端口输入. (语法:IN累加器, {端口号│DX} )OUT I/O端口输出. (语法:OUT {端口号│DX},累加器)输入输出端口由立即方式指定时,其范围是0-255;由寄存器DX指定时, 其范围是0-65535.3.目的地址传送指令.LEA装入有效地址.例:LEA DX,string ;把偏移地址存到DX.LDS传送目标指针,把指针内容装入DS.例:LDS SI,string ;把段地址:偏移地址存到DS:SI.LES传送目标指针,把指针内容装入ES.例:LES DI,string ;把段地址:偏移地址存到ES:DI.LFS传送目标指针,把指针内容装入FS.例:LFS DI,string ;把段地址:偏移地址存到FS:DI.LGS传送目标指针,把指针内容装入GS.例:LGS DI,string ;把段地址:偏移地址存到GS:DI.LSS传送目标指针,把指针内容装入SS.例:LSS DI,string ;把段地址:偏移地址存到SS:DI.4.标志传送指令.LAHF标志寄存器传送,把标志装入AH.SAHF标志寄存器传送,把AH内容装入标志寄存器. PUSHF标志入栈.POPF标志出栈.PUSHD 32位标志入栈.POPD 32位标志出栈.二、算术运算指令───────────────────────────────────────ADD加法. ADC带进位加法.INC加1.AAA加法的ASCII码调整.DAA加法的十进制调整.SUB减法.SBB带借位减法.DEC减1.NEC求反(以0减之).CMP比较.(两操作数作减法,仅修改标志位,不回送结果). AAS减法的ASCII码调整.DAS减法的十进制调整.MUL无符号乘法.IMUL整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM乘法的ASCII码调整.DIV无符号除法.IDIV整数除法.以上两条,结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).AAD除法的ASCII码调整.CBW字节转换为字. (把AL中字节的符号扩展到AH中去)CWD字转换为双字. (把AX中的字的符号扩展到DX中去)CWDE字转换为双字. (把AX中的字符号扩展到EAX中去)CDQ双字扩展. (把EAX中的字的符号扩展到EDX中去)三、逻辑运算指令───────────────────────────────────────AND与运算.or或运算.XOR异或运算.NOT取反.TEST测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL逻辑xx.SAL算术xx.(=SHL)SHR逻辑右移.SAR算术右移.(=SHR)当值为负时,高位补1;当值为正时,高位补0 ROL循环xx.ROR循环右移.RCL通过进位的循环xx.RCR通过进位的循环右移.以上八种移位指令,其移位次数可达255次.移位一次时,可直接用操作码.如SHL AX,1.移位>1次时,则由寄存器CL给出移位次数.如MOV CL,04SHL AX,CL四、串指令───────────────────────────────────────DS:SI源串段寄存器:源串变址.ES:DI目标串段寄存器:目标串变址.CX重复次数计数器.AL/AX扫描值.D标志0表示重复操作中SI和DI应自动增量; 1表示应自动减量. Z标志用来控制扫描或比较操作的结束.MOVS串传送.( MOVSB传送字符. MOVSW传送字. MOVSD传送双字. )CMPS串比较.( CMPSB比较字符. CMPSW比较字. )SCAS串扫描.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS装入串.把源串中的元素(字或字节)逐一装入AL或AX中.( LODSB传送字符. LODSW传送字. LODSD传送双字. )STOS保存串.是LODS的逆过程.REP当CX/ECX<>0时重复.REPE/REPZ当ZF=1或比较结果相等,且CX/ECX<>0时重复.REPNE/REPNZ当ZF=0或比较结果不相等,且CX/ECX<>0时重复.REPC当CF=1且CX/ECX<>0时重复.REPNC当CF=0且CX/ECX<>0时重复.五、程序转移指令───────────────────────────────────────1>无条件转移指令(长转移) JMP无条件转移指令CALL过程调用RET/RETF过程返回.2>条件转移指令(短转移,-128到+127的距离内)(当且仅当(SF XOR OF)=1时,OP1 JA/JNBE不小于或不等于时转移.JAE/JNB大于或等于转移.JB/JNAE小于转移.JBE/JNA小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z). JG/JNLE大于转移.JGE/JNL大于或等于转移.JL/JNGE小于转移.JLE/JNG小于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z). JE/JZ等于转移.JNE/JNZ不等于时转移.JC有进位时转移.JNC无进位时转移.JNO不溢出时转移.JNP/JPO奇偶性为奇数时转移.JNS符号位为"0"时转移.JO溢出转移.JP/JPE奇偶性为偶数时转移.JS符号位为"1"时转移.3>循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z=1时循环.LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.JCXZ CX为零时转移.JECXZ ECX为零时转移.4>xx指令INTxx指令INTO溢出xxIRETxx返回5>处理器控制指令HLT处理器暂停,直到出现中断或复位信号才继续. WAIT当芯片引线TEST为高电平时使CPU进入等待状态. ESC转换到外处理器.LOCKxx总线.NOP空操作.STC置进位标志位.CLC清进位标志位.CMC进位标志取反.STD置方向标志位.CLD清方向标志位.STI置xx允许位.CLI清xx允许位.六、伪指令─────────────────────────────────────DW定义字(2字节). PROC定义过程.ENDP过程结束.SEGMENT定义xx.ASSUME建立段寄存器寻址.ENDSxx结束.END程序结束.。
(完整word版)汇编指令英文全称,推荐文档.docx
汇编指令英文全称一、传送指令1、通用数据传送指令指令英文全称MOV moveMOVSX extended move with sign data MOVZX extended move with zero data PUSH pushPOP popPUSHA push allPOPA pop allPUSHAD push all dataPOPAD pop all dataBSWAP byte swapXCHG exchangeCMPXCHG compare and changeXADD exchange and addXLAT translate2、输入输出端口传送指令指令英文全称IN inputOUT output3、目的地址传送指令指令英文全称LEA load effective addressLDS load DSLES load ESLFS load FSLGS load GSLSS load SS4、标志传送指令指令英文全称LAHF load AH from flagSAHF save AH to flagPUSHF push flag POPF pop flagPUSHD push dword flagPOPD pop dword flag二、运算指令1、算术运算指令指令英文全称ADD addADC add with carryINC increase 1AAA ascii add with adjustDAA decimal add with adjust SUB substractSBB substract with borrowDEC decrease 1NEC negativeCMP compareAAS ascii adjust on substract DAS decimal adjust on substract MUL multiplicationIMUL integer multiplicationAAMascii adjust onmultiplicationDIV divideIDIV integer divideAAD ascii adjust on divideCBW change byte to wordCWD change word to double word CWDEchange word to double wordwith sign to EAXCDQchange double word toquadrate word2、逻辑运算指令指令英文全称AND andOR orXOR xorNOT notTEST testSHL shift leftSAL arithmatic shift leftSHR shift rightSAR arithmatic shift rightROL rotate leftROR rotate rightRCL rotate left with carryRCR rotate right with carry四、字符串操作指令指令英文全称MOVS move stringCMPS compare stringSCAS scan stringLODS load stringSTOS store stringREP repeatREPE repeat when equalREPZ repeat when zero flag REPNE repeat when not equal REPNZ repeat when zero flagREPC repeat when carry flag REPNC repeat when not carry flag五、程序转移指令1、无条件转移指令(长转移 )指令英文全称JMP jumpCALL callRET returnRETF return far2、条件转移指令(短转移 ,128 到 +127 的距离内 )指令英文全称JAE jump when above or equal JNB jump when not below JB jump when belowJNAE jump when not above or equal JBE jump when below or equalJNA jump when not aboveJG jump when greaterJNLE jump when not less or equal JGE jump when greater or equalJNL jump when not lessJL jump when lessJNGEjump when not greater orequalJLE jump when less or equalJNG jump when not greaterJE jump when equalJZ jump when has zero flagJNE jump when not equalJNZ jump when not has zero flagJC jump when has carry flagJNC jump when not has carry flag JNOjump when not has overflowflagJNP jump when not has parity flag JPO jump when parity flag is odd JNS jump when not has sign flagJO jump when has overflow flagJP jump when has parity flagJPE jump when parity flag is even JS jump when has sign flag3、循环控制指令(短转移 )指令英文全称LOOP loopLOOPE loop equalLOOPZ loop zeroLOOPNE loop not equalLOOPNZ loop not zeroJCXZ jump when CX is zero汇编指令英文全称第3页共3页JECXZ4、中断指令指令INTINTOIRET jump when ECX is zero英文全称interruptoverflow interrupt interrupt return5、处理器控制指令指令英文全称HLT WAIT ESC LOCK NOPSTCCLCCMCSTDCLDSTICLI六、伪指令指令DW PROC ENDP SEGMENT ASSUME ENDS END haltwaitescapelockno operationset carryclear carrycarry make change set directionclear directionset interruptclear interrupt英文全称define word procedureend of procedure segmentassumeend segmentend。
汇编语言指令及标志位状态英文缩写
DEC---->decrease 1
NEC---->negative
CMP---->compare
AAS---->ASCII adjust on subtract
DAS---->decimal adjust on subtract
MUL---->multiplication
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
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
XADD---->exchange and add
XLAT---->translate
2.输入输出端口传送指令.
IN---->input
OUT---->output
3.目的地址传送指令.
LEA---->load effective address
汇编语言中指令的英文解释
1.通用数据传送指令.MOV----> move MOVSX---->extended move with sign dataMOVZX---->extended move with zero data PUSH---->push POP---->pop PUSHA---->push all POPA---->pop all PUSHAD---->push all dataPOPAD---->pop all data BSWAP---->byte swap XCHG---->exchangeCMPXCHG---->compare and change XADD---->exchange and addXLAT---->translate2.输入输出端口传送指令.IN---->input OUT---->output3.目的地址传送指令.LEA---->load effective address LDS---->load DS LES---->load ESLFS---->load FS LGS---->load GS LSS---->load SS4.标志传送指令.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 1AAA---->ascii add with adjust DAA---->decimal add with adjust SUB---->substract SBB---->substract with borrow DEC---->decrease 1 NEC---->negativeCMP---->compare AAS---->ascii adjust on substractDAS---->decimal adjust on substract MUL---->multiplicationIMUL---->integer multiplication AAM---->ascii adjust on multiplicationDIV---->divide IDIV---->integer divide AAD---->ascii adjust on divideCBW---->change byte to word CWD---->change word to double wordCWDE---->change word to double word with sign to EAXCDQ---->change double word to quadrate word三、逻辑运算指令AND---->and OR---->or XOR---->xor NOT---->not TEST---->testSHL---->shift left SAL---->arithmatic shift left SHR---->shift rightSAR---->arithmatic shift right ROL---->rotate left ROR---->rotate rightRCL---->rotate left with carry RCR---->rotate right with carry四、串指令MOVS---->move string CMPS---->compare string SCAS---->scan stringLODS---->load string STOS---->store string REP---->repeatREPE---->repeat when equal REPZ---->repeat when zero flagREPNE---->repeat when not equal REPNZ---->repeat when zero flagREPC---->repeat when carry flag REPNC---->repeat when not carry flag五、程序转移指令1>无条件转移指令(长转移)JMP---->jump CALL---->call RET---->return RETF---->return far2>条件转移指令(短转移,-128到+127的距离内)JAE---->jump when above or equal JNB---->jump when not belowJB---->jump when below JNAE---->jump when not above or equalJBE---->jump when below or equal JNA---->jump when not aboveJG---->jump when greater JNLE---->jump when not less or equalJGE---->jump when greater or equal JNL---->jump when not lessJL---->jump when less JNGE---->jump when not greater or equalJLE---->jump when less or equal JNG---->jump when not greaterJE---->jump when equal JZ---->jump when has zero flagJNE---->jump when not equal JNZ---->jump when not has zero flagJC---->jump when has carry flag JNC---->jump when not has carry flagJNO---->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 flagJO---->jump when has overflow flag JP---->jump when has parity flagJPE---->jump when parity flag is even JS---->jump when has sign flag3>循环控制指令(短转移)LOOP---->loop LOOPE---->loop equal LOOPZ---->loop zeroLOOPNE---->loop not equal LOOPNZ---->loop not zeroJCXZ---->jump when CX is zero JECXZ---->jump when ECX is zero4>中断指令INT---->interrupt INTO---->overflow interrupt IRET---->interrupt return5>处理器控制指令HLT---->halt WAIT---->wait ESC---->escape LOCK---->lock NOP---->no operation STC---->set carry CLC---->clear carry CMC---->carry make changeSTD---->set direction CLD---->clear direction STI---->set interruptCLI---->clear interrupt六、伪指令DW---->definw word PROC---->procedure ENDP---->end of procedureSEGMENT---->segment ASSUME---->assume ENDS---->end segmentEND---->end。
汇编指令的英文全称
汇编指令的英文全称汇编指令的英文全称如果你想写系统软件,两本入门书籍--谭浩强的《C语言程序设计》和王爽的《汇编语言》是必看的。
谭老的C语言已相当成熟,王老师的汇编倒有个小缺陷—指令没有英文全称,或许他认为现在学编程的朋友都不记单词,如同新生代作家看不懂英文原著一般。
不过我觉得记住指令的英文全称,就不容易搞混,印象会更深刻,所以我把王爽书中出现的英文缩写的全称罗列出来,以便入门的朋友更好地记住它们。
8086CPU提供以下几大类指令。
一、数据传送指令比如,mov(move)、push、pop、pushf(push flags)、popf(pop flags)、xchg(exchange)等都是数据传送指令,这些指令实现寄存器和内存、寄存器和寄存器之间的单个数据传送。
二、算术运算指令比如,add、sub(substract)、adc(add with carry)、sbb(substract with borrow)、inc(increase)、dec(decrease)、cmp(compare)、imul(integer multiplication)、idiv(integer divide)、aaa(ASCII add with adjust)等都是算术运算指令,这些指令实现寄存器和内存中的数据运算。
它们的执行结果影响标志寄存器的sf、zf、of、cf、pf、af位。
三、逻辑指令比如,and、or、not、xor(exclusive or)、test、shl(shift logic left)、shr(shift logic right)、sal(shift arithmetic left)、sar(shift arithmetic right)、rol(rotate left)、ror(rotate right)、rcl(rotate left through carry)、rcr(rotate right through carry)等都是逻辑指令。
51单片机的汇编指令英文全名拼音注音
Ei 51单片机的指令英文全名/拼音注音MOV(英文为Move/ mu ve):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;MOVC(Move Code/ muve ,cou de)读取程序存储器数据表格的数据传送;MOVX (Move External RAM /muve, ei ke si te nou) 对外部RAM的数据传送;XCH (Exchange /ei ke si chen zhi) 字节交换;XCHD (Exchange low-order Digit / lou-aoder,di jei te) 低半字节交换;PUSH (Push onto Stack/ pu shi, ang to, si dai ke) 入栈;POP (Pop from Stack/ pao pu, fu rong ang mu, si dai ke) 出栈;(2)算术运算类指令(8种助记符)ADD(Addition e/ dei shen) 加法;ADDC(Add with Carry /ai de wei zi kai rei)带进位加法;SUBB(Subtract with Borrow/ sa bu chuai ke te, wei zi bao rou) 带借位减法;DA(Decimal Adjust/ dai si mou, e de zha si te) 十进制调整;INC(Increment /ying ke rei men te) 加1;DEC(Decrement /di ke rei men te) 减1;MUL(Multiplication、Multiply/ mao ti pu lei kei shen, mao ti pu lai) 乘法;DIV(Division、Divide/ di wei ri-en , di wai de) 除法;(3)逻辑运算类指令(10种助记符)ANL(AND Logic /an de,lao j ke) 逻辑与;ORL(OR Logic / ao , lao j ke ) 逻辑或;XRL(Exclusive-OR Logic /ei ke si ke lu cei ve-ao, lao j ke) 逻辑异或;CLR(Clear/ ke li er) 清零;CPL(Complement/ kang pu lei men te) 取反;RL(Rotate left /rou tei te,lai fu te) 循环左移;RLC(Rotate Left throught the Carry flag /si rou te, ,kai rei,fu lai ge ) 带进位循环左移;RR(Rotate Right/ rou tei te, rai te) 循环右移;RRC (Rotate Right throught the Carry flag) 带进位循环右移;SWAP (Swap/ si wai pu te)低4位与高4位交换;(4)控制转移类指令(17种助记符)ACALL(Absolute subroutine Call /ai bu se lu te, sa bu lu ting,kao)子程序绝对调用;LCALL(Long subroutine Call /lang,sa bu lu ting,kao)子程序长调用;RET(Return from subroutine /rei ten,fu rong ang mu , sa bu lu ting)子程序返回;RETI(Return from Interruption/ rei ten,fu rong ang mu ,ying te rua pu shen)中断返回;SJMP(Short Jump/ shao te, jiang pu)短转移;AJMP(Absolute Jump/ ai bu se lu te, jiang pu)绝对转移;LJMP(Long Jump /lang,jiang pu)长转移;CJNE (Compare Jump if Not Equal /kang pai er ,jiang pu ,ei fu , nao te, yi kou)比较不相等则转移;DJNZ (Decrement Jump if Not Zero/ di ke rei men te jiang pu ei fu nao te。
汇编语言中的英文缩写
汇编指令英文全称:1.通用数据传送指令MOV---->moveMOV dest,src;dest←srcMOV指令把一个字节或字的操作数从源地址src传送至目的地址dest。
MOVSX---->extended move with sign dataMOVZX---->extended move with zero dataPUSH---->pushPOP---->pop进栈出栈指令PUSHA---->push allPOPA---->pop allPUSHAD---->push all dataPOPAD---->pop all dataBSWAP---->byte swapXCHG---->exchange交换指令用来将源操作数和目的操作数内容交换,操作数可以是字、也可以是字节,可以在通用寄存器与通用寄存器或存储器之间对换数据,但不能在存储器与存储器之间对换数据。
mov ax,1234h;ax=1234hmov bx,5678h;bx=5678hxchg ax,bx;ax=5678h,bx=1234hxchg ah,al;ax=7856hCMPXCHG---->compare and changeXADD---->exchange and addXLAT---->translate换码指令用于将BX指定的缓冲区中、AL指定的位移处的数据取出赋给AL。
2.输入输出端口传送指令IN---->inputOUT---->output3.目的地址传送指令LEA---->load effective addres有效地址传送指令mov bx,0400hmov si,3chlea bx,[bx+si+0f62h];BX=139EH这里BX得到的是主存单元的有效地址,不是物理地址,也不是该单元的内容。
LDS---->load DSLES---->load ESLFS---->load FSLGS---->load GSLSS---->load SS4.标志传送指令LAHF---->load AH from flagSAHF---->save AH to flagPUSHF---->push flagPOPF---->pop flagPUSHD---->push dflagPOPD---->pop dflag二、算术运算指令ADD---->add加法指令mov al,0fbh;al=0fbhadd al,07h;al=02hADC---->add with carryINC---->increase1AAA---->ascii add with adjustDAA---->decimal add with adjustSUB---->substractSBB---->substract with borrowDEC---->decrease1NEC---->negativeCMP---->compareAAS---->ascii adjust on substractDAS---->decimal adjust on substractMUL---->multiplicationIMUL---->integer multiplicationAAM---->ascii adjust on multiplicationDIV---->divideIDIV---->integer divideAAD---->ascii adjust on divideCBW---->change byte to wordCWD---->change word to double wordCWDE---->change word to double word with sign to EAX CDQ---->change double word to quadrate word三、逻辑运算指令AND---->andor---->orXOR---->xorNOT---->notTEST---->testSHL---->shift leftSAL---->arithmatic shift leftSHR---->shift rightSAR---->arithmatic shift rightROL---->rotate leftROR---->rotate rightRCL---->rotate left with carryRCR---->rotate right with carry四、串指令MOVS---->move stringCMPS---->compare stringSCAS---->scan stringLODS---->load stringSTOS---->store stringREP---->repeatREPE---->repeat when equalREPZ---->repeat when zero flagREPNE---->repeat when not equalREPNZ---->repeat when zero flagREPC---->repeat when carry flagREPNC---->repeat when not carry flag五、程序转移指令1>无条件转移指令(长转移)JMP---->jumpCALL---->callRET---->returnRETF---->return far2>条件转移指令(短转移,-128到+127的距离内)JAE---->jump when above or equalJNB---->jump when not belowJB---->jump when belowJNAE---->jump when not above or equalJBE---->jump when below or equalJNA---->jump when not aboveJG---->jump when greaterJNLE---->jump when not less or equalJGE---->jump when greater or equalJNL---->jump when not lessJL---->jump when lessJNGE---->jump when not greater or equal JLE---->jump when less or equalJNG---->jump when not greaterJE---->jump when equalJZ---->jump when has zero flagJNE---->jump when not equalJNZ---->jump when not has zero flagJC---->jump when has carry flagJNC---->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 flagJO---->jump when has overflow flagJP---->jump when has parity flagJPE---->jump when parity flag is evenJS---->jump when has sign flag3>循环控制指令(短转移)LOOP---->loopLOOPE---->loop equalLOOPZ---->loop zeroLOOPNE---->loop not equalLOOPNZ---->loop not zeroJCXZ---->jump when CX is zero JECXZ---->jump when ECX is zero4>中断指令INT---->interruptINTO---->overflow interruptIRET---->interrupt return5>处理器控制指令HLT---->haltWAIT---->waitESC---->escapeLOCK---->lockNOP---->no operationSTC---->set carryCLC---->clear carryCMC---->carry make changeSTD---->set directionCLD---->clear directionSTI---->set interruptCLI---->clear interrupt六、伪指令DW---->definw wordPROC---->procedureENDP---->end of procedureSEGMENT---->segmentASSUME---->assumeENDS---->end segmentEND---->end汇编指令中文释义数据传输指令───────────────────────────────────────它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1.通用数据传送指令.MOV传送字或字节.MOVSX先符号扩展,再传送.MOVZX先零扩展,再传送.PUSH把字压入堆栈.POP把字弹出堆栈.PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP交换32位寄存器里字节的顺序XCHG交换字或字节.(至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG比较并交换操作数.(第二个操作数必须为累加器AL/AX/EAX) XADD先交换再累加.(结果在第一个操作数里)XLAT字节查表转换.──BX指向一张256字节的表的起点,AL为表的索引值(0-255,即0-FFH);返回AL为查表结果.([BX+AL]->AL)2.输入输出端口传送指令.IN I/O端口输入.(语法:IN累加器,{端口号│DX})OUT I/O端口输出.(语法:OUT{端口号│DX},累加器)输入输出端口由立即方式指定时,其范围是0-255;由寄存器DX指定时,其范围是0-65535.3.目的地址传送指令.LEA装入有效地址.例:LEA DX,string;把偏移地址存到DX.LDS传送目标指针,把指针内容装入DS.例:LDS SI,string;把段地址:偏移地址存到DS:SI.LES传送目标指针,把指针内容装入ES.例:LES DI,string;把段地址:偏移地址存到ES:DI.LFS传送目标指针,把指针内容装入FS.例:LFS DI,string;把段地址:偏移地址存到FS:DI.LGS传送目标指针,把指针内容装入GS.例:LGS DI,string;把段地址:偏移地址存到GS:DI.LSS传送目标指针,把指针内容装入SS.例:LSS DI,string;把段地址:偏移地址存到SS:DI.4.标志传送指令.LAHF标志寄存器传送,把标志装入AH.SAHF标志寄存器传送,把AH内容装入标志寄存器.PUSHF标志入栈.POPF标志出栈.PUSHD32位标志入栈.POPD32位标志出栈.二、算术运算指令───────────────────────────────────────ADD加法.ADC带进位加法.INC加1.AAA加法的ASCII码调整.DAA加法的十进制调整.SUB减法.SBB带借位减法.DEC减1.NEC求反(以0减之).CMP比较.(两操作数作减法,仅修改标志位,不回送结果).AAS减法的ASCII码调整.DAS减法的十进制调整.MUL无符号乘法.IMUL整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM乘法的ASCII码调整.DIV无符号除法.IDIV整数除法.以上两条,结果回送:商回送AL,余数回送AH,(字节运算);或商回送AX,余数回送DX,(字运算).AAD除法的ASCII码调整.CBW字节转换为字.(把AL中字节的符号扩展到AH中去)CWD字转换为双字.(把AX中的字的符号扩展到DX中去)CWDE字转换为双字.(把AX中的字符号扩展到EAX中去)CDQ双字扩展.(把EAX中的字的符号扩展到EDX中去)三、逻辑运算指令───────────────────────────────────────AND与运算.or或运算.XOR异或运算.NOT取反.TEST测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL逻辑左移.SAL算术左移.(=SHL)SHR逻辑右移.SAR算术右移.(=SHR)当值为负时,高位补1;当值为正时,高位补0 ROL循环左移.ROR循环右移.RCL通过进位的循环左移.RCR通过进位的循环右移.以上八种移位指令,其移位次数可达255次.移位一次时,可直接用操作码.如SHL AX,1.移位>1次时,则由寄存器CL给出移位次数.如MOV CL,04SHL AX,CL四、串指令───────────────────────────────────────DS:SI源串段寄存器:源串变址.ES:DI目标串段寄存器:目标串变址.CX重复次数计数器.AL/AX扫描值.D标志0表示重复操作中SI和DI应自动增量;1表示应自动减量.Z标志用来控制扫描或比较操作的结束.MOVS串传送.(MOVSB传送字符.MOVSW传送字.MOVSD传送双字.)CMPS串比较.(CMPSB比较字符.CMPSW比较字.)SCAS串扫描.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS装入串.把源串中的元素(字或字节)逐一装入AL或AX中.(LODSB传送字符.LODSW传送字.LODSD传送双字.)STOS保存串.是LODS的逆过程.REP当CX/ECX<>0时重复.REPE/REPZ当ZF=1或比较结果相等,且CX/ECX<>0时重复. REPNE/REPNZ当ZF=0或比较结果不相等,且CX/ECX<>0时重复. REPC当CF=1且CX/ECX<>0时重复.REPNC当CF=0且CX/ECX<>0时重复.五、程序转移指令───────────────────────────────────────1>无条件转移指令(长转移)JMP无条件转移指令CALL过程调用RET/RETF过程返回.2>条件转移指令(短转移,-128到+127的距离内)(当且仅当(SF XOR OF)=1时,OP1JA/JNBE不小于或不等于时转移. JAE/JNB大于或等于转移.JB/JNAE小于转移.JBE/JNA小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z).JG/JNLE大于转移.JGE/JNL大于或等于转移.JL/JNGE小于转移.JLE/JNG小于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ等于转移.JNE/JNZ不等于时转移.JC有进位时转移.JNC无进位时转移.JNO不溢出时转移.JNP/JPO奇偶性为奇数时转移.JNS符号位为"0"时转移.JO溢出转移.JP/JPE奇偶性为偶数时转移.JS符号位为"1"时转移.3>循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z=1时循环.LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.JCXZ CX为零时转移.JECXZ ECX为零时转移.4>中断指令INT中断指令INTO溢出中断IRET中断返回5>处理器控制指令HLT处理器暂停,直到出现中断或复位信号才继续.WAIT当芯片引线TEST为高电平时使CPU进入等待状态.ESC转换到外处理器.LOCK封锁总线.NOP空操作.STC置进位标志位.CLC清进位标志位.CMC进位标志取反.STD置方向标志位.CLD清方向标志位.STI置中断允许位.CLI清中断允许位.六、伪指令─────────────────────────────────────DW定义字(2字节).PROC定义过程.ENDP过程结束.SEGMENT定义段.ASSUME建立段寄存器寻址.ENDS段结束.END程序结束.汇编语言中常用寄存器的英文缩写:AH&AL=AX(accumulator):累加寄存器BH&BL=BX(base):基址寄存器CH&CL=CX(count):计数寄存器DH&DL=DX(data):数据寄存器SP(Stack Pointer):堆栈指针寄存器BP(Base Pointer):基址指针寄存器SI(Source Index):源变址寄存器DI(Destination Index):目的变址寄存器IP(Instruction Pointer):指令指针寄存器CS(Code Segment)代码段寄存器DS(Data Segment):数据段寄存器SS(Stack Segment):堆栈段寄存器ES(Extra Segment):附加段寄存器OF overflow flag溢出标志操作数超出机器能表示的范围表示溢出,溢出时为1. SF sign Flag符号标志记录运算结果的符号,结果负时为1.ZF zero flag零标志运算结果等于0时为1,否则为0.CF carry flag进位标志最高有效位产生进位时为1,否则为0.AF auxiliary carry flag辅助进位标志运算时,第3位向第4位产生进位时为1,否则为0.PF parity flag奇偶标志运算结果操作数位为1的个数为偶数个时为1,否则为0.DF direcion flag方向标志用于串处理.DF=1时,每次操作后使SI和DI减小.DF=0时则增大. IF interrupt flag中断标志IF=1时,允许CPU响应可屏蔽中断,否则关闭中断.TF trap flag陷阱标志用于调试单步操作.。
(完整word版)汇编指令英文全称,推荐文档
loop not zero
JCXZ
jump when CX is zero
JECXZ
jump when ECX is zero
4、中断指令
指令
英文全称
INT
interrupt
INTO
overflow interrupt
IRET
interrupt return
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
PUSHD
push dwordflag
POPD
pop dwordflag
2、运算指令
1、算术运算指令
指令
英文全称
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
汇编语言名词解释
汇编语言名词解释汇编语言(Assembly Language)是一种低级机器语言的替代方案,用于编写计算机程序。
它与高级语言紧密相关,并且提供了对计算机底层硬件的直接控制。
为了更好地理解汇编语言的概念和术语,下面对一些汇编语言的常见名词进行解释。
1. 汇编器(Assembler):汇编器是一种将汇编语言代码转换为机器语言代码的编译器。
它将汇编语言中的助记符(Mnemonics)和操作码(Opcode)翻译成二进制指令,供计算机执行。
2. 助记符(Mnemonics):助记符是汇编语言中用来表示指令、寄存器和内存地址的短词或符号。
它们与机器语言的操作码一一对应,使得程序更易读和理解。
3. 寄存器(Register):寄存器是位于CPU内部的高速存储区,用于保存和处理数据。
汇编语言中的寄存器通常用英文缩写表示,如AX (累加寄存器)、BX(基址寄存器)、CX(计数寄存器)等。
4. 指令(Instruction):指令是一种用于执行特定操作的命令。
在汇编语言中,指令由助记符和操作数组成,用于完成诸如数据传输、算术运算、控制流等任务。
5. 操作码(Opcode):操作码是指令中用来表示具体操作的二进制代码。
每个操作码对应一条机器指令,控制CPU执行相应的操作。
6. 地址模式(Addressing Mode):地址模式描述了访问内存数据或寄存器数据的方式。
常见的地址模式包括直接寻址、间接寻址、寄存器寻址等,通过不同的地址模式可以灵活地访问和操作数据。
7. 标志位(Flag):标志位是指一组标志位寄存器中的特殊位,用来记录某些特定的条件或状态。
在汇编语言中,程序可以通过设置或读取标志位来进行条件跳转、控制程序流程。
8. 异常处理(Exception Handling):异常处理是指处理由硬件或软件引发的异常情况,如除数为零、非法指令、内存溢出等。
汇编语言提供了特定的指令和异常处理机制,用于捕获和处理异常情况。
常见汇编命令英文缩写
常见汇编命令英文缩写通用寄存器:AX,BX,CX,DX。
段寄存器:代码段寄存器CS--code segment , 数据段寄存器DS--data segment , 堆栈段寄存器SS--stack segment ,附加段寄存器ES--extra segment 。
特殊功能寄存器:指令指针寄存器IP--instruction pointer ,堆栈指针SP--stack pointer ,基址指针BP--base pointer ,源变址寄存器SI--source index ,目标变址寄存器DI--destination index ,标志寄存器FR--flag register(或者叫程序状态字PSW--program status word)。
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----> moveMOVSX---->extended move with sign dataMOVZX---->extended move with zero dataPUSH---->pushPOP---->popPUSHA---->push allPOPA---->pop allPUSHAD---->push all dataPOPAD---->pop all dataBSWAP---->byte swapXCHG---->exchangeCMPXCHG---->compare and changeXADD---->exchange and addXLAT---->translate2.输入输出端口传送指令.IN---->inputOUT---->output3.目的地址传送指令.LEA---->load effective addressLDS---->load DSLES---->load ESLFS---->load FSLGS---->load GSLSS---->load SS4.标志传送指令.LAHF---->load AH from flagSAHF---->save AH to flagPUSHF---->push flagPOPF---->pop flagPUSHD---->push dflagPOPD---->pop dflag二、算术运算指令ADD---->addADC---->add with carryINC---->increase 1AAA---->ascii add with adjustDAA---->decimal add with adjustSUB---->substractSBB---->substract with borrowDEC---->decrease 1NEC---->negativeCMP---->compareAAS---->ascii adjust on substractDAS---->decimal adjust on substract MUL---->multiplicationIMUL---->integer multiplicationAAM---->ascii adjust on multiplication DIV---->divideIDIV---->integer divideAAD---->ascii adjust on divideCBW---->change byte to wordCWD---->change word to double wordCWDE---->change word to double word with sign to EAXCDQ---->change double word to quadrate word三、逻辑运算指令———————————————————————————————————————AND---->andOR---->orXOR---->xorNOT---->notTEST---->testSHL---->shift leftSAL---->arithmatic shift leftSHR---->shift rightSAR---->arithmatic shift rightROL---->rotate leftROR---->rotate rightRCL---->rotate left with carryRCR---->rotate right with carry四、串指令———————————————————————————————————————MOVS---->move stringCMPS---->compare stringSCAS---->scan stringLODS---->load stringSTOS---->store stringREP---->repeatREPE---->repeat when equalREPZ---->repeat when zero flagREPNE---->repeat when not equalREPNZ---->repeat when zero flagREPC---->repeat when carry flagREPNC---->repeat when not carry flag五、程序转移指令———————————————————————————————————————1>无条件转移指令(长转移)JMP---->jumpCALL---->callRET---->returnRETF---->return far2>条件转移指令(短转移,-128到+127的距离内) JAE---->jump when above or equalJNB---->jump when not belowJB---->jump when belowJNAE---->jump when not above or equalJBE---->jump when below or equalJNA---->jump when not aboveJG---->jump when greaterJNLE---->jump when not less or equalJGE---->jump when greater or equalJNL---->jump when not lessJL---->jump when lessJNGE---->jump when not greater or equal JLE---->jump when less or equalJNG---->jump when not greaterJE---->jump when equalJZ---->jump when has zero flagJNE---->jump when not equalJNZ---->jump when not has zero flagJC---->jump when has carry flagJNC---->jump when not has carry flagJNO---->jump when not has overflow flag JNP---->jump when not has parity flagJPO---->jump when parity flag is oddJNS---->jump when not has sign flagJO---->jump when has overflow flagJP---->jump when has parity flagJPE---->jump when parity flag is evenJS---->jump when has sign flag3>循环控制指令(短转移)LOOP---->loopLOOPE---->loop equalLOOPZ---->loop zeroLOOPNE---->loop not equalLOOPNZ---->loop not zeroJCXZ---->jump when CX is zeroJECXZ---->jump when ECX is zero4>中断指令INT---->interruptINTO---->overflow interruptIRET---->interrupt return5>处理器控制指令HLT---->haltWAIT---->waitESC---->escapeLOCK---->lockNOP---->no operationSTC---->set carryCLC---->clear carryCMC---->carry make changeSTD---->set directionCLD---->clear directionSTI---->set interruptCLI---->clear interrupt六、伪指令—————————————————————————————————————DW---->definw wordPROC---->procedureENDP---->end of procedureSEGMENT---->segmentASSUME---->assumeENDS---->end segmentEND---->end。
cbnz汇编指令
cbnz汇编指令CBNZ汇编指令是一种条件分支指令,用于根据条件来决定程序执行的路径。
CBNZ指令的全称是Compare and Branch if Not Zero,意为比较并在非零时跳转。
下面将详细介绍CBNZ指令的功能和使用方法。
CBNZ指令用于在比较结果非零时执行跳转操作。
它通常与CMP指令配合使用,CMP指令用于进行比较运算,而CBNZ指令则根据比较结果来决定是否跳转到指定的目标地址。
CBNZ指令的语法格式如下:CBNZ <寄存器>, <目标地址>其中,<寄存器>是需要进行比较的寄存器,<目标地址>是需要跳转到的地址。
当<寄存器>中的值非零时,程序将跳转到<目标地址>处继续执行。
下面通过一个简单的例子来说明CBNZ指令的使用方法。
假设我们有一个程序,需要判断一个寄存器R0中的值是否为零,如果不为零,则跳转到标签A处执行。
我们需要使用CMP指令将R0与零进行比较,结果保存在标志寄存器中。
然后,使用CBNZ指令根据比较结果进行跳转。
```CMP R0, #0 ; 比较R0和零CBNZ R0, A ; 如果R0不为零,则跳转到标签A处执行```在上述示例中,如果R0的值为零,则程序将继续执行下一条指令;如果R0的值不为零,则程序将跳转到标签A处继续执行。
CBNZ指令在程序中的应用非常广泛。
例如,在循环中,我们可以使用CBNZ指令来判断循环条件是否满足,从而决定是否继续循环。
另外,在条件判断语句中,我们也可以使用CBNZ指令来根据条件的满足情况执行不同的代码块。
CBNZ指令是一种非常有用的条件分支指令,可以根据比较结果来决定程序执行的路径。
通过合理使用CBNZ指令,我们可以编写出高效、灵活的汇编程序。
希望本文对你理解CBNZ指令的功能和使用方法有所帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编指令的英文全称
虽然,知不知道汇编语言指令的英文全称,并不影响血编程,不过,要是真学会了,连指令的英文都不知道也够别扭滴哈~,罗列出来,给大家参考参考。
8086CPU提供以下几大类指令。
一、数据传送指令
mov(move)、push、pop、pushf(push flags)、popf(pop flags)、xchg (exchange)等都是数据传送指令,这些指令实现寄存器和内存、寄存器和寄存器之间的单个数据传送。
二、算术运算指令
add、sub(substract)、adc(add with carry)、sbb(substract with borrow)、inc(increase)、dec(decrease)、cmp(compare)、imul(integer multiplication)、idiv(integer divide)、aaa(ASCII add with adjust)等都是算术运算指令,这些指令实现寄存器和内存中的数据运算。
它们的执行结果影响标志寄存器的sf、zf、of、cf、pf、af位。
三、逻辑指令
and、or、not、xor(exclusive or)、test、shl(shift logic left)、shr(shift logic right)、sal(shift arithmetic left)、sar(shift arithmetic right)、rol(rotate left)、ror(rotate right)、rcl(rotate left through carry)、rcr(rotate right through carry)等都是逻辑指令。
除了not指令外,它们的执行结果都影响标志寄存器的相关标志位。
四、转移指令
可以修改IP,或同时修改CS和IP的指令统称为转移指令。
转移指令分为一下几类。
(1)无条件转移指令:jmp(jump);
(2)条件转移指令:jcxz(jump if CX is zero)、je(jump if equal)、jb(jump if below)、ja(jump if above)、jnb(jump if not below)、jna(jump if not above)等;
(3)循环指令:loop;
(4)过程:call、ret(return)、retf(return far);
(5)中断:int(interrupt)、iret(interrupt return)。
五、处理机控制指令
cld(clear direction)、std(set direction)、cli(clear interrupt)、sti(set interrupt)、nop(no operation)、clc(clear carry)、cmc(carry make change)、stc(set carry)、hlt(halt)、wait、esc(escape)、lock等,这些指令对标志寄存器
或其他处理机状态进行设置。
六、串处理指令
这些指令对内存中的批量数据进行处理,如:movsb(move string byte)、movsw (move string word)、cmps(compare string)、scas(scan string)、lods (load string)、stos(store string)等。
若要使用这些指令方便地进行批量数据处理,则需要和rep(repeat)、repe(repeat if equal)、repne(repeat if not equal)等前缀指令配合使用。
七、8086CPU寄存器英文全称
1、通用寄存器
AX(accumulator)、BX(base)、CX(count)、DX(data)这些寄存器可以字(16位)或字节(8位)单位形式访问;
SP(stack pointer)、BP(base pointer)、SI(source index)、DI(destination index),这些寄存器只能以字(16位)单位形式访问。
2、专用寄存器
IP(instruction pointer)、SP(stack pointer);
FLAGS又称PSW(program status word)分为:
①条件码
OF(overflow)、SF(sign)、ZF(zero)、CF(carry)、AF(auxiliary)、PF (parity)
②控制标志
DF(direction)
③系统标志位
TF(trap)、IF(interrupt)、IOPL(I/O privilege level)
3、段寄存器
CS(code)、DS(data)、SS(stack)、ES(extra)。