汇编指令大全汇总

汇编指令大全汇总
汇编指令大全汇总

一、数据传输指令

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 累加器, )

OUT I/O端口输出. ( 语法: OUT ,累加器)

输入输出端口由立即方式指定时, 其范围是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) ROL循环左移.

ROR循环右移.

RCL通过进位的循环左移.

RCR通过进位的循环右移.

以上八种移位指令,其移位次数可达255次.

移位一次时, 可直接用操作码.如SHL AX,1. 移位>1次时, 则由寄存器CL给出移位次数. 如MOV CL,04

SHL 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>中断指令

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程序结束.

第一、数据寄存器(Data Register)

EAX 累加寄存器(accumulator), 常用于运算;用来存放操作数,所有的I/O指令用之与外界设备传送数据。

EBX 基址寄存器(base),常用于地址索引。

ECX 计数寄存器(count),用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器。

EDX 数据寄存器(data),常用于数据传递。

EAX的低十六位就是AX, AX可分解为AH(高八位)AL(低八位)[其它类似]。

第二、址寄存器(Index Register)

ESI 源变址寄存器(Source Index),用来存放相对于DS段之源变址指针。

EDI 目的变址寄存器(Destination Index),可用来存放相对于ES 段之目的变址指针。

第三、指针寄存器(Pointer Register),

EBP 基指针寄存器(Base Pointer),用它可直接存取堆栈中的数据;可用作SS的一个相对基址位置。

ESP 堆栈指针寄存器(Stack Pointer),用它只可访问栈顶;与SS配合使用。

第四、段寄存器()

CS 代码段寄存器(Code Segment);

DS 数据段寄存器(Data Segment);

SS 堆栈段寄存器(Stack Segment);

ES 附加段寄存器(Extra Segment)。

FS F段或F选择器。可作为默认段寄存器或选择器的一个替代品。可被装入任何数值,方法和DS类似。GS G段或G选择器(G的意义和F一样,没有在Intel的文档中解释)。它和FS几乎完全一样。

第五、指令指针寄存器(Instruction Pointer)

EIP 指令指针寄存器(Instruction Pointer),指向指令地址的段内地址偏移量,

又称偏移地址OA(Offset Address)或有效地址EA(Effective Address)

第六、标志寄存器(Flag Register)

EFR 标志寄存器(Flag Register),中有意义的有9位,其中6位是状态位,3位是控制位。

OF 溢出标志(overflow flag) 如果运算结果为溢出,OF的值被置为1,否则,OF的值被清为0。DF 方向标志(direction flag) 位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。

IF 中断允许标志(interrupt flag) 当IF=1[0] CPU可以[不]响应CPU外部的可屏蔽中断发出的中断请求;TF 跟踪标志(trap flag) 该标志可用于程序调试。为1单步执行指令,为0连续工作模式

SF 符号标志(sign flag) 运算结果为正数时,SF的值为0,否则其值为1

ZF 零标志(zero flag) 如果运算结果为0,则为1,否为0。

AF 辅助进位标志(auxiliary carry flag) 字[字节]操作发生进位或借位时为1,否则为0:

PF 奇偶标志(parity flag) 如果”1”的个数为偶数,则PF的值为1,否则其值为0。

CF 进位标志(carry flag) 如果运算结果的最高位产生了一个进位或借位,那么为1,否则为0。

——————————————————————————————————————

使用Debug,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。2011-11-03 14:11字单元:

字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。我们将起始地址为N的字单元简称为N地址字单元。比如一个字单元由2、3两个内存单元组成,称之为2地址字单元。

任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可看成是一个地址为N的字单元中的高位字节单元和低位字节单元。

DS和[address]:

CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址(段地址和偏移地址)。8086CPU的DS寄存器,通常用来存放要访问的数据的段地址。比如我们要读取10000H单元的内容,可以用如下的程序段进行:

mov bx,1000H //将段地址放入普通寄存器BX

mov ds,bx //经过BX的中转,将段地址放入DS

mov al,[0] //将1000:0中的数据传送到AL中

上面的三条指令将10000H(1000:0)的数据读到al中。

[0]中的0表示内存单元的偏移地址。我们知道,只有偏移地址是不能定位一个内存单元的,指令执行时,8086CPU自动取ds中的数据作为内存单元的段地址。

8086CPU不支持将数据直接送入段寄存器的操作(硬件设计的问题),DS是一个段寄存器,所以mov ds,1000H这条指令是非法的。想要将1000H送入DS,只好用一个寄存器进行中转,即先将1000H送入一个普通的寄存器,如BX,再将BX中的内容送入DS。

8086CPU是16位结构,有16根数据线,可以一次性传送16位的数据,也就是说可以一次性传送一个字。只要在MOV指令中给出16位的寄存器就可以进行16位数据的传送了。

MOV、ADD、SUB指令(这三个指令都带有两个操作对象,而像JMP指令只具有一个操作对象):

MOV指令可以有以下几种形式:

MOV 寄存器,数据MOV 寄存器,寄存器MOV 寄存器,内存单元MOV 内存单元,寄存器MOV 段寄存器,寄存器MOV 寄存器,段寄存器MOV 内存单元,段寄存器MOV 段寄存器,内存单元

ADD和SUB指令可以有以下几种形式:

ADD(SUB)寄存器,数据

ADD(SUB)寄存器,寄存器

ADD(SUB)寄存器,内存单元

ADD(SUB)内存单元,寄存器

注意,ADD和SUB不可以对段寄存器进行操作,比如“add ds,ax”这条指令是非法的。

小技巧:如果要清空AX清零,可以用命令“mov ax,0”也可以用命令“sub ax,ax”,后者是更好的方法,因为“mov ax,0”的机器码为3个字节,而“sub ax,ax”的机器码为2个字节。

数据段:

