汇编指令符号大全

汇编指令符号大全
汇编指令符号大全

80X86 汇编指令符号大全

+、-、*、/∶算术运算符。

&∶宏处理操作符。宏扩展时不识别符号和字符串中的形式参数,如果在形式参数前面加上一个& 记号,宏汇编程序就能够用实在参数代替这个形式参数了。

$∶地址计数器的值——记录正在被汇编程序翻译的语句地址。每个段均分配一个计数器,段内定义的所有标号和变量的偏移地址就是当前汇编地址计数器的值。

?∶操作数。在数据定义语句中,操作数用?,其作用是分配并保留存储空间,但不存入确定的数据。

=∶等号伪指令——符号定义。对符号进行定义和赋值,功能与EQU相似,但允许(重复)再定义。

:∶修改属性运算符(操作符)——段操作符。用来临时给变量、标号或地址表达式指定一个段属性(不用缺省的段寄存器),自动生成一个“跨段前缀字节”。注意,段寄存器CS和ES 不能被跨越,堆栈操作时也不能跨越SS。

;∶注释符号。

%∶特殊宏操作符,用来将其后的表达式(通常是符号常数,不能是变量名和寄存器名)转换成它所代表的数值,并将此数值的ASCII码嵌入到宏扩展中。

( )∶1.运算符——用来改变运算符的优先级别。2.教材符号,表示括号内存储单元(或寄存器)的内容。

< >∶宏调用时用来将带间隔符(如空格,逗号等)的字符串(作为实参)括起来。

[ ]∶1.运算符。方括号括起来的数是数组变量的下标或地址表达式。带方括号的地址表达式必须遵循下列原则,①只有BX、BP、SI、DI这四个寄存器可在方括号内出现;②BX或BP 可单独出现在各方括号中,也可以与常数、SI或DI一起出现在方括号内,但不允许BX和BP出现在同一个方括号内;③SI和DI可以单独出现在各方括号内,也可以与常数、BP或BX一起出现在方括号内,但不允许SI和DI出现在同一个方括号内;④一个方括号内包含多个寄存器时,它们只能作加法运算;⑤若方括号内包含基址指针BP,则隐含使用堆栈段寄存器SS提供段基址,否则均隐含使用数据段寄存器DS提供段基址。2.教材符号,表示其中的内容可省略。

.LIST∶伪指令。用于打开列表文件输出。

.RADIX∶伪指令。把缺省的基数改为2-16范围内的任意基数。.RADIX不影响DD、DQ、DT伪指令,在这些伪指令中,输入的数值只要没有加上数据类型就认为是十进制数。

.XLIST∶伪指令。用于关闭列表文件输出。

%OUT∶伪指令。在汇编时显示其后的信息。

AAA∶指令助记符——加法运算后的ASCII调整(非压缩的BCD码)。无操作数,调整的

加法结果在AL中。AF和CF的状态改变说明结果大于9。检查AL的低四位是否为合法的

BCD码(0-9),如果合法就清除AL的高四位以及AF和CF标志。当AL的低四位表示的数

大于9或AF=1时,将AL加6,AH加1 ,并使AF和CF置位,清除AL中的高四位。

任何一个A—F之间的数加上6 以后,都会使AL低4位产生0-9之间的数,从而达到调整

的目的。

AAD∶指令助记符——除法的ASCII调整(非压缩的BCD码)。在执行除法操作前,必须

利用AAD指令将非压缩型BCD码表示的数转换成二进制数送AL。步骤是,先将被除数的

高位数(AH中的内容)乘以10,然后加到AL的低位数中,接着将AH清零。

AAM∶指令助记符——乘法的ASCII调整(非压缩的BCD码)。用于将字节乘法的积转换

成两个合法的十进制非压缩码。AAM不带操作数,假定成绩在AH和AL中,并将调整后的

非压缩码送回AH和AL。为了保证AAM得到正确的结果,原乘数和被乘数必须是合法的非

压缩码。指令执行时,AAM 用10(0AH)除AL寄存器,并将除得的商和余数分别送AH

和AL寄存器,实现转换。

AAS∶指令助记符——减法运算后的ASCII调整(非压缩的BCD码)。检查AL的低四位

是否为合法的BCD码(0-9),如果合法就清除AL的高四位以及AF和CF标志。当AL的

低四位表示的数大于9或AF=1时,将AL减6,AH减1 ,并使AF和CF置1,清除

AL中的高四位。

80X86 汇编指令符号大全(下)

JLE∶指令助记符——(有符号数比较)小于或等于转移(等价于JNG)。当SF和OF异号或ZF=1时转移(段内直接短转移)。

JMP∶指令助记符——无条件转移。无条件转移到指令所指示的目标地址,并从该地址开始执行。

目标地址可以从指令中直接得到,也可以从指令中给定的寄存器或存储器中得到。

一、段内直接短转移JMP SHORT 标号。标号是转移的目的地址,由它确定一个8位位移量。

这个位移量被加到IP寄存器中。位移量是一个带符号数,负数表示向前转移,正数表示向后转移。

转移范围是—128至+127。

二、段内直接近转移JMP NEAR PTR 标号。标号是转移的目的地址,由它确定一个16位位

移量。这个位移量被加到IP寄存器中。位移量是一个带符号数,负数表示向前转移,正数表示向后转移。转移范围是—32768至+32767。

三、段内间接转移①JMP AX (段内寄存器间接转移);②JMP [BX](段内存储器间接转移)。

将指令中给定的寄存器或存储单元中的内容送到IP中。

四、段间直接转移JMP FAR PTR 标号。标号为符号地址。

JNB∶无符号数条件转移指令助记符——(无符号数比较)不低于转移(等价JAE)。CF=0,或

ZF=1 则转移(段内直接短转移)。

JNBE∶无符号数条件转移指令助记符——(无符号数比较)不低于且不等于转移(等价JA)。CF=0,且ZF=0 则转移(段内直接短转移)。

JNC∶简单条件转移指令助记符——前次操作无进或进位位转移。CF=0 则转移(段内直接短转移)。

JNE∶简单条件转移指令助记符——不相等转移(同JNZ)。前次操作结果不等于0,ZF=0 则转移(段内直接短转移)。

JNG∶指令助记符——(有符号数比较)不大于转移(等价于JLE)。当SF和OF异号或ZF=1时转移(段内直接短转移)。

JNGE∶指令助记符——(有符号数比较)不大于且不等于转移(等价于JL)。当SF和OF异号,且ZF=0 时转移(段内直接短转移)。

JNL∶指令助记符——(有符号数比较)不小于时转移(等价于JGE)。当SF和OF同号,或ZF =1,则转移(段内直接短转移)。

JNLE∶指令助记符——(有符号数比较)不小于且不等于转移(等价JG)。SF和OF同号,且ZF =0 时转移。

JNO∶简单条件转移指令助记符——前次操作无溢出转移。OF=0 则转移(段内直接短转移)。

JNP∶简单条件转移指令助记符——奇校验转移。PF=0 则转移(段内直接短转移)。

JNS∶简单条件转移指令助记符——前次操作结果为正数转移。SF=0 则转移(段内直接短转移)。

JNZ∶简单条件转移指令助记符——不相等转移(同JNE)。ZF=0 则转移(段内直接短转移)。

JO∶简单条件转移指令助记符——前次操作溢出转移。OF=1 则转移(段内直接短转移)。

JP∶简单条件转移指令助记符——偶校验转移。前次操作结果中1的个数是偶数,PF=1 则转移(段内直接短转移)。

JPE∶简单条件转移指令助记符——偶校验转移。前次操作结果中1的个数是偶数,PF=1 则转移(段内直接短转移)。

JPO∶简单条件转移指令助记符—奇校验转移。PF=0 则转移(段内直接短转移)。

JS∶简单条件转移指令助记符——前次操作结果为负数转移。SF=1 则转移(段内直接短转移)。

JZ∶简单条件转移指令助记符——相等转移(同JE)。ZF=1 则转移(段内直接短转移)。

LABLE∶定义符号名伪指令——为当前存储单元定义一个指定类型的变量或标号。

一、LABLE 与变量连用。

例TIMB LABLE BYTE

TIMW DW 4142H第一句给第二句定义的字变量TIMW取一个新名字TIMB,并且修改类型属性为字节。以后如果以字类型访问该变量时,应使用变量名TIMW,以字节类型访问该变量时,应使用变量名TIMB。

二、LABLE 与标号连用。

例POINTF LABLE FAR POINTN:MOV AX,[BX+SI]第一句给第二句隐含定义的近标号POINTN取一个新名字POINTF,并将类型属性修改为FAR 。这样就允许作为

其他代码段中转移或调用指令的目标标号(这时标号是POINTF)。

LAHF∶指令助记符——标志寄存器(PSW)低8位内容送AH中。

