汇编指令的英文全称

合集下载

(完整版)ARM汇编指令英文全称及功能描述V2.0

(完整版)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 文件(指令文件)是一种包含了计算机程序的指令和相关信息的文件。

它通常用于指导计算机或处理器执行特定的操作或任务。

以下是一些与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汇编指令对应英文全称

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

(完整版)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程序结束.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)。

相关文档
最新文档