我们可以将一组长度为N(N≤64KB)、地址连续、起始地址为16的倍数的内存单元当作专门存储数据的内存空间,从而定义了一个数据段。比如用123B0H~123B9H这段内存空间来存放数据,我们就可以认为123B0H~123B9H这段内存是一个数据段,它的段地址为123BH,长度为10个字节。

将一段内存当作数据段,是我们在编程时的一种安排,可以在具体操作的时候,用DS存放数据段的段地址,再根据需要,用相关指令访问数据段中的具体单元。比如,将123B0H~123B9H的内存单元定义为数据段,现在要累加这个数据段中的前3个单元中的数据,代码如下:

mov ax,123BH //将数据段的段地址传送给AX

mov ds,ax //经AX中转将段地址传送给DS

mov al,0 //用AL存放累加结果

add al,[0] //将数据段的第一个单元(偏移地址为0)中的数值加到AL中

add al,[1] //将数据段的第二个单元(偏移地址为1)中的数值加到AL中

add al,[2] //将数据段的第三个单元(偏移地址为2)中的数值加到AL中

如果是要累加数据段中的前3个字型数据,代码如下:

mov ax,123BH //将数据段的段地址传送给AX

mov ds,ax //经AX中转将段地址传送给DS

mov ax,0 //用AX存放累加结果

add ax,[0] //将数据段的第一个字(偏移地址为0)中的数值加到AX中

add ax,[2] //将数据段的第二个字(偏移地址为2)中的数值加到AX中

add ax,[4] //将数据段的第三个字(偏移地址为4)中的数值加到AX中

注意,一个字型数据占两个单元,所以偏移地址是0、2、4。

mov ax,[bx]”的功能:BX中存放的数据作为一个偏移地址EA,段地址SA默认在DS中,将SA:EA处的数据送入AX中。

[bx]同样也表示一个内存单元,它的偏移地址在bx中,比如指令“mov ax,[bx]”,表示将一个内存单元的内容送入AX,这个内存单元的长度为2字节(字单元),偏移地址在BX中,段地址在DS中。

“mov al,[bx]”,表示将一个内存单元的内容送入AL,这个内存单元的长度为1字节(字节单元),偏移地址在BX中,段地址在DS中。

inc bx的含义是BX中的内容加1,比如:

mov bx,1

inc bx

执行后,bx=2。

LOOP指令:

loop指令的格式是:loop 标号,CPU执行LOOP指令的时候,要进行两步操作,①先将CX中的值减去1;②判断CX中的值,不为零则转至标号处执行程序,如果为零则向下执行。

CX中的值影响着LOOP指令的执行结果。通常(注意,是通常,不是绝对的)用LOOP指令来实现循环功能,CX中存放循环次数。

举例,计算2^12的值

assume cs:code

code segment

mov ax,2

mov cx,11 //因为给AX传送了初始值2,所以执行11次循环就可以了

s:add ax,ax

loop s

mov ax,c400h

int 21h

code ends

end

在汇编语言中,标号代表一个地址,如上面例子程序中的标号“s”,它实际上标识了一个地址,这个地址处有一条指令:add ax,ax

CPU执行loop s 的时候,要进行两步操作:

①将CX减去1;

②判断CX中的值,不为0则转至标号s 所标识的地址处执行(如上面程序中的add ax,ax),如果为零则执行下一条指令(如上面程序中的mov ax,4c00h)。

所以,在上面的程序中,可以利用CX来控制add ax,ax 的执行次数。

用CX和LOOP指令相配合实现循环功能的3个要点:

1。在CX中存放循环次数;

2。LOOP指令中的标号所标识地址要在前面;

3。要循环执行的程序段,要写在标号和loop指令的中间。

重要提醒!:在汇编源程序中,数据不能以字母开头,如mov ax,ffffh这条指令是错误的。正确的做法是,在ffffh前面加0,如写成:mov ax,0ffffh

Debug的“g”命令:

如果确信程序前面的N条指令在逻辑上完全正确,不想再一步步跟踪了,希望将前面这些指令一次执行完,然后从CS:0012处开始跟踪,可以“g 0012”这条命令。它表示执行程序到当前代码段(段地址在CS中)的0012h处。Debug执行“g 0012”后,CS:0012 之前(不包括CS:0012处的指令)的程序段被执行。

Debug的“p”命令:

如果希望将loop循环一次执行完,可以使用p 命令。当遇到loop 指令时,使用p 命令来执行。Debug 就会自动重复执行循环中的指令,直到cx中的值为0为止。

当然,也可以使用g 命令达到同样的目的。可以“g loop循环后面的那条指令的偏移地址”。

能否将ffff:0~ffff:b 内存单元中的数据直接累加到DX中?

当然不能,因为ffff:0~ffff:b 中的数据是8位的,不能直接加到16位寄存器DX中。

能否将ffff:0~ffff:b 中的数据累加到DL中,并设置DH中的值为0,从而实现累加到DX中?

当然也不能,因为DL是8位寄存器,能容纳的数据的范围是0~255,ffff:0~ffff:b 中的数据也都是8位,如果仅向DL中累加12个8位数据,很有可能造成进位丢失。

目前的方法(后面的课程还有别的方法)就是得用一个16位寄存器来做中介。将内存单元中的8位数据赋值到一个16位寄存器AX中,再将AX中的数据加到DX上,从而使两个运算对象的类型匹配并且结果不会超界。关键指令如下:

mov dx,0 //初始化累加寄存器

mov al,ds:[0]

mov ah,0

add dx,ax

在实际编程中,经常会遇到处理地址连续的内存单元中的数据的问题。我们需要用循环来解决这类问题,同时我们必须能够在每次循环的时候按照同一种方法来改变要访问的内存单元的地址。这时,就不能用常量来给出内存单元的地址,而应用变量。“mov al,[bx]”中的BX就可以看作一个代表内存单元地址的变量,我们可以不写新的指令,仅通过改变BX中的数值(如通过inc bx 给BX加1),改变指令访问的内存单元。