LDS∶指令助记符——取地址指针到数据段寄存器。要求源操作数是一个双字长存储器操作数,目的操作数是16位通用寄存器、指针或变址寄存器,但不能是段寄存器。指令执行时,双字长存储器操作数中的低地址传送到指定的寄存器中,高地址传送到DS寄存器中。

例:LDS SI,DATA_SEG[DI] 由DATA_SEG[DI]可以得到在数据段的有效地址EA(即段内偏移量)。在EA和EA+2中存放着目标指针。EA存放的是目标指针的段内偏移量,送至SI;EA+2存放的是目标指针的段地址,送至DS。

例:变量名一DD 变量名二

......

LDS SI 变量名一

变量名二所在数据段的EA和段地址存放在变量名一中,EA送至SI,EA+2存放的段地址送至DS。

LE∶关系运算符——小于等于。若满足条件,输出结果为全1(所有的位),否则为全0 。

LEA∶指令助记符——取有效地址。将存储器操作数的偏移地址传送到通用寄存器、指针或变址寄存器中。该指令常用来建立串操作指令所需要的寄存器指针。

例一LEA SI,变量名(与MOV SI OFFSET 变量名等效);

例二LEA AX,[AX] (将SI所指存储单元的EA送至AX,而MOV AX,[SI]送的是该存储单元存放的内容)

LENGTH∶数值返回运算符。其加在一个变量名前面,返回的数值是数组变量的元素个数。如果变量是用DUP 说明的,则返回DUP前面的数值;如果没有DUP 说明的,则返回的值总是1。

LES∶指令助记符——取地址指针到数据段寄存器。要求源操作数是一个双字长存储器操作数,目的操作数是16位通用寄存器、指针或变址寄存器,但不能是段寄存器。指令执行时,双字长存储器操作数中的低地址传送到指定的寄存器中,高地址传送到ES寄存器中。

LDCK∶指令助记符——封锁总线。加在任何指令前面的单字节前缀指令,配合用来维持总线的锁存信号,直到与其配合的指令执行完为止。

LOCAL∶宏指令——局部符号(变量,标号)定义。在宏扩展时,汇编程序给LOCAL 后的形式参数指定特殊的符号,然后用这些符号替换宏指令体中LOCAL 指出的形式参数。这样可避免这些符号在多次调用宏时发生重复定义。

LODS∶指令助记符——装入串。一般用LODSB或LODSW。

LODSB∶指令助记符——字节装入(从字节串中取数)。它将DS段SI指出的字节数据送入AL寄存器中,并根据方向标志DF修改SI中的地址。即当DF=0时,地址加1 ;DF= 1 时,地址减1 。

LODSW∶指令助记符——字装入(从字串中取数)。它将DS段SI指出的字数据送入AX寄存器中,并根据方向标志DF修改SI中的地址。即当DF=0 时,地址加2 ;DF=1 时,地址减2 。

LOOP∶指令助记符——循环控制。每执行一次,CX的内容减1 ,若减1 后不为0 ,则转移到目标地址;否则,执行LOOP之后的指令。

LOOPE∶指令助记符——循环控制(等于LOOPZ)。每执行一次,CX的内容减1,若减1 后不为0 ,且ZF=1,则转移到目标地址;否则,执行LOOPE 之后的内容。

LOOPZ∶指令助记符——循环控制(等于LOOPE)。每执行一次,CX的内容减1 ,若减1 后不为0 ,且ZF=1,则转移到目标地址;否则,执行LOOPZ 之后的内容。

LOOPNE∶指令助记符——循环控制(等于LOOPNZ)。每执行一次,CX的内容减1 ,若减1 后不为0 ,且ZF=0,则转移到目标地址;否则,执行LOOPNE之后的内容。

LOOPNZ∶指令助记符——循环控制(等于LOOPNE)。每执行一次,CX的内容减1 ,若减1 后不为0 ,且ZF=0,则转移到目标地址;否则,执行LOOPNZ之后的内容。

LOW∶字节分解运算符(操作符)。用来从运算对象(一个数或地址表达式)中分离出(取)低字节。

LT∶关系运算符——小于。若满足条件,输出结果为全1 (所有的位),否则为全0 。

MACRO∶宏指令——宏定义。

MASK∶运算符。使得记录中指定字段各位均为1 ,其他各位均为0 。

MEMORY∶伪指令——段定义(组合类型)。该段在存储器中应该定位在所有其他段的最高地址。如果不止一个段选用MEMORY方式,则把第一个遇到的段作MEMORY处理,而其他段均作COMMON 方式处理。

MOD∶算术运算符——模除(取整除后的余数)。

MOV∶指令助记符——通用数据传送。注意,①两个段寄存器之间不能直接传送数据;②两个储存单元之间不能直接传送数据(可以用MOVS);两个操作数中必须有一个是寄存器或立即数;③立即数和段寄存器CS不能作为目的操作数。

MOVS∶指令助记符——串传送。与MOVSB和MOVSW相似,但必须说明数据串类型(字或字节)。

MOVSB∶指令助记符——串(字节)传送。把由SI指向的数据段中的一个字节数据传送到由DI 指向的附加段内一个字节存储单元中去,并同时根据方向标志对SI和DI中的地址进行修改。当DF =0时,地址都加1 ;当DF=1时,地址都减1 。

MOVSW∶指令助记符——串(字)传送。把由SI指向的数据段中的一个字数据传送到由DI指向的附加段内一个字存储单元中去,并同时根据方向标志对SI和DI中的地址进行修改。当DF=0时,地址都加2 ;当DF=1时,地址都减2 。

MUL∶指令助记符——无符号数乘法。字节乘法:(AL)*(源操作数)->AX 字乘法:(AX)*(源操作数)->DX和AX

若结果的高半部分(AH或DX,对应字节和字)为非0 值,则CF和OF置1;否则CF和OF 清0。

NAME∶伪指令——模块定义。程序将对给定的程序模块取模块名。格式是,NAME 模块名。汇编处理时,一个模块就是一个独立的汇编单位。汇编处理只进行到模块结束语句END 为止。如果该模块是主模块,END 语句可以指出一个标号,它表示该程序的启动地址。

NE∶关系运算符——不等。若满足条件,输出结果为全1 (所有的位),否则为全0 。

NEG∶指令助记符——求补。将目的操作数的每一位求反(包括符号位)后加1.若在字节操作时对—128,或在字操作时对—32768取补,则操作数不变,但溢出标志OF置位。操作数可以是寄存器或存储器单元,但不能是段寄存器或立即数。结果送回目的操作数。执行结果不但影响标志位AF、CF、OF、PF、SF和ZF,而且一般总是置CF=1 (除非操作数为0)。

NONE∶伪指令——段定义(组合类型)。本段与其它段逻辑上不发生关系,每段都有自己的基地址。这是隐含的组合类型。

NOP∶指令助记符——空操作。用于程序调试。

NOT∶逻辑运算符(在语句的操作数部分)或逻辑操作指令助记符(在语句的操作码部分)——按位非(求反)。将目的地址中的内容逐位取反后再送入目的地址中。

OF∶Overflow Flag, 溢出标志,在标志寄存器的第11字节。在运算过程中,如操作数超出了机器能表示的范围,此时OF 置1。作加法时,OF位是根据操作数的符号及其结果情况来设置的,若两个操作数的符号相同,而结果的符号与之相反时,OF置1,否则置0。

OFFSET∶数值返回运算符。其加在一个变量名或标号前面,返回的数值是该变量名或标号所在的段的偏移地址。

OPD∶教材符号--目的操作数。

OPR∶教材符号--源操作数。

OR∶逻辑运算符(在语句的操作数部分)或逻辑操作指令助记符(在语句的操作码部分)——按位或。进行“或”运算的两位中任一位是1,则结果为1 。

ORG∶伪指令——定位(置汇编地址计数器)。在每段源程序或数据块的开始,指明此语句后面的程序或数据块的起始地址,其余指令或数据就连续存放在以后的地址单元中。

例一ORG $+10 表示跳过10个字节。

例二ORG 数值表达式(值为0-65535)表示$改为数值表达式的值。

OUT∶指令助记符——输出。把AX或AL中的内容传送到一个输出端口。寻址方式与IN相同。

PA∶教材符号--某一存储单元的物理地址。对于指令,PA=(CS)左移4位+(IP);

对于堆栈段数据,PA=(SS)左移4位+(SP);或PA=(SS)左移4位+(BP);

对于数据段和附加数据段数据,PA=(DS或ES)+该变量的偏移地址。

PARA∶伪指令——段定义(定位类型方式)。规定在定位时每个段的起始地址总是16的整倍数,最后四位二进制数一定是0 。这种定位方式最简单,但段间往往有空隙(最多为15个字节)。缺省定位方式是按PARA定位。

PAGE∶①伪指令——段定义(定位类型方式)。要求段起始地址是256的整倍数,即段的边界必须是页的边界。段地址的最低两位(16进制数)必须是0 。②伪指令——格式控制。指定汇编程序所产生的列表文件每页多少行(10—255),每行多少字符(60-132)。或指定输出新的一页(用+号)。