段前缀:

出现在访问内存单元的指令中,用于显式地指明内存单元的段地址的“ds:”、“es:”、“cs:”、“ss:”,在汇编语言中称为段前缀。

比较容易犯错的地方是:

1。mov指令不支持把直接数送到段寄存器

比如:mov cs,0000h

2。mov指令不支持内存到内存的数据传送,必须要借助寄存器

比如:mov [bx],cs:[bx]

正确的指令应该为:mov dl,cs:[bx]

mov [bx],dl

3。cpu 在读取指令的时候更改IP寄存器的值,而不是在执行指令后;而jmp指令是用来更改指令地址的,所以当jmp指令刚刚执行完毕,ip更改两次。

32 位CPU的所有寄存器2011-11-02 13:59 4个数据寄存器(EAX、EBX、ECX和EDX)

2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)

6个段寄存器(ES、CS、SS、DS、FS和GS)

1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)

1、数据寄存器

数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。

32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些

低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。

4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄

存器都有自己的名称,可独立存取。程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字

节的信息。

寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、

除、输入/输出等操作,它们的使用频率很高;

寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来使用;

寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数;

寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也

可用于存放I/O的端口地址。

在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来存放存储单元的地址,但在32位CPU 中,其32位

寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器,

所以,这些32位寄存器更具有通用性。

2、变址寄存器

32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响

高16位的数据。

寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。

它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。

3、指针寄存器

32位CPU有2个32位通用寄存器EBP和ESP。其低16位对应先前CPU中的SBP和SP,对低16位数据的存取,不影

响高16位的数据。

寄存器EBP、ESP、BP和SP称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。

指针寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。

它们主要用于访问堆栈内的存储单元,并且规定:

BP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据;

SP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。

4、段寄存器

段寄存器是根据内存分段的管理模式而设置的。内存单元的物理地址由段寄存器的值和一个偏移量组合而成

的,这样可用两个较少位数的值组合成一个可访问较大物理空间的内存地址。

CPU内部的段寄存器:

CS——代码段寄存器(Code Segment Register),其值为代码段的段值;

DS——数据段寄存器(Data Segment Register),其值为数据段的段值;

ES——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;

SS——堆栈段寄存器(Stack Segment Register),其值为堆栈段的段值;

FS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;

GS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值。

在16位CPU系统中,它只有4个段寄存器,所以,程序在任何时刻至多有4个正在使用的段可直接访问;在32位

微机系统中,它有6个段寄存器,所以,在此环境下开发的程序最多可同时访问6个段。

32位CPU有两个不同的工作方式:实方式和保护方式。在每种方式下,段寄存器的作用是不同的。有关规定简

单描述如下:

实方式:前4个段寄存器CS、DS、ES和SS与先前CPU中的所对应的段寄存器的含义完全一致,内存单元的逻辑

地址仍为“段值:偏移量”的形式。为访问某内存段内的数据,必须使用该段寄存器和存储单元的偏移量。保护方式:在此方式下,情况要复杂得多,装入段寄存器的不再是段值,而是称为“选择子”(Selector)的某个值。。

5、指令指针寄存器

32位CPU把指令指针扩展到32位,并记作EIP,EIP的低16位与先前CPU中的IP作用相同。

指令指针EIP、IP(Instruction Pointer)是存放下次将要执行的指令在代码段的偏移量。在具有预取指令功

能的系统中,下次要执行的指令通常已被预取到指令队列中,除非发生转移情况。所以,在理解它们的功能

时,不考虑存在指令队列的情况。

在实方式下,由于每个段的最大范围为64K,所以,EIP中的高16位肯定都为0,此时,相当于只用其低16位

的IP来反映程序中指令的执行次序。

6、标志寄存器

一、运算结果标志位

1、进位标志CF(Carry Flag)

进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。

使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。

2、奇偶标志PF(Parity Flag)

奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。如果“1”的个数为偶数,则PF的值为1,否则其值为0。

利用PF可进行奇偶校验检查,或产生奇偶校验位。在数据传送过程中,为了提供传送的可靠性,如果采用奇偶校验的方法,就可使用该标志位

3、辅助进位标志AF(Auxiliary Carry Flag)

在发生下列情况时,辅助进位标志AF的值被置为1,否则其值为0:

(1)、在字操作时,发生低字节向高字节进位或借位时;

(2)、在字节操作时,发生低4位向高4位进位或借位时。

对以上6个运算结果标志位,在一般编程情况下,标志位CF、ZF、SF和OF的使用频率较高,而标志位PF和AF的使用频率较低。

4、零标志ZF(Zero Flag)

零标志ZF用来反映运算结果是否为0。如果运算结果为0,则其值为1,否则其值为0。在判断运算结果是否为0时,可使用此标志位。

5、符号标志SF(Sign Flag)

符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果

的正负号。运算结果为正数时,SF的值为0,否则其值为1。

6、溢出标志OF(Overflow Flag)

溢出标志OF用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否

则,OF的值被清为0。

“溢出”和“进位”是两个不同含义的概念,不要混淆。如果不太清楚的话,请查阅《计算机组成原理》课程中的有关章节。

二、状态控制标志位

状态控制标志位是用来控制CPU操作的,它们要通过专门的指令才能使之发生改变。

1、追踪标志TF(Trap Flag)

当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试。

指令系统中没有专门的指令来改变标志位TF的值,但程序员可用其它办法来改变其值。

2、中断允许标志IF(Interrupt-enable Flag)

中断允许标志IF是用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。但不管该标志为何值,CPU都必须响应CPU外部的不可屏蔽中断

所发出的中断请求,以及CPU内部产生的中断请求。具体规定如下:

(1)、当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求;

(2)、当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。

CPU的指令系统中也有专门的指令来改变标志位IF的值。