PF∶Parity Flag,奇偶标志,在标志寄存器的第2字节,当运算结果(指低8位)中1的个数为偶数时置1,否则置0。该标志主要用来检测数据在传输过程中的错误。

POP∶指令助记符——出栈。将栈顶元素弹出送至某一寄存器,段寄存器(CS除外)或存储器中。首先将SP指的内容送至低8位,SP加1;再将SP指的内容送入高8位,SP再加1。

POPF∶指令助记符——将堆栈顶端的字数据送入标志寄存器。对于TF和OF置位可先将数值置于AX中,压入堆栈,再用POPF送入标志寄存器。此方式对TF和OF标志位是唯一可行的置位方法。

PROC∶伪指令——过程(子程序)定义(起始)。定义一个子程序,并说明它是NEAR或FAR 过程。定义的过程如果由DOS直接装入并启动执行,则该过程必须定义为FAR过程。

PSW∶Program Status Word,程序状态字寄存器,由条件码标志(OF、SF、ZF、AF、PF、CF)和控制标志(DF、IF、TF)构成。

11109876420

─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐

│OF│DF│IF│TF│SF│ZF││AF││PF││CF│

─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘

PTR∶修改属性运算符。用来明确指出变量、标号或地址表达式的类型属性(只在所在的指令内有

效)。类型放在PTR 之前,可以是BYTE、WORD、DWORD、NEAR、FAR。

PUBLIC∶①伪指令——段定义(组合类型)。该段与其它模块中说明为PUBLIC类型的同名同'类别'段组合起来,形成一个物理段(小于等于64K),公用一个段基址,②伪指令——定义全局符号。表示该模块中定义的哪些符号常量、变量、标号以及过程名(几个模块公用的过程一般都是FAR 过程)等可以被其他模块所引用。

PURGE∶宏指令——取消宏定义。

PUSH∶指令助记符——进栈。把寄存器,段寄存器中的一个字数据压入堆栈。高8位先进,SP减1;低8位后进,SP再减1。

PUSHF∶指令助记符——把标志寄存器的内容压入堆栈。在子程序调用和中断服务中可用来保护标志位(恢复用POPF)。

RCL∶指令助记符——带进位循环左移。

格式为:RCL 目的操作数,1

或RCL 目的操作数,CL(其中CL中存放的是移动次数)

┌─┐┌───────────────┐

┌│CF│←│←─────────────│←┐

│└─┘└───────────────┘│

└───────────────────────┘

RCR∶指令助记符——带进位循环右移。

┌───────────────┐┌─┐

┌→│─────────────→│→│CF│─┐

│└───────────────┘└─┘│

└───────────────────────┘

RECORD∶伪指令——设计一个单字节或双字节的记录格式。指令格式为,

记录名RECORD 字段名1:=表达式,字段名2:=表达式……

记录定义后,必须利用初始化记录的方法来定义存储器变量,格式为,

变量名记录名<表达式,表达式,……>

或变量名记录名数量DUP(<表达式,……>)

REP∶指令助记符——重复前缀。它可以使串指令反复执行(CX不等于0 就执行),每执行一次,CX的内容减1 。

REPE∶指令助记符——重复前缀。当两串相等,即ZF=1时,它可以使串指令反复执行(CX不等于0 就执行),每执行一次,CX的内容减1 。(与REPZ完全一样)

REPNE∶指令助记符——重复前缀。当两串不相等,即ZF=0时,它可以使串指令反复执行(CX 不等于0 就执行),每执行一次,CX的内容减1 。(与REPNZ完全一样)

REPNZ∶指令助记符——重复前缀。当两串不相等,即ZF=0时,它可以使串指令反复执行(CX 不等于0 就执行),每执行一次,CX的内容减1 。(与REPNE完全一样)

REPT∶宏指令——重复块(以ENDM结束)。

格式为:REPT 重复次数

重复块

ENDM

这种宏指令用于确定重复次数。

REPZ∶指令助记符——重复前缀。当两串相等,即ZF=1时,它可以使串指令反复执行(CX不等于0 就执行),每执行一次,CX的内容减1 。(与REPE完全一样)

RET∶指令助记符——返回。

一、段内返回。先将栈顶的字送入IP,然后SP增2 。若带立即数,SP再加立即数(丢弃一些在执行CALL之前入栈的参数)。

二、段间返回。栈顶的字送入IP后(SP增2),再将栈顶的字送入CS,SP再增2 。若带立即数,则SP再加立即数。

ROL∶指令助记符——循环左移。

格式为:ROL 目的操作数,1

或ROL 目的操作数,CL(其中CL中存放的是移动次数)

┌─┐┌───────────────┐

│CF│←┬│←─────────────│←┐

└─┘│└───────────────┘│

└──────────────────┘

ROR∶指令助记符——循环右移。

┌───────────────┐┌─┐

┌→│─────────────→│┬→│CF│

│└───────────────┘│└─┘

└──────────────────┘

SAHF∶指令助记符——将AH 寄存器的内容送入标志寄存器(PSW)的低字节中,标志寄存器高八位保持不变。

SAL∶指令助记符——带符号数的算术左移。经常用来乘以2。

格式为:SAL目的操作数,1

当移位次数大于1时,则移位次数应预先置于CL寄存器中。

格式为:SAL目的操作数,CL

┌─┐┌───────────────┐

│CF│←│←─────────────│←0

└─┘└───────────────┘

如果符号位发生变化时,就将1送到OF标志,表示移位前操作数的最高位与移位后的最高位不同。

SAR∶指令助记符——带符号数的算术右移。符号位保持不变。经常用来除以2。当移位次数大于1时,则移位次数应预先置于CL寄存器中。

┌───────────────┐┌─┐

┌→│─────────────→│→│CF│

│└───────────────┘└─┘

└──┘

SBB∶指令助记符——带借位减法(减去CF的值)。用于多字节减法运算。两高位字相减,并减去低位的借位CF。

SCAS∶指令助记符——串搜索(扫描)。通常用SCASB或SCASW。

SCASB∶指令助记符——字节串扫描(搜索)。用AL寄存器中的内容与由ES段DI指定的一个字节数据进行比较(减),若相等(结果为0),ZF=1 。并依方向标志DF的值修改DI中的地址,即DF=0 ,地址加1 ;DF=1 ,地址减1。

SCASW∶指令助记符——字串扫描(搜索)。用AX寄存器中的内容与由ES段DI 指定的一个字数据进行比较(减),若相等(结果为0),ZF=1 。并依方向标志DF的值修改DI中的地址,即DF=0 ,地址加2 ;DF=1 ,地址减2。

SEG∶数值返回运算符。其加在一个变量名或标号前面,返回的数值是该变量名或标号所在的段基址(段寄存器的内容)。

SEGMENT∶段定义伪指令。格式为段名SEGMENT [定位方式][组合方式]['类别']。在定义段的时候,还可以在SEGMENT 语句中给出该段的类别,类别名是一个用单括号括起来的字符串。进行连接处理时,LINK程序把类别名相同的所有段放在连续的存储区域内。同类的各个段在连接时,先出现的在前,后出现的在后。

SF∶Sign Flag,符号标志,在标志寄存器的第7字节.记录运算结果的符号,结果为负时置1。

SHL∶

一、算术运算符——左移(移1位相当于乘以2)。

二、指令助记符——无符号数的逻辑左移。经常用来乘以2。当移位次数大于1 时,则移位次数应预先置于CL寄存器中,写成“SHL OPD CL”。

┌─┐┌───────────────┐

│CF│←| ←─────────────│←0

└─┘└───────────────┘

SHORT∶属性运算符(操作符)。用来指定JMP 指令中转向地址的属性,指出转向(目标)地址与本指令地址的字节距离在-128到+127之间。

SHR∶

一、算术运算符——右移(移1位相当于除以2)。

二、指令助记符——无符号数的逻辑右移。经常用来除以2。当移位次数大于1时,则移位次数应预先置于CL寄存器中,写成“SHR …,CL”。

┌───────────────┐┌─┐

0→│─────────────→│→│CF│

└───────────────┘└─┘

SI∶Source Index,源变址寄存器。与DS联用,用来确定数据段中某一存储单元的偏移地址。在串处理指令中,SI指出源操作数的地址,隐含段为当前的数据段。

SIZE∶数值返回运算符。其加在一个变量前面,返回的是数组变量所占的总字节数(LENGTH和TYPE返回值的乘积)。

test属于逻辑运算指令

功能: 执行BIT与BIT之间的逻辑运算

测试(两操作数作与运算,仅修改标志位,不回送结果).

Test对两个参数(目标,源)执行AND逻辑操作,并根据结果设置标志寄存器,结果本身不会

保存。EST AX,BX 与AND AX,BX 命令有相同效果

语法: TEST r/m,r/m/data

影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0)

运用举例:

1.Test用来测试一个位,例如寄存器:

test eax, 100b; b后缀意为二进制

jnz ******; 如果eax右数第三个位为1,jnz将会跳转

我是这样想的,jnz跳转的条件是ZF=0,ZF=0意味着ZF(零标志)没被置位,即逻辑与结果

为1.

2.Test的一个非常普遍的用法是用来测试一方寄存器是否为空:

test ecx, ecx

jz somewhere

如果ecx为零,设置ZF零标志为1,Jz跳转

************************************************************** *****************

CMP属于算术运算指令

功能: 比较两个值(寄存器,内存,直接数值)

语法: CMP r/m,r/m/data

标志位: C,P,A,Z,O

CMP比较.(两操作数作减法,仅修改标志位,不回送结果).

cmp实际上是只设置标志不保存结构的减法,并设置Z-flag(零标志).

零标志很像carry,也是内部标志寄存器的一位.

例如:

Cmp eax, 2; 如果eax-2=0即eax=2就设置零标志为1

Jz ****; 如果设置了零标志就跳转

我得出的结论

test逻辑与运算结果为零,就把ZF(零标志)置1;

cmp 算术减法运算结果为零,就把ZF(零标志)置1.

天正建筑命令大全整理篇详解

天正建筑命令快捷键大全一 1 轴网菜单 2 重排轴号CPZH 改变图中一组轴线编号,该组编号自动进行重新排序 3 4 倒排轴号DPZH 倒排轴线编号,适用于特定方向的立剖面轴线绘制 5 单轴变号DZBH 只改变图中单根轴线的编号 6 绘制轴网HZZW 包括旧版本的直线轴网和弧线轴网 7 两点轴标LDZB 选择起始轴与结束轴标注其中各轴号与尺寸 8 墙生轴网QSZW 在已有墙中按墙基线生成定位轴线 9 删除轴号SQZH 在已有轴网上删除轴号, 其余轴号自动重排 10 添补轴号TBZH 在已有轴号基础上,关联增加新轴号 添加径轴TJJZ 在已有圆弧轴网上添加新的径向轴线,并插入轴号 11 12 添加轴线TJZX 在已有轴网基础上增加轴线,并插入轴号 13 绘制轴网HZZW 包括旧版本的直线轴网和弧线轴网 逐点轴标ZDZB 逐个选择轴线,标注不相关的多个轴号 14 15 轴线裁剪ZXCJ 用矩形或多边形裁剪轴网的一部分 轴改线型ZGXX 切换轴线的线型 16 墙体菜单 17 边线对齐BXDQ 墙基线不变, 墙线偏移到过给定点 18 19 单线变墙DXBQ 将已绘制好的单线或者轴网转换为双线表示的墙对象 20 倒墙角DQJ 将转角墙按给定半径倒圆角生成弧墙或将墙角交接好 21 等分加墙DFJQ 将一段墙按轴线间距等分, 垂直方向加墙延伸到给定边界 22 改墙厚GQH 批量改墙厚: 墙基线不变,墙线一律改为居中 23 改外墙高GWQG 修改已定义的外墙高度与底标高, 自动将内墙忽略 24 改外墙厚GWQH 注意修改外墙墙厚前, 应先进行外墙识别,否则命令不会执行 25 绘制墙体HZQT 连续绘制双线直墙、弧墙,包括幕墙、弧墙、矮墙、虚墙等墙类型 26 墙保温层JBWC 在墙线一侧添加保温层或撤销保温层 27 加亮外墙JLWQ 亮显已经识别过的外墙 28 矩形立面JXLM 在立面显示状态, 将非矩形的立面部分删除, 墙面恢复矩形 29 净距偏移JJPY 按墙体净距离偏移平行生成新墙体 30 平行生线PXSX 在墙任意一侧, 按指定偏移距离生成平行的线或弧 31 墙面UCS QMUCS 临时定义一个基于所选墙面(分侧)的UCS, 在指定视口转为立面显示32 墙端封口QDFK 打开和闭合墙端出头的封口线 33 墙体造型QTZX 构造平面形状局部凸出的墙体,附加在墙上形成一体 34 识别内外SBNW 自动识别内外墙, 适用于一般情况 35 修墙角XQJ 清理互相交叠的两道墙或者更新融合同材质的墙与墙体造型 36 异型立面YXLM 在立面显示状态, 将墙按给定的轮廓线切割生成非矩形的立面 37 指定内墙ZDNQ 人工识别内墙, 用于内天井、局部平面等无法自动识别的情况 38 指定外墙ZDWQ 人工识别外墙, 用于内天井、局部平面等无法自动识别的情况门窗菜单 39 40 编号复位BHFW 把用户移动过的门窗编号恢复到默认位置

汇编语言入门

汇编语言入门教程 对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?――Here we go!(阅读时看不懂不要紧,下文必有分解) 因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提) CPU是可以执行电脑所有算术╱逻辑运算与基本I/O 控制功能的一块芯片。一种汇编语言只能用于特定的CPU。也就是说,不同的CPU其汇编语言的指令语法亦不相同。个人电脑由1981年推出至今,其CPU发展过程为:8086→80286→80386→80486→PENTIUM →……,还有AMD、CYRIX等旁支。后面兼容前面CPU的功能,只不过多了些指令(如多能奔腾的MMX指令集)、增大了寄存器(如386的32位EAX)、增多了寄存器(如486的FS)。为确保汇编程序可以适用于各种机型,所以推荐使用8086汇编语言,其兼容性最佳。本文所提均为8086汇编语言。寄存器(Register)是CPU内部的元件,所以在寄存器之间的数据传送非常快。用途:1.可将寄存器内的数据执行算术及逻辑运算。2.存于寄存器内的地址可用来指向内存的某个位置,即寻址。3.可以用来读写数据到电脑的周边设备。8086 有8个8位数据寄存器,这些8位寄存器可分别组成16位寄存器:AH&AL=AX:累加寄存器,常用于运算;BH&BL=BX:基址寄存器,常用于地址索引;CH&CL=CX:计数寄存器,常用于计数;DH&DL=DX:数据寄存器,常用于数据传递。为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器CS,DS,SS 来指向这些起始位置。通常是将DS固定,而根据需要修改CS。所以,程序可以在可寻址空间小于64K的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在DS 所指的64K内,这就是COM文件不得大于64K的原因。8086以内存做为战场,用寄存器做为军事基地,以加速工作。除了前面所提的寄存器外,还有一些特殊功能的寄存器:IP(Intruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程;SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。BP(Base Pointer):基址指针寄存器,可用作SS 的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。还有一个标志寄存器FR(Flag Register),有九个有意义的标志,将在下文用到时详细说明。 内存是电脑运作中的关键部分,也是电脑在工作中储存信息的地方。内存组织有许多可存放

C语言指令汇总

●一、数据传送类指令 指令格式功能简述字节数周期 MOV A,Rn 寄存器送累加器1 1 MOV Rn,A 累加器送寄存器1 1 MOV A ,@Ri 内部RAM单元送累加器1 1 MOV @Ri ,A 累加器送内部RAM单元1 1 MOV A ,#data 立即数送累加器2 1 MOV A ,direct 直接寻址单元送累加器2 1 MOV direct ,A 累加器送直接寻址单元2 1 MOV Rn,#data 立即数送寄存器2 1 MOV direct ,#data 立即数送直接寻址单元3 2 MOV @Ri ,#data 立即数送内部RAM单元2 1 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换1 1 XCH A ,@Ri 累加器与内部RAM单元交换1 1 XCHD A ,direct 累加器与直接寻址单元交换2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换1 1 SWAP A 累加器高4位与低4位交换1 1 POP direct 栈顶弹出指令直接寻址单元2 2 PUSH direct 直接寻址单元压入栈顶2 2 ●算术运算类指令 ADD A,Rn 累加器加寄存器1 1 ADD A,@Ri 累加器加内部RAM单元1 1 ADD A,direct 累加器加直接寻址单元2 1 ADD A,#data 累加器加立即数2 1 ADDC A,Rn 累加器加寄存器和进位标志1 1 ADDC A,@Ri 累加器加内部RAM单元和进位标志1 1 ADDC A,#data 累加器加立即数和进位标志2 1 ADDC A,direct 累加器加直接寻址单元和进位标志2 1 INC A 累加器加1 1 1 INC Rn 寄存器加1 1 1 INC direct 直接寻址单元加1 2 1 INC @Ri 内部RAM单元加1 1 1 INC DPTR 数据指针加1 1 2 DA A 十进制调整1 1 SUBB A,Rn 累加器减寄存器和进位标志1 1 SUBB A,@Ri 累加器减内部RAM单元和进位标志1 1 SUBB A,#data 累加器减立即数和进位标志2 1

(完整word版)汇编语言常用指令大全,推荐文档

MOV指令为双操作数指令,两个操作数中必须有一个是寄存器. MOV DST , SRC // Byte / Word 执行操作: dst = src 1.目的数可以是通用寄存器, 存储单元和段寄存器(但不允许用CS段寄存器). 2.立即数不能直接送段寄存器 3.不允许在两个存储单元直接传送数据 4.不允许在两个段寄存器间直接传送信息 PUSH入栈指令及POP出栈指令: 堆栈操作是以“后进先出”的方式进行数据操作. PUSH SRC //Word 入栈的操作数除不允许用立即数外,可以为通用寄存器,段寄存器(全部)和存储器. 入栈时高位字节先入栈,低位字节后入栈. POP DST //Word 出栈操作数除不允许用立即数和CS段寄存器外, 可以为通用寄存器,段寄存器和存储器. 执行POP SS指令后,堆栈区在存储区的位置要改变. 执行POP SP 指令后,栈顶的位置要改变. XCHG(eXCHanG)交换指令: 将两操作数值交换. XCHG OPR1, OPR2 //Byte/Word 执行操作: Tmp=OPR1 OPR1=OPR2 OPR2=Tmp 1.必须有一个操作数是在寄存器中 2.不能与段寄存器交换数据 3.存储器与存储器之间不能交换数据. XLAT(TRANSLATE)换码指令: 把一种代码转换为另一种代码. XLAT (OPR 可选) //Byte 执行操作: AL=(BX+AL) 指令执行时只使用预先已存入BX中的表格首地址,执行后,AL中内容则是所要转换的代码. LEA(Load Effective Address) 有效地址传送寄存器指令 LEA REG , SRC //指令把源操作数SRC的有效地址送到指定的寄存器中. 执行操作: REG = EAsrc 注: SRC只能是各种寻址方式的存储器操作数,REG只能是16位寄存器 MOV BX , OFFSET OPER_ONE 等价于LEA BX , OPER_ONE MOV SP , [BX] //将BX间接寻址的相继的二个存储单元的内容送入SP中 LEA SP , [BX] //将BX的内容作为存储器有效地址送入SP中 LDS(Load DS with pointer)指针送寄存器和DS指令 LDS REG , SRC //常指定SI寄存器。 执行操作: REG=(SRC), DS=(SRC+2) //将SRC指出的前二个存储单元的内容送入指令中指定的寄存器中,后二个存储单元送入DS段寄存器中。

photoshop快捷键命令大全汇总

photoshop快捷键命令大全汇总一、文件: 新建【CTRL】+【N】 打开【CTRL】+【O】 打开为【ALT】+【CTRL】+【O】 关闭【CTRL】+【W】 保存【CTRL】+【S】 另存为【CTRL】+【SHIFT】+【S】 另存为网页格式【CTRL】+【ALT】+【S】 打印设置【CTRL】+【ALT】+【P】 页面设置【CTRL】+【SHIFT】+【P】 打印【CTRL】+【P】 退出【CTRL】+【Q】 二、编辑: 撤消【CTRL】+【Z】

向前一步【CTRL】+【SHIFT】+【Z】 向后一步【CTRL】+【ALT】+【Z】 退取【CTRL】+【SHIFT】+【F】 剪切【CTRL】+【X】 复制【CTRL】+【C】 合并复制【CTRL】+【SHIFT】+【C】 粘贴【CTRL】+【V】 原位粘贴【CTRL】+【SHIFT】+【V】 自由变换【CTRL】+【T】 再次变换【CTRL】+【SHIFT】+【T】 色彩设置【CTRL】+【SHIFT】+【K】 三、图象 调整→色阶【CTRL】+【L】 调整→自动色阶【CTRL】+【SHIFT】+【L】 调整→自动对比度【CTRL】+【SHIFT】+【ALT】+【L】

调整→曲线【CTRL】+【M】 调整→色彩平衡【CTRL】+【B】 调整→色相/饱和度【CTRL】+【U】 调整→去色【CTRL】+【SHIFT】+【U】调整→反向【CTRL】+【I】 提取【CTRL】+【ALT】+【X】 液化【CTRL】+【SHIFT】+【X】 四、图层 新建图层【CTRL】+【SHIFT】+【N】 新建通过复制的图层【CTRL】+【J】 与前一图层编组【CTRL】+【G】 取消编组【CTRL】+【SHIFT】+【G】 合并图层【CTRL】+【E】 合并可见图层【CTRL】+【SHIFT】+【E】

█━ 黑块字符画2 ━█ (字符画大全,符号图案,YY频道设计,YY特殊符号,YY频道符号,文字图案)

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶██████████顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶████████████████顶顶顶顶顶顶顶顶顶顶顶顶顶顶████顶顶██████████顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶████████顶顶██顶顶顶████顶顶顶顶顶顶顶顶顶顶顶█████████████顶顶顶顶顶顶顶███顶顶顶顶顶顶顶顶顶顶顶顶███████████顶顶顶顶顶顶顶顶█████████顶顶顶顶顶顶顶顶█████████顶顶顶顶顶顶顶顶████████████顶顶顶顶顶顶顶█顶顶顶████顶顶顶顶顶顶████顶顶顶顶顶█████顶顶顶顶顶顶顶顶顶顶顶顶███顶顶顶顶顶顶██顶顶顶█顶顶顶顶███顶顶顶顶顶顶顶顶顶顶顶顶顶███顶顶顶顶顶███顶顶顶██顶顶顶███顶顶顶顶顶顶顶顶顶顶顶顶顶███顶顶顶顶顶███顶顶顶██顶顶顶███顶顶顶顶顶顶顶顶顶顶顶顶顶███顶顶顶顶顶███顶顶███顶顶顶███顶顶顶顶顶顶顶顶顶顶顶顶顶███顶顶顶顶顶███顶顶███顶顶顶███顶顶顶顶顶顶顶顶顶顶顶顶顶███顶顶顶顶顶███顶顶███顶顶顶███顶顶顶顶顶顶顶顶顶顶顶顶顶███顶顶顶顶顶███顶顶███顶顶顶███顶顶顶顶顶顶顶顶顶顶顶顶顶███顶顶顶顶顶██顶顶顶██顶顶顶顶███顶顶顶顶顶顶顶顶顶顶顶顶顶███顶顶顶顶顶██顶顶顶██顶顶顶顶███顶顶顶顶顶顶顶顶████████顶顶顶顶顶顶█顶顶██顶顶顶顶████顶顶顶顶顶顶顶顶顶███████顶顶顶顶顶顶顶顶顶██顶顶█顶顶顶██顶顶顶顶顶顶顶顶顶顶顶█████顶顶顶顶顶顶顶顶███顶顶████顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶███顶顶顶顶顶顶顶████顶顶顶██████顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶█████顶顶顶顶顶██████顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶████顶顶顶顶顶顶顶顶█████顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶█████顶顶顶顶顶顶顶顶顶顶████顶顶顶 ◣◢◣◢ \??/ -≡◢████◣≡- -≡██████≡- /◥████◤\ ∪∪..............凡走过,必留下我的足迹。 ◢██◣ █⊙⊙█ ◤◥◤◥ ◢?▂▂▂◣ ◤︼◥ ╲▁▁╱ ╯╜╙╰ ┏━━━━━━━┓ ┏┫|||┣┓┏┓ ┗┫━━┃━━┣┛┣┫ ┃━━━━━┃┏┳┫┣┳┓ ┗━━━┳━━━┛┃┃ ┏━━▇▇▇━━━━━┻━━━━┛ ┃▇▇▇ ┃▇▇▇ ┗┃Ψ┃ ┃┃

DSP汇编指令总结

DSP汇编指令总结 一、寻址方式: 1、立即寻址: 短立即寻址(单指令字) 长立即数寻址(双指令字) 第一指令字 第二指令字 16位常数=16384=4000h 2、直接寻址 ARU 辅助寄存器更新代码,决定当前辅助寄存器是否和如何进行增或减。N规定是否改变ARP值,(N=0,不变)

4.3.1、算术逻辑指令(28条) 4.3.1.1、加法指令(4条); 4.3.1.2、减法指令(5条); 4.3.1.3、乘法指令(2条); 4.3.1.4、乘加与乘减指令(6条); 4.3.1.5、其它算数指令(3条); 4.3.1.6、移位和循环移位指令(4条); 4.3.1.7、逻辑运算指令(4条); 4.3.2、寄存器操作指令(35条) 4.3.2.1、累加器操作指令(6条) 4.3.2.2、临时寄存器指令(5条) 4.3.2.3、乘积寄存器指令(6条) 4.3.2.4、辅助寄存器指令(5条) 4.3.2.5、状态寄存器指令(9条) 4.3.2.6、堆栈操作指令(4条) 4.3.3、存储器与I/O操作指令(8条)4.3.3.1、数据移动指令(4条) 4.3.3.2、程序存储器读写指令(2条) 4.3.3.3、I/O操作指令(2条) 4.3.4、程序控制指令(15条) 4.3.4.1、程序分支或调用指令(7条) 4.3.4.2、中断指令(3条) 4.3.4.3、返回指令(2条) 4.3.4.4、其它控制指令(3条)

4.3.1、算术逻辑指令(28条) 4.3.1.1、加法指令(4条); ▲ADD ▲ADDC(带进位加法指令) ▲ADDS(抑制符号扩展加法指令) ▲ADDT(移位次数由TREG指定的加法指令) 4.3.1.2、减法指令(5条); ★SUB(带移位的减法指令) ★SUBB(带借位的减法指令) ★SUBC(条件减法指令) ★SUBS(减法指令) ★SUBT(带移位的减法指令,TREG决定移位次数)4.3.1.3、乘法指令(2条); ★MPY(带符号乘法指令) ★MPYU(无符号乘法指令) 4.3.1.4、乘加与乘减指令(6条); ★MAC(累加前次积并乘)(字数2,周期3) ★MAC(累加前次积并乘) ★MPYA(累加-乘指令) ★MPYS(减-乘指令) ★SQRA(累加平方值指令) ★SQRS(累减并平方指令) 4.3.1.5、其它算数指令(3条); ★ABS(累加器取绝对值指令) ★NEG(累加器取补码指令) ★NORM(累加器规格化指令) 返回 4.3.1.6、移位和循环移位指令(4条); ▲ SFL(累加器内容左移指令) ▲ SFR(累加器内容右移指令) ▲ROL(累加器内容循环左移指令) ▲ROR(累加器内容循环右移指令) 返回 4.3.1.7、逻辑运算指令(4条); ▲ AND(逻辑与指令) ▲ OR(逻辑或指令) ▲ XOR(逻辑异或指令) ▲ CMPL(累加器取反指令) 返回 4.3.2、寄存器操作指令(35条) 4.3.2.1、累加器操作指令(6条)

CMD常用命令大全(最新整理)

说起cmd大家都很熟悉吧很有用哦这里我为大家接扫常见的命令 dos命令[只列出我们工作中可能要用到的] cd\ '返回到根目录 cd.. '返回到上一级目录 1、cd 显示当前目录名或改变当前目录。 2、dir 显示目录中的文件和子目录列表。 3、md 创建目录。 4、del 删除一或数个文件。 5、chkdsk 检查磁盘并显示状态报告。 6、cacls 显示或者修改文件的访问控制表(ACL) 7、copy 将一份或多份文件复制到另一个位置。 8、date 修改日期 9、format 格式化磁盘 10、type 显示文本文件的内容。 11、move 移动文件并重命名文件和目录。 12、expand 展开一个或多个压缩文件。 13、ren 重命名文件。 14、attrib 显示或更改文件属性。 15、time 显示或设置系统时间。 16、at at命令安排在特定日期和时间运行命令和程序。要使用AT 命令,计划服务必须已在运行中。 17、net [user],[time],[use] 多,自己去查 18、netstat 显示协议统计和当前tcp/ip连接 19、nbtstat 基于NBT(net bios over tcp/ip)的协议统计和当前tcp/ip连接 20、route 操作和查看网络路由表 21、ping 就不说了,大家都熟悉吧 22、nslookup 域名查找 23、edit 命令行下的文本编辑器 24、netsh强大的命令行下修改tcp/ip配置的工具 25、fdisk 相信现在用的人比较少了,不过在没有其他工具的情况,他还是有用的 更多: attrib 设置文件属性 ctty 改变控制设备 defrag 磁盘碎片整理 doskey 调用和建立DOS宏命令 debug 程序调试命令

(完整word版)汇编语言指令集合-吐血整理,推荐文档

8086/8088指令系统记忆表 数据寄存器分为: AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据. BH&BL=BX(base):基址寄存器,常用于地址索引; CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器. DH&DL=DX(data):数据寄存器,常用于数据传递。他们的特点是,这4个16位的寄存器可以分为高8位: AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器可以分别寻址,并单独使用。 另一组是指针寄存器和变址寄存器,包括: SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置; BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置; SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针; DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。 指令指针IP(Instruction Pointer) 标志寄存器FR(Flag Register) OF(overflow flag) DF(direction flag) CF(carrier flag) PF(parity flag) AF(auxiliary flag) ZF(zero flag) SF(sign flag) IF(interrupt flag) TF(trap flag) 段寄存器(Segment Register) 为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址: CS(Code Segment):代码段寄存器; DS(Data Segment):数据段寄存器; SS(Stack Segment):堆栈段寄存器;

(整理)广州数控指令代码大全

广州数控指令代码大全 2011-01-31 02:13 GSK980TA/D编程教材 《一》编程的基本概念 《二》常用G代码介绍 《三》单一固定循环 《四》复合型固定循环 《五》用户宏程序 《六》螺纹加工 《七》T代码及刀补 《八》F代码及G98、G99 《九》S代码及G96、G97 (注意:本教材仅供学习参考,实际操作编程时应以广数 GSK980T车床数控系统使用手册为准)2007年9月 《一》编程的基本概念: 一个完整的车床加工程序一般用于在一次装夹中按工艺要求完成对工件的加工,数控程序包括程序号、程序段。 (一)程序号:相当于程序名称,系统通过程序号可从存储器中多个程序中识别所要处理的程序,程序号由字母O及4位数字组成。

(二)程序段:相当于一句程序语句,由若干个字段组成,最后是一个分号(;)录入时在键入EOB键后自动加上。整个程序由若干个程序段构成,一个程序段用来完成刀具的一个或一组动作,或实现机床的一些功能。 (三)字段(或称为字):由称为“地址”的单个英语字母加若干位数字组成。根据其功能可分成以下几种类型的字段: ▲程序段号:由字母N及数字组成,位于程序段最前面,主要作用是使程序便于阅读,可以省略,但某些特殊程序段(如表示跳转指令的目标程序段)必须标明程序段号。 为了便于修改程序时插入新程序段,各句程序段号一般可间隔一些数字(如N0010、N0020、N0030)。 ▲准备功能:即G代码,由字母G及二位数字组成,大多数G 代码用以指示刀具的运动。(如G00、G01、G02) ▲表示尺寸(坐标值)的字段:一般用在G代码字段的后面,为表示运动的G代码提供坐标数据,由一个字母与坐标值(整数或小数)组成。字母包括: 表示绝对坐标:X、Y、Z 表示相对坐标:U、V、W 表示园心坐标:I、 J、 K (车床实际使用的坐标只有X、Z,所以Y、V、J都用不着) ▼表示进给量的字段:用字母F加进给量值组成,一般用在插补指令的程序段中,规定了插补运动的速度。

特殊符号组成的图片、图案、图形

特殊符号组成的图片、图案、图形 ..____.╭╮╭╮.____... .._...╭-┴┴?╮_...... .._...│?︵│_...... ...※※※╰?--?╯※※※.... .......欢迎光临........ ......? 无限透明?... ︻︼︽︾?↑↓?⊙?〇?¤??■▓「」『』????▼▽????? ?№↑↓→←↘↙Ψ※㊣∑⌒∩【】〕〖@ξζω□∮〒※》∏卐√ ╳々??∞①ㄨ≡╬╭╮╰╯╱╲ ╭∞━━━╮.oо? ┃┃ ┃● ●┃ ┃﹋ε ﹋┃ ○━━━━╯ (o'.'o))╲╱(-'.'-) (~)_(~)`)~ `(~)_(~) ╭-╮╭-╮ ?┃┃┃ ┃゛”゛┃ ┃┃┃┃ ミ~~ · ~~ミ ╰━┳━┳━╯ ╭┫┣╮ —┺┻┻┻┹— ┏━┓┏━┓ ?│┃┃│┃ ┃│┗灬┛│┃ ┃┃ ┃^ ^ ┃ ﹌ˇ ﹌ ┗○━━━○┛ ╭^^?╮ {/ ..\} ( (oo) ) │ z╭╮╭﹌╮。 z(o-.-o)(o-.-o) .oО ╭~﹊} ̄~﹊} ̄~、 ┋﹏、 z╭╮╭﹌╮。 z(o-.-o)(o-.-o) .oО