3、方向标志DF(Direction Flag)

方向标志DF用来决定在串操作指令执行时有关指针寄存器发生调整的方向。具体规定在第5.2.11节——字符串操作指令——中给出。在微机的指令

系统中,还提供了专门的指令来改变标志位DF的值。

三、32位标志寄存器增加的标志位

1、I/O特权标志IOPL(I/O Privilege Level)

I/O特权标志用两位二进制位来表示,也称为I/O特权级字段。该字段指定了要求执行I/O指令的特权级。如果当前的特权级别在数值上小于等于

IOPL的值,那么,该I/O指令可执行,否则将发生一个保护异常。

2、嵌套任务标志NT(Nested Task)

嵌套任务标志NT用来控制中断返回指令IRET的执行。具体规定如下:

(1)、当NT=0,用堆栈中保存的值恢复EFLAGS、CS和EIP,执行常规的中断返回操作;

(2)、当NT=1,通过任务转换实现中断返回。

3、重启动标志RF(Restart Flag)

重启动标志RF用来控制是否接受调试故障。规定:RF=0时,表示“接受”调试故障,否则拒绝之。在成功执行完一条指令后,处理机把RF置为0,

当接受到一个非调试故障时,处理机就把它置为1,中国自学编程网整理发布!。

4、虚拟8086方式标志VM(Virtual 8086 Mode)

如果该标志的值为1,则表示处理机处于虚拟的8086方式下的工作状态,否则,处理机处于一般保护方式下的工作状态。

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

天正建筑命令快捷键大全一 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 把用户移动过的门窗编号恢复到默认位置

汇编语言指令表

汇编语言指令表文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

伪指令 1、定位伪指令 ORG m 2、定义字节伪指令 DB X1,X2,X3,…,Xn 3、字定义伪指令 DW Y1,Y2,Y3,…,Yn 4、汇编结束伪指令 END 寻址方式 MCS-51单片机有五种寻址方式: 1、寄存器寻址 2、寄存器间接寻址 3、直接寻址 4、立即数寻址 5、基寄存器加变址寄存器间接寻址 6、相对寻址 7、位寻址 数据传送指令 一、以累加器A为目的操作数的指令(4条) MOV A,Rn ;(Rn)→A n=0~7 MOV A,direct ;( direct )→A MOV A,@Ri ;((Ri))→A i=0~1 MOV A,#data ; data →A 二、以Rn为目的操作数的指令(3条) MOV Rn ,A;(A)→ Rn MOV Rn ,direct;( direct )→ Rn MOV Rn ,#data; data → Rn 三、以直接寻址的单元为目的操作数的指令(5条) MOV direct,A;(A)→direct MOV direct,Rn;(Rn)→direct MOV direct,direct ;(源direct)→目的direct MOV direct,@Ri;((Ri))→direct MOV direct,#data; data→direct 四、以寄存器间接寻址的单元为目的操作数的指令(3条) MOV @Ri,A;(A)→(Ri) MOV @Ri,direct;(direct)→(Ri) MOV @Ri,#data; data→(Ri) 五、十六位数据传送指令(1条) MOV DPTR,#data16;dataH→DPH,dataL →DPL

汇编语言知识大全

第一章基础知识: 一.机器码:1.计算机只认识0,1两种状态。而机器码只能由0,1组成。故机器码相当难认,故产生了汇编语言。 2.其中汇编由三类指令形成:汇编指令(有机器码对应),伪指令,其他符号(编译的时候有用)。 每一总CPU都有自己的指令集;注意学习的侧重点。 二.存储器:1.存储单元中数据和指令没任何差别。 2.存储单元:Eg:128个储存单元(0~127)128byte。 线: 1.地址总线:寻址用,参数(宽度)为N根,则可以寻到2^N个内存单元。 据总线:传送数据用,参数为N根,一次可以传送N/8个存储单元。 3.控制总线:cpu对元器件的控制能力。越多控制力越强。 四.内存地址空间:1.由地址总线决定大小。 2.主板:cpu和核心器件(或接口卡)用地址总线,数据总线,控制总 线连接起来。 3.接口卡:由于cpu不能直接控制外设,需通过接口卡间接控制。

4.各类存储器芯片:RAM,BIOS(主板,各芯片)的ROM,接卡槽的 RAM CPU在操控他们的时候,把他们都当作内存来对待,把他们总的看作一个由 若干个存储单元组成的逻辑存储器,即我们所说的内存地址空间。 自己的一点理解:CPU对内存的操作是一样的,但是在cpu,内存,芯片之间的硬件本身所牵扯的线是不同的。所以一些地址的功能是对应一些芯片的。 第二章寄存器 引入:CPU中含有运算器,寄存器,控制器(由内部总线连接)。而寄存器是可以用来指令读写的部件。8086有14个寄存器(都是16位,2个存储空间)。 一.通用寄存器(ax,bx,cx,dx),16位,可以分为高低位 注意1.范围:16位的2^16-1,8位的2^8-1 2.进行数据传送或运算时要注意位数对应,否则会报错 二.字:1. 1个字==2个字节。 2. 在寄存器中的存储:0x高位字节低位字节;单元认定的是低单元 数制,16进制h,2进制b

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

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】

STM 常用汇编指令