╭~﹊} ̄~﹊} ̄~、 ┋﹏、 ╭%╮╭%╮ (@^o^@) (@^o^@) (~):(~) (~):(~) █████? █田█田█ █田█田█ █田█田█ █田█田█ █田█田█ ?██□██?● *?∵??▄??.?∵∴?.?∵∴ ∴??█████?* ?.∴?∵?* ? ??████?██?.∴天气冷了,? ?■?█████?█?.送你一件毛衣,* ? ??∴█████.??∵小心别著凉了哦! [color=Red]?══╗ ╔?╔╗╔╗ ╚╗╔╝ ║║╔═╦╦╦═?║?╝╠═╦╦╗ ╔╝╚╗ ║╚╣║║║║╠╣ ╚╗╔╣║║║?←我就是爱尼♀♂ ╚═?╝ ╚═╩?╩═╩═╝ ╚╝?═╩═╝ ╦╦ ══ ╔╬╬╗ ═╬═ ╔╗ ╔══╗ ╚╩╩╝ ╦╩╦ ═ ╚╝ ╔╗╠══╝ ╬╬ ╩╦╩ ╦╯╔╦╗ ║║╠╦══ ╰╬ ═╬═ ╣?╠╬╣ ╚╝║╚╦╣ ╚╩╝ ╯╬ ═╩═ ╭╮╭?╭——╮╭╮?╮╭———╮╭╮ ││ │││╭—?││ ││ ?╭—╮│││ │╰—╯││╰╮││ ││ ││ ││││ │╭—╮││╭╯││ ││ ││ ││╰╯ ││ │││╰—╮│╰——╮│╰——╮│╰—╯│ ? ╰?╰╯╰——╯?———╯?———╯╰———?.....∵∴?.∴∵∴╭╯╭╯╭╯╭╯∴∵∴∵∴.?.∵∴∵.∴∵∴▍▍▍▍▍▍▍▍??∵∴▍.∴∵∴∵.∴▅███████████??∵ ?█▅▅▅▅███▅█▅█▅█▅█▅█▅███? .?███████████████████? ....?████████████████■? ╭┴┴—————┴┴╮ │ │\|/

AVRmega8汇编指令汇总.

指令集概述 指令操作数说明操作标志 # 时钟数 算数和逻辑指令 ADD Rd, Rr 无进位加法Rd ← Rd + Rr Z,C,N,V,H 1 ADC Rd, Rr 带进位加法Rd ← Rd + Rr + C Z,C,N,V,H 1 ADIW Rdl,K 立即数与字相加Rdh:Rdl ← Rdh:Rdl + K Z,C,N,V,S 2 SUB Rd, Rr 无进位减法Rd ← Rd - Rr Z,C,N,V,H 1 SUBI Rd, K 减立即数Rd ← Rd - K Z,C,N,V,H 1 SBC Rd, Rr 带进位减法Rd ← Rd - Rr - C Z,C,N,V,H 1 SBCI Rd, K 带进位减立即数Rd ← Rd - K - C Z,C,N,V,H 1 SBIW Rdl,K 从字中减立即数Rdh:Rdl ← Rdh:Rdl - K Z,C,N,V,S 2 AND Rd, Rr 逻辑与Rd ← Rd ? Rr Z,N,V 1 ANDI Rd, K 与立即数的逻辑与操作Rd ← Rd ? K Z,N,V 1 OR Rd, Rr 逻辑或Rd ← Rd v Rr Z,N,V 1 ORI Rd, K 与立即数的逻辑或操作Rd ← Rd v K Z,N,V 1 EOR Rd, Rr 异或Rd ← Rd ⊕ Rr Z,N,V 1 COM Rd 1 的补码Rd ← 0xFF ? Rd Z,C,N,V 1 NEG Rd 2 的补码Rd ← 0x00 ? Rd Z,C,N,V,H 1 SBR Rd,K 设置寄存器的位Rd ← Rd v K Z,N,V 1