在嵌入式开发中,汇编程序常常用于非常关键的地方,比如系统启动时初始化,进出中断时的环境保护,恢复等对性能有要求的地方。 ARM指令集可以分为六大类,分别为数据处理指令、Load/Store指令、跳转指令、程序状态寄存器处理指令、协处理器指令和异常产生指令。 ARM指令使用的基本格式如下: 〈opcode〉{〈cond〉}{S}〈Rd〉,〈Rn〉{,〈operand2〉} opcode操作码;指令助记符,如LDR、STR等。 cond可选的条件码;执行条件,如EQ、NE等。 S可选后缀;若指定“S”,则根据指令执行结果更新CPSR中的条件码。 Rd目标寄存器。 Rn存放第1操作数的寄存器。 operand2第2个操作数 arm的寻址方式如下: 立即寻址 寄存器寻址 寄存器间接寻址 基址加偏址寻址 堆栈寻址 块拷贝寻址 相对寻址 这里不作详细描述,可以查阅相关文档。 数据处理指令 Load/Store指令 程序状态寄存器与通用寄存器之间的传送指令 转移指令 异常中断指令 协处理器指令 在S3C2410、S3C2440的数据手册中对各种汇编指令有详细的描述;这里只对较常见的作写介绍。 1、相对跳转指令:b、bl 这两条指令的不同之处在于bl指令除了跳转之外,还将返回地址(bl的下一条指令的地址)保存在lr寄存器中。 这两条指令的可跳转范围是当前指令前后32M。 b funa .... funa: b funb ....

funb: .... 2、数据传送指令mov,地址读取伪指令ldr mov指令可以把一个寄存器的值赋给另外一个寄存器,或者把一个常数赋给寄存器。 mov r1,r2 mov r1,#1024 mov传送的常数必须能用立即数来表示。当不能用立即数表示时,可以用ldr命令来赋值。ldr是伪命令,不是真实存在的指令,编译器会把它扩展成真正的指令;如果该常数能用“立即数”来表示,则使用mov指令,否则编译时将该常数保存在某个位置,使用内存读取指令把它读出来。 ldr r1,=1024 3、内存访问指令ldr、str、ldm、stm ldr既可以指低至读取伪指令,也可以是内存访问指令。当他的第二个参数前面有'='时标伪指令,否则表内存访问指令。 ldr指令从内存中读取数据到寄存器,str指令把寄存器的指存储到内存中,他们的操作数都是32位的。 ldr r1,[r2,#4] ldr r1,[r2] ldr r1,[r2],#4 str r1,[r2,#4] str r1,[r2] str r1,[r2],#4 寄存器传送指令可以用一条指令将16个可见寄存器(R0~R15)的任意子集合(或全部)存储到存储器或从存储器中读取数据到该寄存器集合中。与单寄存器存取指令相比,多寄存器数据存取可用的寻址模式更加有限。多寄存器存取指令的汇编格式如下: LDM/STM{}Rn{!}, 4、加减指令add、sub add r1,r2,#1 sub r1,r2,#1 5、程序状态寄存器的访问指令msr,mrs ARM指令中有两条指令,用于在状态寄存器和通用寄存器之间传送数据。修改状态寄存器一般是通过“读取-修改-写回”三个步骤的操作来实现的。这两条指令分别是: 状态寄存器到通用寄存器的传送指令(MRS) 通用寄存器到状态寄存器的传送指令(MSR) 其汇编格式如下: MRS{}Rd,CPSR|SPSR 其汇编格式如下:

手机密码万能解锁大全

发信人: yuzhongtao (VCD), 信区: Digital 标题: 真正的手机密码万能解锁大全 发信站: 吉林大学牡丹园站(Sun May 14 22:06:18 2006) [楼主]: 手机一旦设的密码忘记了怎么办?很多人到手机修理的地方或者厂方去解锁,往往收取不菲的费用,其实很多手机只要自己输入解锁码就可以了。以下收集整理的满全了应该。 一、各种品牌手机中英文对照 Acer::宏基AIWA:爱华alcatel(ALC):阿尔卡特 AMOI:夏新APBW:亚太APPLE:苹果 Arcoa:全虹ASUS:华硕AUX:奥克斯 BenQ:明基Benten:巨腾BIRD(BRD):波导 BOSCH:博士(博世)BOSS:宝石 Capitel:首信CASIO:卡西欧CECT(CEC):中电通讯 CHABRIDGE:中桥CHASE:采星COSUN:侨兴 DAEWOO:大宇DATANG:大唐DAXIAN:大显 DBTEL:迪比特DENSO:电送DNET:迪奈特 DOEASY:多易随DOCOMO :多科莫dopod:多普达 DRAGON:东方龙EASTCOM(ETCM):东信EMOL:易美 Ericsson:爱立信fuli:富利 GALAXY:银河Gionee:金立Giya:基雅 GPLUS:积加Great:伟松GSL:权智(快译通) Gstar::吉事达GVC:致福Hagenuk:汉佳诺 Haier(HAR):海尔Hisense:海信Hitachi:日立 Hutel:秀特尔HYUNDAI:现代Innostream:盈讯 JPG:金鹏JRC:日本无线 KEJIAN(KJN):科健Kenwood:建伍KGT:和信 Konka(KON):康佳KPT:先进电讯KYOCERA(KYEA):京瓷 LENOVO:联想LUCENT:朗讯Lucky Star:吉星 Malata:万利达Maxon:美晨MiTAC:神达 MITSUBISHI(Trium):三菱Motorola:摩托罗拉 NEC:日本电气NETT:雷特nintaus:金正 Nixxo:尼索NOKIA(NKI):诺基亚NOPO:星辰 OKWAP:英资达OMRON:欧姆龙 PALMAX:帕玛斯(仁宝) Panasonnic:松下Panda:熊猫 PENESAS:天马Philips:飞利浦Photal:丰达 PUTAN:普天Qualcomm:高通ROWA:乐华 Sagem萨基姆Sanyo:三洋SAMSUNG:三星 SED:桑达Sendo:仙都SEWON:星王 SHARP:夏普Siemens:西门子SkyNet:斯加耐特 Soutec:南方高科SONY:索尼SOBAO:搜豹

(完整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段寄存器中。

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 程序调试命令

杂牌机解锁指令大全

TCL D808解锁的方法:按*83786633#进入工程模式,测试完毕后,提示"是否恢复出厂设置"你按"ok"既解开了.恢复原始密码"1234" 名佳系列的读出后1M的资料用16进制编辑软件查找出密码,后IMEI的前8为+*#*#5625# NOKIA S60 米字键+3+通话键+开机键直到出现一组英文不可以的话再写不过这只可以解决软件上的问题 *#7370#:恢复出厂设置(软格机),这个命令一般是在手机处于错误或系统垃圾过多的情况下使用格机命令; *#7780#:恢复出厂设置,等同于功能表设置——手机设置——常规——原厂设定,注意此命令仅是恢复设置,不同于格机,恢复后名片夹、图片、文档等全部依然存在,只是设置还原了,有些朋友因设置错误而不知如何改回来就可以使用这个命令了; CDMA BORD s788 #*800#屏幕显示两行英文再输入#*3676#然后下电池再开就OK 波导E858 .V58 .A150 .F4.工程模式*#123321#*万能密码19921028 波导S1186的手动解锁插卡开机按一下边键出现改变话机密码进入输入000000可见4位数的话机 如果出现话机永久锁定,那就只能过软件了,而且只有售后才在专用的工装线。 AD芯片指令 *983*7373# cect滑盖s560手动解锁 不插卡电源夹开机拨112 接通后插卡,手机自动开机关闭话机锁ok cect客服 还有一方法输入*#*#1705#即可 CECT奥盛FG830解锁指令 *746*737381# CECT天宇解锁*746*737381#再开机密码取法。开机显示存储错误:*746*737382# CECF16解锁 不插卡开机按*#*#1705#发射键再按7确认自动关机后即可 LG指令 GSM : 2945#*# 8110 & 8120 : 277634#*# U8130 & U8138 : 47328545454# 8180 old sw : 49857465454#

摩托罗拉手机解锁及命令代码

摩托罗拉手机解锁及命令代码 摩托罗拉 摩托罗拉所有机锁:按MENU+5+1/2 T190解锁密码: 20010903 T191解锁密码:19980722 3X8/2X88/998/8088/L2000/7689/T189/C289等初始密码为1234 ;话机密码为000000 ;解锁方法:如无测试卡,则先输入1234,如密码已更改,先按Menu 键会出现“修改开锁密码”,按OK键,然后输入000000就会显示四位数的话机密码,如保密码已更改,则只能用测试卡或软件工具解。 T2688/2988万能解锁码:19980722 C300解话机锁:20020801 摩托罗拉手机出现“话机坏,请送修”:可利用测试卡,输入0205#、0205068#即可修复,无须重写码片。 T2688/2988/988d设置中文:*#0000# ok(插卡) 摩托罗拉所有机锁:按MENU+5+1/2 T2688 *#0086# 设为中文(不插卡) *#0000# 回中文,(插卡) *#300# 查版本号,生产日期 *#301# 显示屏,振铃,按键,振动等测试 *#402# 调对比度 19980722可解其一切手机锁 V60/V66/V70解锁:插入测试卡,开机后输入menu+048263*进入测试状态后按18*1总清除,输入18*0是主复位。 V998外文改中文:MENU-左方向键按3下-OK-左方向键按5下 -OK-Simplified-CHINESE 摩托罗拉语言调成第三国语言快速解决方法:menu+26 摩托罗拉2688时间不走修复密诀:将电源1脚和8脚用漆包线短接,必杀! 如何解除摩托罗拉手机的PIN密码 当你的设置的PIN不小心遗忘了,或别人在你的手机上设置了PIN等,这时PUK 就帮了大忙了。在输错三次的PIN后则手机上会显示SIM卡已锁,这时你必须要通过PUK来解锁了。PUK为8位数字的码一般在大卡的背面,如果找不到的话要尽快到当地的客服中心查询,切不可乱输,因为PUK只有10次输错的机会,输错10次则SIM卡报销。摩托罗拉手机一般在输入PUK之前都必须先输入**05*再输PUK,格式如下:**05*PUK即可。 摩托罗拉手机的主清除与主复位 无论你的摩托罗拉手机上做了任何的设置,造成了如:不能正常拔入拔出,来电显示乱码,或无法删除电话本,等等,您都可以用以下方法复原。 MENU键+5+1(2)屏幕则会显示“主清除或主复位”如选择主清除将会执行以下操作: 从话机记忆中清除电话本项目。

单片机汇编语言指令集

汇编语言的所有指令数据传送指令集 MOV 功能: 把源操作数送给目的操作数 语法: MOV 目的操作数,源操作数 格式: MOV r1,r2 MOV r,m MOV m,r MOV r,data XCHG 功能: 交换两个操作数的数据 语法: XCHG 格式: XCHG r1,r2 XCHG m,r XCHG r,m PUSH,POP 功能: 把操作数压入或取出堆栈 语法: PUSH 操作数POP 操作数 格式: PUSH r PUSH M PUSH data POP r POP m PUSHF,POPF,PUSHA,POPA 功能: 堆栈指令群 格式: PUSHF POPF PUSHA POPA LEA,LDS,LES 功能: 取地址至寄存器 语法: LEA r,m LDS r,m LES r,m XLAT(XLATB) 功能: 查表指令 语法: XLAT XLAT m 算数运算指令 ADD,ADC 功能: 加法指令 语法: ADD OP1,OP2 ADC OP1,OP2 格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data 影响标志: C,P,A,Z,S,O SUB,SBB 功能:减法指令 语法: SUB OP1,OP2 SBB OP1,OP2 格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data 影响标志: C,P,A,Z,S,O

INC,DEC 功能: 把OP的值加一或减一 语法: INC OP DEC OP 格式: INC r/m DEC r/m 影响标志: P,A,Z,S,O NEG 功能: 将OP的符号反相(取二进制补码) 语法: NEG OP 格式: NEG r/m 影响标志: C,P,A,Z,S,O MUL,IMUL 功能: 乘法指令 语法: MUL OP IMUL OP 格式: MUL r/m IMUL r/m 影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志) DIV,IDIV 功能:除法指令 语法: DIV OP IDIV OP 格式: DIV r/m IDIV r/m CBW,CWD 功能: 有符号数扩展指令 语法: CBW CWD AAA,AAS,AAM,AAD 功能: 非压BCD码运算调整指令 语法: AAA AAS AAM AAD 影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD) DAA,DAS 功能: 压缩BCD码调整指令 语法: DAA DAS 影响标志: C,P,A,Z,S 位运算指令集 AND,OR,XOR,NOT,TEST 功能: 执行BIT与BIT之间的逻辑运算 语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data NOT r/m 影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位 SHR,SHL,SAR,SAL 功能: 移位指令 语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL

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