CBR Rd,K 寄存器位清零Rd ← Rd ? (0xFF - K Z,N,V 1 INC Rd 加一操作Rd ← Rd + 1 Z,N,V 1 DEC Rd 减一操作Rd ← Rd ? 1 Z,N,V 1 TST Rd 测试是否为零或负Rd ← Rd ? Rd Z,N,V 1 CLR Rd 寄存器清零Rd ← Rd ⊕ Rd Z,N,V 1 SER Rd 寄存器置位Rd ← 0xFF None 1 MUL Rd, Rr 无符号数乘法R1:R0 ← Rd x Rr Z,C 2 MULS Rd, Rr 有符号数乘法R1:R0 ← Rd x Rr Z,C 2 MULSU Rd, Rr 有符号数与无符号数乘法 R1:R0 ← Rd x Rr Z,C 2 FMUL Rd, Rr 无符号小数乘法R1:R0 ← (Rd x Rr << 1 Z,C 2 FMULS Rd, Rr 有符号小数乘法R1:R0 ← (Rd x Rr << 1 Z,C 2 FMULSU Rd, Rr 有符号小数与无符号小数乘法R1:R0 ← (Rd x Rr << 1 Z,C 2跳转指令 RJMP k 相对跳转PC ← PC + k + 1 无 2 IJMP 间接跳转到(Z PC ← Z 无 2 RCALL k 相对子程序调用PC ← PC + k + 1 无 3 ICALL 间接调用(Z PC ← Z 无 3 RET 子程序返回PC ← STACK 无 4 RETI 中断返回PC ← STACK I 4

用特殊符号组成的图案

用特殊符号组成的图案哦 既可爱,又漂亮的。。..____.╭╮╭╮.____....._...╭-┴┴★╮_...... .._...│◎︵│_...... ...※※※╰○--○╯※※※.... .......欢迎光临........ ......★无限透明★... 这个好像是小汽车 ╭∞━━━╮.oо◎ ┃┃ ┃●●┃ ┃﹋ε﹋┃ ○━━━━╯ 下边这几个是猪猪 ╭^^☆╮ {/..\} ((oo)) z╭╮╭﹌╮。 z(o-.-o)(o-.-o).oО ╭~﹊} ̄~﹊} ̄~、 ┋﹏、 ╭%╮╭%╮ (@^o^@)(@^o^@) (~):(~)(~):(~) 这个是个幸运瓶 ╭------╮*﹌瓶 ╰-╮╭-╯中有 ╭╯╰--╯╰╮一颗 |◢█◣◢█◣|爱心 |██████|*﹌送唷﹌* |◥████◤|给我 |◥██◤|的 |◥◤|父母 ╰============╯﹌* ╭------╮☆☆☆☆☆☆╭------╮ ╰╮学习成功╭╯◢█◣◢█◣╰╮天天开心╭╯ ╭╯╰--╯╰╮██天天██╭╯╰--╯╰╮ ║◢█◣◢█◣║◥█快乐█◤║◢█◣◢█◣║ ║██████║◥██◤║██████║ ║◥█真心█◤║◥◤║◥█祝福█◤║ ║◥██◤║☆☆☆☆☆☆║◥██◤║ ║◥◤║☆事事如意☆║◥◤║ ╰ ========= ╯☆☆☆☆☆╰ ======== ╯ 这是雪糕哦。

╭────╮╭────╮ │∴∴∴∴││∴∴∴∴│ │╱╲╱╲││╱╲╱╲│ │布∴★雪││布∴★雪│ │丁☆∴糕││丁☆∴糕│ ╰─││─╯╰─││─╯..||....||....│|....│|.. ..││....││.. ..╰╯....╰╯.. 这是棒棒糖 。。◣▲▲◢。。。 。◢████◣。。送你一支棒棒糖。██████。。 。◥████◤。。希望你每天都--- 。。◥██◤。。。 。。。◥◤。。。。开开心心 。草莓〔〕棒棒糖。 。。。〔〕。。。。甜甜蜜蜜 。。。〔〕。。。。 。。。〔〕。。。。醒醒目目 这个好像是心型的风铃 |◢█◣◢█◣–☆–█诚心诚意█ ∣◥████◤ ◥██◤ ◥◤ ◢█◣◢█◣▏◢█◣◢█◣ █珍贵友谊█▏█同甘共苦█ ◥████◤▏◥████◤ ◥██◤▏◥██◤ ◥◤▏◥◤ ∣◢█◣◢█◣ -☆-█分享快乐█ │◥████◤ ◥██◤ ◥◤ 这是小船哦。。 \|/ -◎- /|\ /▍︿︿ /▍\▍/▍

汇编语言指令汇总

汇编语言程序设计资料简汇 通用寄存器 8位通用寄存器8个:AL、AH、BL、BH、CL、CH、DL、DH。 16位通用寄存器8个:AX、BX、CX、DX、SI、DI、BP、SP。 AL与AH、BL与BH、CL与CH、DL与DH分别对应于AX、BX、CX和DX的低8位与高8位。专用寄存器 指令指针:IP(16位)。 标志寄存器:没有助记符(FLAGS 16位)。 段寄存器 段寄存器:CS、DS、ES、SS。 内存分段:80x86采用分段内存管理机制,主要包括下列几种类型的段: ?代码段:用来存放程序的指令序列。 ?数据段:用来存放程序的数据。 ?堆栈段:作为堆栈使用的内存区域,用来存放过程返回地址、过程参数等。 物理地址与逻辑地址 ?物理地址:内存单元的实际地址,也就是出现在地址总线上的地址。 ?逻辑地址:或称分段地址。 ?段地址与偏移地址都是16位。 ?系统采用下列方法将逻辑地址自动转换为20位的物理地址: 物理地址= 段地址×16 + 偏移地址 ?每个内存单元具有唯一的物理地址,但可由不同的逻辑地址描述。 与数据有关的寻址方式 立即寻址方式 立即寻址方式所提供的操作数紧跟在操作码的后面,与操作码一起放在指令代码段中。立即数可以是8位数或16位数。如果是16位数,则低位字节存放在低地址中,高位字节存放在高地址中。 例:MOV AL,18 指令执行后,(AL)= 12H 寄存器寻址方式 在寄存器寻址方式中,操作数包含于CPU的内部寄存器之中。这种寻址方式大都用于寄存器之间的数据传输。 例3:MOV AX,BX 如指令执行前(AX)= 6789H,(BX)= 0000H;则指令执行后,(AX)= 0000H,(BX)保持不变。 直接寻址方式 直接寻址方式是操作数地址的16位偏移量直接包含在指令中,和指令操作码一起放在代码段,而操作数则在数据段中。操作数的地址是数据段寄存器DS中的内容左移4位后,加上指令给定的16位地址偏移量。直接寻址方式适合于处理单个数据变量。 寄存器间接寻址方式 在寄存器间接寻址方式中,操作数在存储器中。操作数的有效地址由变址寄存器SI、DI或基址寄存器BX、BP提供。 如果指令中指定的寄存器是BX、SI、DI,则用DS寄存器的内容作为段地址。 如指令中用BP寄存器,则操作数的段地址在SS中,即堆栈段。

PIC8位单片机汇编语言常用指令的识读

PIC8位单片机汇编语言常用指令的识读(上) 各大类单片机的指令系统是没有通用性的,它是由单片机生产厂家规定的,所以用户必须遵循厂家规定的标准,才能达到应用单片机的目的。 PIC 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC 系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容。 在这里笔者介绍PIC 8位单片机汇编语言指令的组成及指令中符号的功能,以供初学者阅读相关书籍和资料时快速入门。 一、PIC汇编语言指令格式 PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下: 标号操作码助记符操作数1,操作数2;注释 指令格式说明如下:指令的4个部分之间由空格作隔离符,空格可以是1格或多格,以保证交叉汇编时,PC机能识别指令。 1 标号与MCS-51系列单片机功能相同,标号代表指令的符号地址。在程序汇编时,已赋以指令存储器地址的具体数值。汇编语言中采用符号地址(即标号)是便于查看、修改,尤其是便于指令转移地址的表示。标号是指令格式中的可选项,只有在被其它语句引用时才需派上标号。在无标号的情况下,指令助记符前面必须保留一个或一个以上的空格再写指令助记符。指令助记符不能占用标号的位置,否则该助记符会被汇编程序作标号误处理。 书写标号时,规定第一字符必须是字母或半角下划线“—”,它后面可以跟英文和数字字符、冒号(:)制符表等,并可任意组合。再有标号不能用操作码助记符和寄存器的代号表示。标号也可以单独占一行。 2 操作码助记符该字段是指令的必选项。该项可以是指令助记符,也可以由伪指令及宏命令组成,其作用是在交叉汇编时,“指令操作码助记符”与“操作码表”进行逐一比较,找出其相应的机器码一一代之。 3 操作数由操作数的数据值或以符号表示的数据或地址值组成。若操作数有两个,则两个操作数之间用逗号(,)分开。当操作数是常数时,常数可以是二进制、八进制、十进制或十六进制数。还可以是被定义过的标号、字符串和ASCⅡ码等。具体表示时,规定在二进制数前冠以字母“B”,例如B10011100;八进制数前冠以字母“O”,例如O257;十进制数前冠以字母“D”,例如D122;十六进制数前冠以“H”,例如H2F。在这里PIC 8位单片机默认进制是十六进制,在十六进制数之前加上Ox,如H2F可以写成Ox2F。 指令的操作数项也是可选项。 PIC系列与MCS-51系列8位单片机一样,存在寻址方法,即操作数的来源或去向问题。因PIC系列微控制器采用了精简指令集(RISC)结构体系,其寻址方式和指令都既少而又简单。其寻址方式根据操作数来源的不同,可分为立即数寻址、直接寻址、寄存器间接寻址和位寻址四种。所以PIC系列单片机指令中的操作数常常出现有关寄存器符号。有关的寻址实例,均可在本文的后面找到。 4 注释用来对程序作些说明,便于人们阅读程序。注释开始之前用分号(;)与其它部分相隔。当汇编程序检测到分号时,其后面的字符不再处理。值得注意:在用到子程序时应说明程序的入口条件、出口条件以及该程序应完成的功能和作用。 二、清零指令(共4条) 1 寄存器清零指令 实例:CLRW;寄存器W被清零 说明:该条指令很简单,其中W为PIC单片机的工作寄存器,相当于MCS-51系列单片机中的累加器A,CLR是英语Clear的缩写字母。 2 看门狗定时器清零指令。 实例:CLRWDT;看门狗定时器清零(若已赋值,同时清预分频器)

一些常用的汇编语言指令

汇编语言常用指令 大家在做免杀或者破解软件的时候经常要用到汇编指令,本人整理出了常用的 希望对大家有帮助! 数据传送指令 MOV:寄存器之间传送注意,源和目的不能同时是段寄存器;代码段寄存器CS不能作为目的;指令指针IP不能作为源和目的。立即数不能直接传送段寄存器。源和目的操作数类型要一致;除了串操作指令外,源和目的不能同时是存储器操作数。 XCHG交换指令:操作数可以是通用寄存器和存储单元,但不包括段寄存器,也不能同时是存储单元,还不能有立即数。 LEA 16位寄存器存储器操作数传送有效地址指令:必须是一个16位寄存器和存储器操作数。 LDS 16位寄存器存储器操作数传送存储器操作数32位地址,它的16位偏移地址送16位寄存器,16位段基值送入DS中。 LES :同上,只是16位段基址送ES中。 堆栈操作指令 PUSH 操作数,操作数不能使用立即数, POP 操作数,操作数不能是CS和立即数 标志操作指令 LAHF:把标志寄存器低8位,符号SF,零ZF,辅助进位AF,奇偶PF,进位CF传送到AH 指定的位。不影响标志位。 SAHF:与上相反,把AH中的标志位传送回标志寄存器。 PUSHF:把标志寄存器内容压入栈顶。 POPF:把栈顶的一个字节传送到标志寄存器中。 CLC:进位位清零。 STC:进位位为1。 CMC:进位位取反。 CLD:使方向标志DF为零,在执行串操作中,使地址按递增方式变化。 STD:DF为1。 CLI:清中断允许标志IF。Cpu不相应来自外部装置的可屏蔽中断。 STI:IF为1。 加减运算指令

注意:对于此类运算只有通用寄存器和存储单元可以存放运算结果。如果参与运算的操作数有两个,最多只能有一个存储器操作数并且它们的类型必须一致。 ADD。 ADC:把进位CF中的数值加上去。 INC:加1指令 SUB。 SBB:把进位CF中数值减去。 DEC:减1指令。 NEG 操作数:取补指令,即用0减去操作数再送回操作数。 CMP:比较指令,完成操作数1减去操作数2,结果不送操作数1,但影响标志位。可根据ZF(零)是否被置1判断相等;如果两者是无符号数,可根据CF判断大小;如果两者是有符号数,要根据SF和OF判断大小。 乘除运算指令 MUL 操作数:无符号数乘法指令。操作数不能是立即数。操作数是字节与AL中的无符号数相乘,16位结果送AX中。若字节,则与AX乘,结果高16送DX,低16送AX。如乘积高半部分不为零,则CF、OF为1,否则为0。所以CF和OF表示AH或DX中含有结果的有效数。IMUL 操作数:有符号数乘法指令。基本与MUL相同。 DIV 操作数:被除数是在AX(除数8位)或者DX和AX(除数16位),操作数不能是立即数。如果除数是0,或者在8(16)位除数时商超过8(16)位,则认为是溢出,引起0号中断。IDIV:有符号除法指令,当除数为0,活着商太大,太小(字节超过127,-127字超过32767,-32767)时,引起0号中断。 符号扩展指令 CBW,CWD:把AL中的符号扩展到寄存器AH中,不影响各标志位。CWD则把AX中的符号扩展到DX,同样不影响标志位。注意:在无符号数除之前,不宜用这两条指令,一般采用XOR 清高8位或高16位。 逻辑运算指令与位移指令 注意:只能有一个存储器操作数;只有通用寄存器或存储器操作数可作为目的操作数,用于存放结果;操作数的类型必须一致。 NOT:取反,不影响标志位。 AND 操作数1 操作数2:操作结果送错作数1,标志CF(进位)、OF(溢出)清0,PF(奇偶)ZF(0标志) SF(符号)反映运算结果,AF(辅助进位)未定义。自己与自己AND值不变,她主要用于将操作数中与1相与的位保持不变,与0相与清0。(都为1时为1)OR 操作数1 操作数2:自己与自己OR值不变,CF(进位)、OF(溢出)清0,PF(奇偶)ZF(0标志)SF(符号)反映运算结果,AF(辅助进位)未定义。她使用于将若干位置1:

相关文档
最新文档