广州数控指令代码大全 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加进给量值组成,一般用在插补指令的程序段中,规定了插补运动的速度。

汇编指令

数据传送指令MOV 格式: MOV OPRD1,OPRD2 功能: 本指令将一个源操作数送到目的操作数 中,即OPRD1<--OPRD2. 堆栈操作指令PUSH和POP 格式: PUSH OPRD POP OPRD 功能: 实现压入操作的指令是PUSH指令;实现弹出 操作的指令是POP指令. 数据交换指令XCHG 格式: XCHG OPRD1,OPRD2 其中的OPRD1为目的操作数,OPRD2为源操作数 功能: 将两个操作数相互交换位置,该指令把源操 作数OPRD2与目的操数OPRD1交换. 查表指令XLAT 格式: XLAT TABLE其中TABLE为一待查表格的首地址. 功能: 把待查表格的一个字节内容送到AL累加器 中. 在执行该指令前,应将TABLE 先送至BX寄存器中,然后将待查 字节与在表格中距表首地址位移 量送AL,即(AL)<--((BX)+ (AL)). 标志传送指令LAHF 格式: LAHF 功能: 取FLAG标志寄存器低8位至AH寄存器.(AH)< -(FLAG)7~0 标志传送指令SAHF 格式: SAHF 功能: 将AH存至FLAG低8位 标志传送指令PUSHF

功能: 本指令可以把标志寄存器的内容保存到堆栈 中去 标志传送指令POPF 格式: POPF 功能: 本指令的功能与PUSHF相反,在子程序调用和中断服务程序中,往往用PUSHF指令保护FLAG的内容,用POPF指令将保护的FLAG内容恢复. 有效地址传送指令LEA 格式: LEA OPRD1,OPRD2 功能: 将源操作数给出的有效地址传送到指定的的 寄存器中. 从存储器取出32位地址的指令LDS 格式: LDS OPRD1,OPRD2 功能: 从存储器取出32位地址的指令. 从存储器取出32位地址的指令LES 格式: LES OPRD1,OPRD2 功能: 从存储器取出32位地址的指令. 加法指令ADD(Addition) 格式: ADD OPRD1,OPRD2 功能: 两数相加 带进位加法指令ADC(Addition Carry) 格式: ADC OPRD1,OPRD2 功能: OPRD1<--OPRD1 + OPRD2 + CF 加1指令INC(INCrement by 1) 格式: INC OPRD 功能: OPRD<--OPRD+1 未组合的十进制加法调整指令AAA(ASCII Adgust for Addition)

手机密码解锁方法大全

手机密码解锁方法大全 手机密码解锁方法大全 素材来源/网络编辑制作/荷花小女子 手机密码锁机的朋友不用再去营业厅解锁,自己搞定! 解话机锁:*2767*2878#/*2767*7377# 三星码片复位:*2767*3855# 也可用于解机锁或卡锁三星显温度、电池容量:*#0228# 三星调显示屏对比度:*#0523# 三星软件版本:*#9999# 三星A100-A188看版本:*#0837# 摩托罗拉T2688解所有锁:19980722 T2688/2988/988d没有中文:*#0000# OK(插卡)摩托罗拉所有机锁:按MENU+5+1/2 西门子恢复出厂设置:*#9999#

西门子乱文回中文:*#0000#/*#0086# 西门子软件版本:*#06# 左键 爱立信老机回英语:*#0000# 爱立信新机回英语:按CLR-左键-0000-右键 爱立信显出厂*期:右、*、左、左、*、左、*键 诺基亚显出厂*期:*#0000#(插卡) 诺基亚省30%电:*#746025625# 飞利浦强迫重连网:*#2562*# 飞利浦显示和更改手机密码:*#7489*# 博世(BOSCH)909S回中文:*#0852# 博世(BOSCH)909s回英文:*#0851# NEC显软件版本:*#2820# NEC恢复原厂设置:*#73738# 波导s1000隐藏功能:*#*#1705# 波导s1000解锁:*#*#1705#46(也用于999D,720) 如死机再用---24681357(或直接就用它解) 波导8xx/9xx系列:*#+串号7-14位# SIM卡波导串号最后9位去掉最后一位 阿尔卡特OT221/220解锁:25228352/ALCATEL+D 阿尔卡特OT301/302解锁:83227423 阿尔卡特OT500/700解锁:25228352 康佳:*#0001# *#1001# ##1001#

汇编语言指令速查表

附录 附录A 常用80x86指令速查表 指令按助记符字母顺序排列,缩写、符号约定如下: (1) 指令中,dst, src表示目的操作数和源操作数。仅一个操作数时,个别处也表示为opr。 (2) imm表示立即数,8/16/32位立即数记作:imm8/imm16/imm32。 (3) reg表示通用寄存器,8/16/32位通用寄存器记作:reg8/reg16/reg32。 (4) mem表示内存操作数,8/16/32等内存操作数记作:mem8/mem16/mem32等。 (5) seg表示段寄存器,CS, DS, SS, ES, FS, GS。 (6) acc表示累加器,8/16/32累加器对应AL/AX/EAX。 (7)OF, SF, ZF, AF, PF, CF分别表示为O, S, Z, A, P, C,相应位置为:字母,根据结果状态设置;?,状态不确定;-,状态不变;1,置1;0,清0;例如:0 S Z ? P -表示:OF清0,AF不确定,CF不变,其它根据结果设置。若该栏空白,则表示无关。 (8)寄存器符号诸如(E)CX, (E)SI, (E)DI, (E)SP, (E)BP和(E)IP等,表示在16地址模式下使用16位寄存器(如CX),或在32地址模式下使用32位寄存器(如ECX)。 (9)周期数表示指令执行所需的CPU时钟周期个数,即执行时间为:周期数/主频(秒)。 (10)诸如(386+)是表示该指令只能用于80386及以后微处理器上。

·252·

附录 ·253·

·254·

附录 ·255·

·256·

MTK平台手机解锁指令

手机解锁 MTK平台手机解锁指令 sky 芯片解锁指令*#987*99# *#3424# 选最后一项重起 TI 芯片解锁指令*#*#1705# 互通726p 长按# 超级密码12344321 恢复为8888 AD 芯片解锁指令*2580# (有的需按二次*) *01763*737381# *746*737381# 5阿尔卡特83227423 25228352 ALCATEL+D ###765*05# CECT 天宇系列解锁解锁指令*746*737381#关机再开机密码取消 星玛系列解锁指令*#*#1705# mp3 解锁指令*#66*# 7850 CPU CECT系列的通用密码装卡输入*#2005#*即可*2002*#2002# 7870 cpu 绕过开机密码:*#9999# 英飞凌6850芯片解锁指令*2002*#2002# 7870 解锁指令487742263万能解锁密码 *487742263#可以揭开80%CPU为7870的手机密码*4955#可以进入CPU为7870的工程模式要选倒数第二项,密码就关了*2002*#2002#或*2005*#2005# 亿通48774226 三新防三星E808 6850cpu 解密*2002*#2002# 杂牌机6850芯片大部分通用解锁密码!*2002*#2002# cect e818解锁指令:*200307150401# 按确定等自动关机,上

卡开机等初始化完成 飞利浦S-568解锁指令*01763*737381# TI 用*789#指令解就OK! CECF16解锁不插卡开机按*#*#1705#发射键再按7确认自动关机后即可 亿通用7850CPU的指令,.解所有锁48774226 科建K529 *#*#1705# 桑达HT818*746*737381# LG C210 2945#*# 金立325 *39*737381# **2580*# 7850cpu解信息锁*2002*00#加发射键*#987*99# 泛泰PG8000 手机指令解锁*01763*737381# 华为C2281解锁指令:##258741 恒基伟业F8,F8+,F8C,F8D,F8E,F88解锁指令*929# 选格式化F8,F8+,F8C,F8D,F8E在待机模式下按OK,上,下,左,右,上,下,即可进入测试模式, 可修改听筒话筒音量,查看版本等等 恒基伟业F88,*20030811#,再按呼出键 解决MT芯片手机,打电话出现(确认网络服务) !! 进入设置到通话设置再到本机号码然后选择发送号码OK! 明基。西门子E61的SIM卡密码。直接输入72779673就解掉了手机密码同用指令。绝对OK 步步高*#2002#*#2002#

汇编指令大全

ORG 0000H NOP ;空操作指令 AJMP L0003 ;绝对转移指令 L0003: LJMP L0006 ;长调用指令 L0006: RR A ;累加器A内容右移(先置A为88H) INC A ; 累加器A 内容加1 INC 01H ;直接地址(字节01H)内容加1 INC @R0 ; R0的内容(为地址) 的内容即间接RAM加1 ;(设R0=02H,02H=03H,单步执行后02H=04H) INC @R1 ; R1的内容(为地址) 的内容即间接RAM加1 ;(设R1=02H,02H=03H,单步执行后02H=04H) INC R0 ; R0的内容加1 (设R0为00H,单步执行后查R0内容为多少) INC R1 ; R1的内容加1(设R1为01H,单步执行后查R1内容为多少) INC R2 ; R2的内容加1 (设R2为02H,单步执行后查R2内容为多少) INC R3 ; R3的内容加1(设R3为03H,单步执行后查R3内容为多少) INC R4 ; R4的内容加1(设R4为04H,单步执行后查R4内容为多少) INC R5 ; R5的内容加1(设R5为05H,单步执行后查R5内容为多少) INC R6 ; R6的内容加1(设R6为06H,单步执行后查R6内容为多少) INC R7 ; R7的内容加1(设R7为07H,单步执行后查R7内容为多少) JBC 20H,L0017; 如果位(如20H,即24H的0位)为1,则转移并清0该位L0017: ACALL S0019 ;绝对调用 S0019: LCALL S001C ;长调用 S001C: RRC A ;累加器A的内容带进位位右移(设A=11H,C=0 ;单步执行后查A和C内容为多少) DEC A ;A的内容减1 DEC 01H ;直接地址(01H)内容减1 DEC @R0 ;R0间址减1,即R0的内容为地址,该地址的内容减1 DEC @R1 ; R1间址减1 DEC R0 ; R0内容减1 DEC R1 ; R1内容减1 DEC R2 ; R2内容减1 DEC R3 ; R3内容减1 DEC R4 ; R4内容减1 DEC R5 ; R5内容减1 DEC R6 ; R6内容减1 DEC R7 ; R7内容减1 JB 20H,L002D;如果位(20H,即24H的0位)为1则转移 L002D: AJMP L0017 ;绝对转移 RET ;子程序返回指令 RL A ;A左移 ADD A,#01H ;A的内容与立即数(01H)相加 ADD A,01H ; A的内容与直接地址(01H内容)相加 ADD A,@R0 ; A的内容与寄存器R0的间址内容相加 ADD A,@R1 ; A的内容与寄存器R1的间址内容相加

相关文档
最新文档