求汇编指令大全~ 求 汇编指令表 完整的

\u6c47\u7f16\u8bed\u8a00\u6307\u4ee4\u5927\u5168\uff0c\u8981\u8be6\u7ec6\u7684 \uff01\uff01\uff01\uff01

\u6700\u4f73\u7b54\u6848IBM-PC\u6c47\u7f16\u8bed\u8a00\u6307\u4ee4\u96c6


\u6570\u636e\u4f20\u9001\u6307\u4ee4\u96c6
MOV
\u529f\u80fd: \u628a\u6e90\u64cd\u4f5c\u6570\u9001\u7ed9\u76ee\u7684\u64cd\u4f5c\u6570
\u8bed\u6cd5: MOV \u76ee\u7684\u64cd\u4f5c\u6570,\u6e90\u64cd\u4f5c\u6570
\u683c\u5f0f: MOV r1,r2
MOV r,m
MOV m,r
MOV r,data

XCHG
\u529f\u80fd: \u4ea4\u6362\u4e24\u4e2a\u64cd\u4f5c\u6570\u7684\u6570\u636e
\u8bed\u6cd5: XCHG
\u683c\u5f0f: XCHG r1,r2 XCHG m,r XCHG r,m

PUSH,POP
\u529f\u80fd: \u628a\u64cd\u4f5c\u6570\u538b\u5165\u6216\u53d6\u51fa\u5806\u6808
\u8bed\u6cd5: PUSH \u64cd\u4f5c\u6570 POP \u64cd\u4f5c\u6570
\u683c\u5f0f: PUSH r PUSH M PUSH data POP r POP m

PUSHF,POPF,PUSHA,POPA
\u529f\u80fd: \u5806\u6808\u6307\u4ee4\u7fa4
\u683c\u5f0f: PUSHF POPF PUSHA POPA

LEA,LDS,LES
\u529f\u80fd: \u53d6\u5730\u5740\u81f3\u5bc4\u5b58\u5668
\u8bed\u6cd5: LEA r,m LDS r,m LES r,m

XLAT(XLATB)
\u529f\u80fd: \u67e5\u8868\u6307\u4ee4
\u8bed\u6cd5: XLAT XLAT m
\u7b97\u6570\u8fd0\u7b97\u6307\u4ee4
ADD,ADC
\u529f\u80fd: \u52a0\u6cd5\u6307\u4ee4
\u8bed\u6cd5: ADD OP1,OP2 ADC OP1,OP2
\u683c\u5f0f: ADD r1,r2 ADD r,m ADD m,r ADD r,data
\u5f71\u54cd\u6807\u5fd7: C,P,A,Z,S,O

SUB,SBB
\u529f\u80fd:\u51cf\u6cd5\u6307\u4ee4
\u8bed\u6cd5: SUB OP1,OP2 SBB OP1,OP2
\u683c\u5f0f: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data
\u5f71\u54cd\u6807\u5fd7: C,P,A,Z,S,O

INC,DEC
\u529f\u80fd: \u628aOP\u7684\u503c\u52a0\u4e00\u6216\u51cf\u4e00
\u8bed\u6cd5: INC OP DEC OP
\u683c\u5f0f: INC r/m DEC r/m
\u5f71\u54cd\u6807\u5fd7: P,A,Z,S,O

NEG
\u529f\u80fd: \u5c06OP\u7684\u7b26\u53f7\u53cd\u76f8(\u53d6\u4e8c\u8fdb\u5236\u8865\u7801)
\u8bed\u6cd5: NEG OP
\u683c\u5f0f: NEG r/m
\u5f71\u54cd\u6807\u5fd7: C,P,A,Z,S,O
MUL,IMUL
\u529f\u80fd: \u4e58\u6cd5\u6307\u4ee4
\u8bed\u6cd5: MUL OP IMUL OP
\u683c\u5f0f: MUL r/m IMUL r/m
\u5f71\u54cd\u6807\u5fd7: C,P,A,Z,S,O(\u4ec5IMUL\u4f1a\u5f71\u54cdS\u6807\u5fd7)

DIV,IDIV
\u529f\u80fd:\u9664\u6cd5\u6307\u4ee4
\u8bed\u6cd5: DIV OP IDIV OP
\u683c\u5f0f: DIV r/m IDIV r/m
CBW,CWD
\u529f\u80fd: \u6709\u7b26\u53f7\u6570\u6269\u5c55\u6307\u4ee4
\u8bed\u6cd5: CBW CWD
AAA,AAS,AAM,AAD
\u529f\u80fd: \u975e\u538bBCD\u7801\u8fd0\u7b97\u8c03\u6574\u6307\u4ee4
\u8bed\u6cd5: AAA AAS AAM AAD
\u5f71\u54cd\u6807\u5fd7: A,C(AAA,AAS) S,Z,P(AAM,AAD)

DAA,DAS
\u529f\u80fd: \u538b\u7f29BCD\u7801\u8c03\u6574\u6307\u4ee4
\u8bed\u6cd5: DAA DAS
\u5f71\u54cd\u6807\u5fd7: C,P,A,Z,S
\u4f4d\u8fd0\u7b97\u6307\u4ee4\u96c6
AND,OR,XOR,NOT,TEST
\u529f\u80fd: \u6267\u884cBIT\u4e0eBIT\u4e4b\u95f4\u7684\u903b\u8f91\u8fd0\u7b97
\u8bed\u6cd5: 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
\u5f71\u54cd\u6807\u5fd7: C,O,P,Z,S(\u5176\u4e2dC\u4e0eO\u4e24\u4e2a\u6807\u5fd7\u4f1a\u88ab\u8bbe\u4e3a0) NOT\u6307\u4ee4\u4e0d\u5f71\u54cd\u4efb\u4f55\u6807\u5fd7\u4f4d
SHR,SHL,SAR,SAL
\u529f\u80fd: \u79fb\u4f4d\u6307\u4ee4
\u8bed\u6cd5: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL
\u5f71\u54cd\u6807\u5fd7: C,P,Z,S,O
ROR,ROL,RCR,RCL
\u529f\u80fd: \u5faa\u73af\u79fb\u4f4d\u6307\u4ee4
\u8bed\u6cd5: ROR r/m,data/CL ROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL
\u5f71\u54cd\u6807\u5fd7: C,P,Z,S,O
\u7a0b\u5e8f\u6d41\u7a0b\u63a7\u5236\u6307\u4ee4\u96c6
CLC,STC,CMC
\u529f\u80fd: \u8bbe\u5b9a\u8fdb\u4f4d\u6807\u5fd7
\u8bed\u6cd5: CLC STC CMC
\u6807\u5fd7\u4f4d: C
CLD,STD
\u529f\u80fd: \u8bbe\u5b9a\u65b9\u5411\u6807\u5fd7
\u8bed\u6cd5: CLD STD
\u6807\u5fd7\u4f4d: D
CLI,STI
\u529f\u80fd: \u8bbe\u5b9a\u4e2d\u65ad\u6807\u5fd7
\u8bed\u6cd5: CLI STI
\u6807\u5fd7\u4f4d: I
CMP
\u529f\u80fd: \u6bd4\u8f83OP1\u4e0eOP2\u7684\u503c
\u8bed\u6cd5: CMP r/m,r/m/data
\u6807\u5fd7\u4f4d: C,P,A,Z,O
JMP
\u529f\u80fd: \u8df3\u5f80\u6307\u5b9a\u5730\u5740\u6267\u884c
\u8bed\u6cd5: JMP \u5730\u5740
JXX
\u529f\u80fd: \u5f53\u7279\u5b9a\u6761\u4ef6\u6210\u7acb\u5219\u8df3\u5f80\u6307\u5b9a\u5730\u5740\u6267\u884c
\u8bed\u6cd5: JXX \u5730\u5740
\u6ce8:
A: ABOVE,\u5f53C=0,Z=0\u65f6\u6210\u7acb
B: BELOW,\u5f53C=1\u65f6\u6210\u7acb
C: CARRY,\u5f53\u5f01\u65f6\u6210\u7acb CXZ: CX\u5bc4\u5b58\u5668\u7684\u503c\u4e3a0(ZERO)\u65f6\u6210\u7acb
E: EQUAL,\u5f53Z=1\u65f6\u6210\u7acb
G: GREATER(\u5927\u4e8e),\u5f53Z=0\u4e14S=0\u65f6\u6210\u7acb
L: LESS(\u5c0f\u4e8e),\u5f53S\u4e0d\u4e3a\u96f6\u65f6\u6210\u7acb
N: NOT(\u76f8\u53cd\u6761\u4ef6),\u9700\u548c\u5176\u5b83\u7b26\u53f7\u914d\u5408\u4f7f\u7528
O: OVERFLOW,O=1\u65f6\u6210\u7acb
P: PARITY,P=1\u65f6\u6210\u7acb
PE: PARITY EVEN,P=1\u65f6\u6210\u7acb
PO: PARITY ODD,P=0\u65f6\u6210\u7acb
S: SIGN,S=1\u65f6\u6210\u7acb
Z: ZERO,Z=1\u65f6\u6210\u7acb
LOOP
\u529f\u80fd: \u5faa\u73af\u6307\u4ee4\u96c6
\u8bed\u6cd5: LOOP \u5730\u5740
LOOPE(Z)
\u5730\u5740 LOOPNE(Z) \u5730\u5740
\u6807\u5fd7\u4f4d: \u65e0
CALL,RET
\u529f\u80fd: \u5b50\u7a0b\u5e8f\u8c03\u7528,\u8fd4\u56de\u6307\u4ee4
\u8bed\u6cd5: CALL \u5730\u5740 RET RET n
\u6807\u5fd7\u4f4d: \u65e0
INT,IRET
\u529f\u80fd: \u4e2d\u65ad\u8c03\u7528\u53ca\u8fd4\u56de\u6307\u4ee4
\u8bed\u6cd5: INT n IRET
\u6807\u5fd7\u4f4d: \u5728\u6267\u884cINT\u65f6,CPU\u4f1a\u81ea\u52a8\u5c06\u6807\u5fd7\u5bc4\u5b58\u5668\u7684\u503c\u5165\u6808,\u5728\u6267\u884cIRET\u65f6\u5219\u4f1a\u5c06\u5806\u6808\u4e2d\u7684\u6807\u5fd7\u503c\u5f39\u56de\u5bc4\u5b58\u5668
\u5b57\u7b26\u4e32\u64cd\u4f5c\u6307\u4ee4\u96c6
MOVSB,MOVSW,MOVSD
\u529f\u80fd: \u5b57\u7b26\u4e32\u4f20\u9001\u6307\u4ee4
\u8bed\u6cd5: MOVSB MOVSW MOVSD
\u6807\u5fd7\u4f4d: \u65e0
CMPSB,CMPSW,CMPSD
\u529f\u80fd: \u5b57\u7b26\u4e32\u6bd4\u8f83\u6307\u4ee4
\u8bed\u6cd5: CMPSB CMPSW CMPSD
\u6807\u5fd7\u4f4d: C,P,Z,S,O
SCASB,SCASW
\u529f\u80fd: \u5b57\u7b26\u4e32\u641c\u7d22\u6307\u4ee4
\u8bed\u6cd5: SCASB SCASW
\u6807\u5fd7\u4f4d: C,P,Z,S,O
LODSB,LODSW,STOSB,STOSW
\u529f\u80fd: \u5b57\u7b26\u4e32\u8f7d\u5165\u6216\u5b58\u8d2e\u6307\u4ee4
\u8bed\u6cd5: LODSB LODSW STOSB STOSW
\u6807\u5fd7\u4f4d: \u65e0
REP,REPE,REPNE
\u529f\u80fd: \u91cd\u590d\u524d\u7f00\u6307\u4ee4\u96c6
\u8bed\u6cd5: REP \u6307\u4ee4S REPE \u6307\u4ee4S REPNE \u6307\u4ee4S
\u6807\u5fd7\u4f4d: \u4f9d\u6307\u4ee4S\u800c\u5b9a

\u5bf9\u4e8eIBM PC\u673a\u5b83\u6709\u5b83\u7684\u6307\u4ee4\u7cfb\u7edf\uff0c\u5176\u4e2d\u5305\u62ec\uff1a\u6570\u636e\u4f20\u9001\u6307\u4ee4\u3001\u4e32\u5904\u7406\u6307\u4ee4\u3001\u7b97\u672f\u6307\u4ee4\u3001\u63a7\u5236\u79fb\u52a8\u6307\u4ee4\u3001\u903b\u8f91\u6307\u4ee4\u3001\u5904\u7406\u673a\u63a7\u5236\u6307\u4ee4\u3002
\u8fd9\u91cc\u5c06\u7b80\u5355\u4ecb\u7ecd\u5176\u6307\u4ee4\u7c7b\u578b\u53ca\u6307\u4ee4\u8bf4\u660e\uff0c\u5982\u6709\u8981\u6c42\u7ed9\u5177\u4f53\u7684\u6307\u4ee4\u683c\u5f0f\u53ca\u5e94\u7528\uff0c\u8bf7\u4e0eamay\u8054\u7cfb\uff0camay\u52a0\u4ee5\u66f4\u65b0\u3002
1)\u6570\u636e\u4f20\u9001\u6307\u4ee4\uff1a\u8d1f\u8d23\u628a\u6570\u636e\u3001\u5730\u5740\u6216\u7acb\u5373\u6570\u4f20\u9001\u5230\u5bc4\u5b58\u5668\u6216\u5b58\u50a8\u5355\u5143\u4e2d\u3002
\u6570\u636e\u4f20\u9001\u6307\u4ee4\u7c7b\u578b \u6307 \u4ee4 \u8bf4 \u660e
\u901a\u7528\u6570\u636e\u4f20\u9001\u6307\u4ee4 MOV\uff08\u4f20\u9001\uff09\u3001PUSH\uff08\u8fdb\u6808\uff09\u3001POP\uff08\u51fa\u6808\uff09\u3001XCHG\uff08\u4ea4\u6362\uff09
\u7d2f\u52a0\u5668\u4e13\u7528\u4f20\u9001\u6307\u4ee4 IN\uff08\u8f93\u5165\u6307\u4ee4\uff09 \u3001OUT\uff08\u8f93\u5165\u6307\u4ee4\uff09
\u5730\u5740\u4f20\u9001\u6307\u4ee4 LEA\uff08\u6709\u6548\u5730\u5740\u9001\u5bc4\u5b58\u5668\uff09\u3001LDS\uff08\u6307\u9488\u9001\u5bc4\u5b58\u5668\u548cDS\uff09\u3001LES\uff08\u6307\u9488\u9001\u5bc4\u5b58\u5668\u548cES\uff09
\u6807\u5fd7\u5bc4\u5b58\u5668\u4f20\u9001\u6307\u4ee4 LAHF\uff08\u6807\u5fd7\u9001AH\uff09\u3001SAHF\uff08AH\u9001\u6807\u5fd7\u5bc4\u5b58\u5668\uff09\u3001PUSHF\uff08\u6807\u5fd7\u8fdb\u6808\uff09\u3001POPF\uff08\u6807\u5fd7\u51fa\u6808\uff09


2\uff09\u7b97\u672f\u6307\u4ee4\uff1a\u7528\u6765\u6267\u884c\u7b97\u672f\u8fd0\u7b97\u3002
\u7b97\u672f\u6307\u4ee4\u7c7b\u578b \u6307 \u4ee4 \u8bf4 \u660e
\u52a0\u6cd5\u6307\u4ee4 ADD\uff08\u52a0\u6cd5\uff09\u3001ADC\uff08\u5e26\u8fdb\u4f4d\u52a0\u6cd5\uff09\u3001INC\uff08\u52a01\uff09
\u51cf\u6cd5\u6307\u4ee4 SUB\uff08\u51cf\u6cd5\uff09\u3001SBB\uff08\u5e26\u501f\u4f4d\u51cf\u6cd5\uff09\u3001DEC\uff08\u51cf1\uff09\u3001NEG\uff08\u6c42\u8865\uff09\u3001CMP\uff08\u6bd4\u8f83\uff09
\u4e58\u6cd5\u6307\u4ee4 MUL\uff08\u65e0\u7b26\u53f7\u6570\u4e58\u6cd5\uff09\u3001IMUL\uff08\u5e26\u7b26\u53f7\u6570\u4e58\u6cd5\uff09
\u9664\u6cd5\u6307\u4ee4 DIV\uff08\u65e0\u7b26\u53f7\u6570\u9664\u6cd5\uff09\u3001IDIV\uff08\u5e26\u7b26\u53f7\u6570\u9664\u6cd5\uff09\u3001CBW\uff08\u5b57\u8282\u8f6c\u6362\u4e3a\u5b57\uff09\u3001CWD\uff08\u5b57\u8f6c\u6362\u4e3a\u53cc\u5b57\uff09


3\uff09\u903b\u8f91\u6307\u4ee4\uff1a\u5bf9\u5b57\u6216\u5b57\u8282\u6267\u884c\u903b\u8f91\u8fd0\u7b97\u3002
\u903b\u8f91\u6307\u4ee4\u7c7b\u578b \u6307 \u4ee4 \u8bf4 \u660e
\u903b\u8f91\u8fd0\u7b97\u6307\u4ee4 AND\uff08\u903b\u8f91\u4e0e\uff09\u3001OR\uff08\u903b\u8f91\u6216\uff09\u3001NOT\uff08\u903b\u8f91\u975e\uff09\u3001XOR\uff08\u5f02\u6216\uff09\u3001TEST\uff08\u6d4b\u8bd5\uff09
\u79fb\u52a8\u6307\u4ee4 SHL\uff08\u903b\u8f91\u5de6\u79fb\uff09\u3001SAL\uff08\u7b97\u672f\u5de6\u79fb\uff09\u3001SHR\uff08\u903b\u8f91\u53f3\u79fb\uff09\u3001SAR\uff08\u7b97\u672f\u53f3\u79fb\uff09\u3001ROL\uff08\u5faa\u73af\u5de6\u79fb\uff09\u3001ROR\uff08\u5faa\u73af\u53f3\u79fb\uff09\u3001RCL\uff08\u5e26\u8fdb\u4f4d\u5faa\u73af\u5de6\u79fb\uff09\u3001RCR\uff08\u5e26\u8fdb\u4f4d\u53f3\u79fb\uff09


4\uff09\u4e32\u5904\u7406\u6307\u4ee4\uff1a\u5904\u7406\u5b58\u653e\u5b58\u50a8\u5668\u91cc\u7684\u6570\u636e\u4e32\u3002
\u4e32\u5904\u7406\u6307\u4ee4\u7c7b\u578b \u6307 \u4ee4 \u8bf4 \u660e
\u6307 \u4ee4 MOVS\uff08\u4e32\u4f20\u9001\uff09\u3001CMPS\uff08\u4e32\u6bd4\u8f83\uff09\u3001SCAS\uff08\u4e32\u626b\u63cf\uff09\u3001LODS\uff08\u4ece\u4e32\u53d6\uff09\u3001STOS\uff08\u5b58\u5165\u4e32\uff09


5\uff09\u63a7\u5236\u8f6c\u79fb\u6307\u4ee4\uff1a\u7528\u6765\u63a7\u5236\u7a0b\u5e8f\u7684\u6267\u884c\u6d41\u7a0b\u3002
\u63a7\u5236\u8f6c\u79fb\u6307\u4ee4\u7c7b\u578b \u6307 \u4ee4 \u8bf4 \u660e
\u65e0\u6761\u4ef6\u8f6c\u79fb\u6307\u4ee4 JMP\uff08\u6bb5\u95f4\u548c\u6bb5\u5185\u8f6c\u79fb\uff09
\u6761\u4ef6\u8f6c\u79fb\u6307\u4ee4 JZ\uff08\u7ed3\u679c\u4e3a0\uff08\u6216\u76f8\u7b49\uff09\u5219\u8f6c\u79fb\uff09\u3001JS\uff08\u7ed3\u679c\u4e3a\u8d1f\u5219\u8f6c\u79fb\uff09\u3001JNS\uff08\u7ed3\u679c\u4e3a\u6b63\u5219\u8f6c\u79fb\uff09\u3001JO\uff08\u6ea2\u51fa\u5219\u8f6c\u79fb\uff09\u3001JNO\uff08\u4e0d\u6ea2\u51fa\u5219\u8f6c\u79fb\uff09\u3001JP\uff08\u5947\u5076\u4f4d\u4e3a1\u5219\u8f6c\u79fb\uff09\u3001JNP\uff08\u5947\u5076\u4f4d\u4e3a0\u5219\u8f6c\u79fb\uff09
\u5faa\u73af\u6307\u4ee4 LOOP\uff08\u5faa\u73af\u6307\u4ee4\uff09\u3001LOOPPZ/LOOPE\uff08\u5f53\u4e3a0\u6216\u76f8\u7b49\u65f6\u5faa\u73af\u6307\u4ee4\uff09\u3001LOOPNZ/LOOPNE\uff08\u5f53\u4e0d\u4e3a0\u6216\u4e0d\u76f8\u7b49\u65f6\u5faa\u73af\u6307\u4ee4\uff09
\u5b50\u7a0b\u5e8f\u6307\u4ee4 CALL\uff08\u8c03\u7528\u6307\u4ee4\uff09\u3001RET\uff08\u8fd4\u56de\u6307\u4ee4\uff09
\u4e2d\u65ad\u6307\u4ee4 INT\uff08\u4e2d\u65ad\uff09\u3001INTO\uff08\u5982\u6ea2\u51fa\u5219\u4e2d\u65ad\uff09\u3001RIET\uff08\u4ece\u4e2d\u65ad\u8fd4\u56de\uff09

IBM-PC\u6c47\u7f16\u8bed\u8a00\u6307\u4ee4\u96c6


\u6570\u636e\u4f20\u9001\u6307\u4ee4\u96c6
MOV
\u529f\u80fd: \u628a\u6e90\u64cd\u4f5c\u6570\u9001\u7ed9\u76ee\u7684\u64cd\u4f5c\u6570
\u8bed\u6cd5: MOV \u76ee\u7684\u64cd\u4f5c\u6570,\u6e90\u64cd\u4f5c\u6570
\u683c\u5f0f: MOV r1,r2
MOV r,m
MOV m,r
MOV r,data

XCHG
\u529f\u80fd: \u4ea4\u6362\u4e24\u4e2a\u64cd\u4f5c\u6570\u7684\u6570\u636e
\u8bed\u6cd5: XCHG
\u683c\u5f0f: XCHG r1,r2 XCHG m,r XCHG r,m

PUSH,POP
\u529f\u80fd: \u628a\u64cd\u4f5c\u6570\u538b\u5165\u6216\u53d6\u51fa\u5806\u6808
\u8bed\u6cd5: PUSH \u64cd\u4f5c\u6570 POP \u64cd\u4f5c\u6570
\u683c\u5f0f: PUSH r PUSH M PUSH data POP r POP m

PUSHF,POPF,PUSHA,POPA
\u529f\u80fd: \u5806\u6808\u6307\u4ee4\u7fa4
\u683c\u5f0f: PUSHF POPF PUSHA POPA

LEA,LDS,LES
\u529f\u80fd: \u53d6\u5730\u5740\u81f3\u5bc4\u5b58\u5668
\u8bed\u6cd5: LEA r,m LDS r,m LES r,m

XLAT(XLATB)
\u529f\u80fd: \u67e5\u8868\u6307\u4ee4
\u8bed\u6cd5: XLAT XLAT m
\u7b97\u6570\u8fd0\u7b97\u6307\u4ee4
ADD,ADC
\u529f\u80fd: \u52a0\u6cd5\u6307\u4ee4
\u8bed\u6cd5: ADD OP1,OP2 ADC OP1,OP2
\u683c\u5f0f: ADD r1,r2 ADD r,m ADD m,r ADD r,data
\u5f71\u54cd\u6807\u5fd7: C,P,A,Z,S,O

SUB,SBB
\u529f\u80fd:\u51cf\u6cd5\u6307\u4ee4
\u8bed\u6cd5: SUB OP1,OP2 SBB OP1,OP2
\u683c\u5f0f: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data
\u5f71\u54cd\u6807\u5fd7: C,P,A,Z,S,O

INC,DEC
\u529f\u80fd: \u628aOP\u7684\u503c\u52a0\u4e00\u6216\u51cf\u4e00
\u8bed\u6cd5: INC OP DEC OP
\u683c\u5f0f: INC r/m DEC r/m
\u5f71\u54cd\u6807\u5fd7: P,A,Z,S,O

NEG
\u529f\u80fd: \u5c06OP\u7684\u7b26\u53f7\u53cd\u76f8(\u53d6\u4e8c\u8fdb\u5236\u8865\u7801)
\u8bed\u6cd5: NEG OP
\u683c\u5f0f: NEG r/m
\u5f71\u54cd\u6807\u5fd7: C,P,A,Z,S,O
MUL,IMUL
\u529f\u80fd: \u4e58\u6cd5\u6307\u4ee4
\u8bed\u6cd5: MUL OP IMUL OP
\u683c\u5f0f: MUL r/m IMUL r/m
\u5f71\u54cd\u6807\u5fd7: C,P,A,Z,S,O(\u4ec5IMUL\u4f1a\u5f71\u54cdS\u6807\u5fd7)

DIV,IDIV
\u529f\u80fd:\u9664\u6cd5\u6307\u4ee4
\u8bed\u6cd5: DIV OP IDIV OP
\u683c\u5f0f: DIV r/m IDIV r/m
CBW,CWD
\u529f\u80fd: \u6709\u7b26\u53f7\u6570\u6269\u5c55\u6307\u4ee4
\u8bed\u6cd5: CBW CWD
AAA,AAS,AAM,AAD
\u529f\u80fd: \u975e\u538bBCD\u7801\u8fd0\u7b97\u8c03\u6574\u6307\u4ee4
\u8bed\u6cd5: AAA AAS AAM AAD
\u5f71\u54cd\u6807\u5fd7: A,C(AAA,AAS) S,Z,P(AAM,AAD)

DAA,DAS
\u529f\u80fd: \u538b\u7f29BCD\u7801\u8c03\u6574\u6307\u4ee4
\u8bed\u6cd5: DAA DAS
\u5f71\u54cd\u6807\u5fd7: C,P,A,Z,S
\u4f4d\u8fd0\u7b97\u6307\u4ee4\u96c6
AND,OR,XOR,NOT,TEST
\u529f\u80fd: \u6267\u884cBIT\u4e0eBIT\u4e4b\u95f4\u7684\u903b\u8f91\u8fd0\u7b97
\u8bed\u6cd5: 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
\u5f71\u54cd\u6807\u5fd7: C,O,P,Z,S(\u5176\u4e2dC\u4e0eO\u4e24\u4e2a\u6807\u5fd7\u4f1a\u88ab\u8bbe\u4e3a0) NOT\u6307\u4ee4\u4e0d\u5f71\u54cd\u4efb\u4f55\u6807\u5fd7\u4f4d
SHR,SHL,SAR,SAL
\u529f\u80fd: \u79fb\u4f4d\u6307\u4ee4
\u8bed\u6cd5: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL
\u5f71\u54cd\u6807\u5fd7: C,P,Z,S,O
ROR,ROL,RCR,RCL
\u529f\u80fd: \u5faa\u73af\u79fb\u4f4d\u6307\u4ee4
\u8bed\u6cd5: ROR r/m,data/CL ROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL
\u5f71\u54cd\u6807\u5fd7: C,P,Z,S,O
\u7a0b\u5e8f\u6d41\u7a0b\u63a7\u5236\u6307\u4ee4\u96c6
CLC,STC,CMC
\u529f\u80fd: \u8bbe\u5b9a\u8fdb\u4f4d\u6807\u5fd7
\u8bed\u6cd5: CLC STC CMC
\u6807\u5fd7\u4f4d: C
CLD,STD
\u529f\u80fd: \u8bbe\u5b9a\u65b9\u5411\u6807\u5fd7
\u8bed\u6cd5: CLD STD
\u6807\u5fd7\u4f4d: D
CLI,STI
\u529f\u80fd: \u8bbe\u5b9a\u4e2d\u65ad\u6807\u5fd7
\u8bed\u6cd5: CLI STI
\u6807\u5fd7\u4f4d: I
CMP
\u529f\u80fd: \u6bd4\u8f83OP1\u4e0eOP2\u7684\u503c
\u8bed\u6cd5: CMP r/m,r/m/data
\u6807\u5fd7\u4f4d: C,P,A,Z,O
JMP
\u529f\u80fd: \u8df3\u5f80\u6307\u5b9a\u5730\u5740\u6267\u884c
\u8bed\u6cd5: JMP \u5730\u5740
JXX
\u529f\u80fd: \u5f53\u7279\u5b9a\u6761\u4ef6\u6210\u7acb\u5219\u8df3\u5f80\u6307\u5b9a\u5730\u5740\u6267\u884c
\u8bed\u6cd5: JXX \u5730\u5740
\u6ce8:
A: ABOVE,\u5f53C=0,Z=0\u65f6\u6210\u7acb
B: BELOW,\u5f53C=1\u65f6\u6210\u7acb
C: CARRY,\u5f53\u5f01\u65f6\u6210\u7acb CXZ: CX\u5bc4\u5b58\u5668\u7684\u503c\u4e3a0(ZERO)\u65f6\u6210\u7acb
E: EQUAL,\u5f53Z=1\u65f6\u6210\u7acb
G: GREATER(\u5927\u4e8e),\u5f53Z=0\u4e14S=0\u65f6\u6210\u7acb
L: LESS(\u5c0f\u4e8e),\u5f53S\u4e0d\u4e3a\u96f6\u65f6\u6210\u7acb
N: NOT(\u76f8\u53cd\u6761\u4ef6),\u9700\u548c\u5176\u5b83\u7b26\u53f7\u914d\u5408\u4f7f\u7528
O: OVERFLOW,O=1\u65f6\u6210\u7acb
P: PARITY,P=1\u65f6\u6210\u7acb
PE: PARITY EVEN,P=1\u65f6\u6210\u7acb
PO: PARITY ODD,P=0\u65f6\u6210\u7acb
S: SIGN,S=1\u65f6\u6210\u7acb
Z: ZERO,Z=1\u65f6\u6210\u7acb
LOOP
\u529f\u80fd: \u5faa\u73af\u6307\u4ee4\u96c6
\u8bed\u6cd5: LOOP \u5730\u5740
LOOPE(Z)
\u5730\u5740 LOOPNE(Z) \u5730\u5740
\u6807\u5fd7\u4f4d: \u65e0
CALL,RET
\u529f\u80fd: \u5b50\u7a0b\u5e8f\u8c03\u7528,\u8fd4\u56de\u6307\u4ee4
\u8bed\u6cd5: CALL \u5730\u5740 RET RET n
\u6807\u5fd7\u4f4d: \u65e0
INT,IRET
\u529f\u80fd: \u4e2d\u65ad\u8c03\u7528\u53ca\u8fd4\u56de\u6307\u4ee4
\u8bed\u6cd5: INT n IRET
\u6807\u5fd7\u4f4d: \u5728\u6267\u884cINT\u65f6,CPU\u4f1a\u81ea\u52a8\u5c06\u6807\u5fd7\u5bc4\u5b58\u5668\u7684\u503c\u5165\u6808,\u5728\u6267\u884cIRET\u65f6\u5219\u4f1a\u5c06\u5806\u6808\u4e2d\u7684\u6807\u5fd7\u503c\u5f39\u56de\u5bc4\u5b58\u5668
\u5b57\u7b26\u4e32\u64cd\u4f5c\u6307\u4ee4\u96c6
MOVSB,MOVSW,MOVSD
\u529f\u80fd: \u5b57\u7b26\u4e32\u4f20\u9001\u6307\u4ee4
\u8bed\u6cd5: MOVSB MOVSW MOVSD
\u6807\u5fd7\u4f4d: \u65e0
CMPSB,CMPSW,CMPSD
\u529f\u80fd: \u5b57\u7b26\u4e32\u6bd4\u8f83\u6307\u4ee4
\u8bed\u6cd5: CMPSB CMPSW CMPSD
\u6807\u5fd7\u4f4d: C,P,Z,S,O
SCASB,SCASW
\u529f\u80fd: \u5b57\u7b26\u4e32\u641c\u7d22\u6307\u4ee4
\u8bed\u6cd5: SCASB SCASW
\u6807\u5fd7\u4f4d: C,P,Z,S,O
LODSB,LODSW,STOSB,STOSW
\u529f\u80fd: \u5b57\u7b26\u4e32\u8f7d\u5165\u6216\u5b58\u8d2e\u6307\u4ee4
\u8bed\u6cd5: LODSB LODSW STOSB STOSW
\u6807\u5fd7\u4f4d: \u65e0
REP,REPE,REPNE
\u529f\u80fd: \u91cd\u590d\u524d\u7f00\u6307\u4ee4\u96c6
\u8bed\u6cd5: REP \u6307\u4ee4S REPE \u6307\u4ee4S REPNE \u6307\u4ee4S
\u6807\u5fd7\u4f4d: \u4f9d\u6307\u4ee4S\u800c\u5b9a

\u5bf9\u4e8eIBM PC\u673a\u5b83\u6709\u5b83\u7684\u6307\u4ee4\u7cfb\u7edf\uff0c\u5176\u4e2d\u5305\u62ec\uff1a\u6570\u636e\u4f20\u9001\u6307\u4ee4\u3001\u4e32\u5904\u7406\u6307\u4ee4\u3001\u7b97\u672f\u6307\u4ee4\u3001\u63a7\u5236\u79fb\u52a8\u6307\u4ee4\u3001\u903b\u8f91\u6307\u4ee4\u3001\u5904\u7406\u673a\u63a7\u5236\u6307\u4ee4\u3002
\u8fd9\u91cc\u5c06\u7b80\u5355\u4ecb\u7ecd\u5176\u6307\u4ee4\u7c7b\u578b\u53ca\u6307\u4ee4\u8bf4\u660e\uff0c\u5982\u6709\u8981\u6c42\u7ed9\u5177\u4f53\u7684\u6307\u4ee4\u683c\u5f0f\u53ca\u5e94\u7528\uff0c\u8bf7\u4e0eamay\u8054\u7cfb\uff0camay\u52a0\u4ee5\u66f4\u65b0\u3002
1)\u6570\u636e\u4f20\u9001\u6307\u4ee4\uff1a\u8d1f\u8d23\u628a\u6570\u636e\u3001\u5730\u5740\u6216\u7acb\u5373\u6570\u4f20\u9001\u5230\u5bc4\u5b58\u5668\u6216\u5b58\u50a8\u5355\u5143\u4e2d\u3002
\u6570\u636e\u4f20\u9001\u6307\u4ee4\u7c7b\u578b \u6307 \u4ee4 \u8bf4 \u660e
\u901a\u7528\u6570\u636e\u4f20\u9001\u6307\u4ee4 MOV\uff08\u4f20\u9001\uff09\u3001PUSH\uff08\u8fdb\u6808\uff09\u3001POP\uff08\u51fa\u6808\uff09\u3001XCHG\uff08\u4ea4\u6362\uff09
\u7d2f\u52a0\u5668\u4e13\u7528\u4f20\u9001\u6307\u4ee4 IN\uff08\u8f93\u5165\u6307\u4ee4\uff09 \u3001OUT\uff08\u8f93\u5165\u6307\u4ee4\uff09
\u5730\u5740\u4f20\u9001\u6307\u4ee4 LEA\uff08\u6709\u6548\u5730\u5740\u9001\u5bc4\u5b58\u5668\uff09\u3001LDS\uff08\u6307\u9488\u9001\u5bc4\u5b58\u5668\u548cDS\uff09\u3001LES\uff08\u6307\u9488\u9001\u5bc4\u5b58\u5668\u548cES\uff09
\u6807\u5fd7\u5bc4\u5b58\u5668\u4f20\u9001\u6307\u4ee4 LAHF\uff08\u6807\u5fd7\u9001AH\uff09\u3001SAHF\uff08AH\u9001\u6807\u5fd7\u5bc4\u5b58\u5668\uff09\u3001PUSHF\uff08\u6807\u5fd7\u8fdb\u6808\uff09\u3001POPF\uff08\u6807\u5fd7\u51fa\u6808\uff09


2\uff09\u7b97\u672f\u6307\u4ee4\uff1a\u7528\u6765\u6267\u884c\u7b97\u672f\u8fd0\u7b97\u3002
\u7b97\u672f\u6307\u4ee4\u7c7b\u578b \u6307 \u4ee4 \u8bf4 \u660e
\u52a0\u6cd5\u6307\u4ee4 ADD\uff08\u52a0\u6cd5\uff09\u3001ADC\uff08\u5e26\u8fdb\u4f4d\u52a0\u6cd5\uff09\u3001INC\uff08\u52a01\uff09
\u51cf\u6cd5\u6307\u4ee4 SUB\uff08\u51cf\u6cd5\uff09\u3001SBB\uff08\u5e26\u501f\u4f4d\u51cf\u6cd5\uff09\u3001DEC\uff08\u51cf1\uff09\u3001NEG\uff08\u6c42\u8865\uff09\u3001CMP\uff08\u6bd4\u8f83\uff09
\u4e58\u6cd5\u6307\u4ee4 MUL\uff08\u65e0\u7b26\u53f7\u6570\u4e58\u6cd5\uff09\u3001IMUL\uff08\u5e26\u7b26\u53f7\u6570\u4e58\u6cd5\uff09
\u9664\u6cd5\u6307\u4ee4 DIV\uff08\u65e0\u7b26\u53f7\u6570\u9664\u6cd5\uff09\u3001IDIV\uff08\u5e26\u7b26\u53f7\u6570\u9664\u6cd5\uff09\u3001CBW\uff08\u5b57\u8282\u8f6c\u6362\u4e3a\u5b57\uff09\u3001CWD\uff08\u5b57\u8f6c\u6362\u4e3a\u53cc\u5b57\uff09


3\uff09\u903b\u8f91\u6307\u4ee4\uff1a\u5bf9\u5b57\u6216\u5b57\u8282\u6267\u884c\u903b\u8f91\u8fd0\u7b97\u3002
\u903b\u8f91\u6307\u4ee4\u7c7b\u578b \u6307 \u4ee4 \u8bf4 \u660e
\u903b\u8f91\u8fd0\u7b97\u6307\u4ee4 AND\uff08\u903b\u8f91\u4e0e\uff09\u3001OR\uff08\u903b\u8f91\u6216\uff09\u3001NOT\uff08\u903b\u8f91\u975e\uff09\u3001XOR\uff08\u5f02\u6216\uff09\u3001TEST\uff08\u6d4b\u8bd5\uff09
\u79fb\u52a8\u6307\u4ee4 SHL\uff08\u903b\u8f91\u5de6\u79fb\uff09\u3001SAL\uff08\u7b97\u672f\u5de6\u79fb\uff09\u3001SHR\uff08\u903b\u8f91\u53f3\u79fb\uff09\u3001SAR\uff08\u7b97\u672f\u53f3\u79fb\uff09\u3001ROL\uff08\u5faa\u73af\u5de6\u79fb\uff09\u3001ROR\uff08\u5faa\u73af\u53f3\u79fb\uff09\u3001RCL\uff08\u5e26\u8fdb\u4f4d\u5faa\u73af\u5de6\u79fb\uff09\u3001RCR\uff08\u5e26\u8fdb\u4f4d\u53f3\u79fb\uff09


4\uff09\u4e32\u5904\u7406\u6307\u4ee4\uff1a\u5904\u7406\u5b58\u653e\u5b58\u50a8\u5668\u91cc\u7684\u6570\u636e\u4e32\u3002
\u4e32\u5904\u7406\u6307\u4ee4\u7c7b\u578b \u6307 \u4ee4 \u8bf4 \u660e
\u6307 \u4ee4 MOVS\uff08\u4e32\u4f20\u9001\uff09\u3001CMPS\uff08\u4e32\u6bd4\u8f83\uff09\u3001SCAS\uff08\u4e32\u626b\u63cf\uff09\u3001LODS\uff08\u4ece\u4e32\u53d6\uff09\u3001STOS\uff08\u5b58\u5165\u4e32\uff09


5\uff09\u63a7\u5236\u8f6c\u79fb\u6307\u4ee4\uff1a\u7528\u6765\u63a7\u5236\u7a0b\u5e8f\u7684\u6267\u884c\u6d41\u7a0b\u3002
\u63a7\u5236\u8f6c\u79fb\u6307\u4ee4\u7c7b\u578b \u6307 \u4ee4 \u8bf4 \u660e
\u65e0\u6761\u4ef6\u8f6c\u79fb\u6307\u4ee4 JMP\uff08\u6bb5\u95f4\u548c\u6bb5\u5185\u8f6c\u79fb\uff09
\u6761\u4ef6\u8f6c\u79fb\u6307\u4ee4 JZ\uff08\u7ed3\u679c\u4e3a0\uff08\u6216\u76f8\u7b49\uff09\u5219\u8f6c\u79fb\uff09\u3001JS\uff08\u7ed3\u679c\u4e3a\u8d1f\u5219\u8f6c\u79fb\uff09\u3001JNS\uff08\u7ed3\u679c\u4e3a\u6b63\u5219\u8f6c\u79fb\uff09\u3001JO\uff08\u6ea2\u51fa\u5219\u8f6c\u79fb\uff09\u3001JNO\uff08\u4e0d\u6ea2\u51fa\u5219\u8f6c\u79fb\uff09\u3001JP\uff08\u5947\u5076\u4f4d\u4e3a1\u5219\u8f6c\u79fb\uff09\u3001JNP\uff08\u5947\u5076\u4f4d\u4e3a0\u5219\u8f6c\u79fb\uff09
\u5faa\u73af\u6307\u4ee4 LOOP\uff08\u5faa\u73af\u6307\u4ee4\uff09\u3001LOOPPZ/LOOPE\uff08\u5f53\u4e3a0\u6216\u76f8\u7b49\u65f6\u5faa\u73af\u6307\u4ee4\uff09\u3001LOOPNZ/LOOPNE\uff08\u5f53\u4e0d\u4e3a0\u6216\u4e0d\u76f8\u7b49\u65f6\u5faa\u73af\u6307\u4ee4\uff09
\u5b50\u7a0b\u5e8f\u6307\u4ee4 CALL\uff08\u8c03\u7528\u6307\u4ee4\uff09\u3001RET\uff08\u8fd4\u56de\u6307\u4ee4\uff09
\u4e2d\u65ad\u6307\u4ee4 INT\uff08\u4e2d\u65ad\uff09\u3001INTO\uff08\u5982\u6ea2\u51fa\u5219\u4e2d\u65ad\uff09\u3001RIET\uff08\u4ece\u4e2d\u65ad\u8fd4\u56de\uff09

8086/8088指令系统
一、数据传送指令
1.通用数据传送指令
MOV(Move)传送
PUSH(Push onto the stack)进栈
POP(Pop from the stack)出栈
XCHG(Exchange)交换
.MOV 指令
格式为: MOV DST,SRC
执行的操作:(DST)<-(SRC)
.PUSH 进栈指令
格式为:PUSH SRC
执行的操作:(SP)<-(SP)-2
((SP)+1,(SP))<-(SRC)
.POP 出栈指令
格式为:POP DST
执行的操作:(DST)<-((SP+1),(SP))
(SP)<-(SP)+2
.XCHG 交换指令
格式为:XCHG OPR1,OPR2
执行的操作:(OPR1)<-->(OPR2)
2.累加器专用传送指令
IN(Input) 输入
OUT(Output) 输出
XLAT(Translate) 换码
这组指令只限于使用累加器AX 或AL 传送信息.
.IN 输入指令
长格式为: IN AL,PORT(字节)
IN AX,PORT(字)
执行的操作: (AL)<-(PORT)(字节)
(AX)<-(PORT+1,PORT)(字)
短格式为: IN AL,DX(字节)
IN AX,DX(字)
执行的操作: AL<-((DX))(字节)
AX<-((DX)+1,DX)(字)
.OUT 输出指令
长格式为: OUT PORT,AL(字节)
OUT PORT,AX(字)
执行的操作: (PORT)<-(AL)(字节)
(PORT+1,PORT)<-(AX)(字)
短格式为: OUT DX,AL(字节)
OUT DX,AX(字)
执行的操作: ((DX))<-(AL)(字节)
((DX)+1,(DX))<-AX(字)
在IBM-PC 机里,外部设备最多可有65536个I/O 端口,端口(即外设的端口地址)为
0000~FFFFH.其中前256个端口(0~FFH)可以直接在指令中指定,这就是长格式中的PORT,此
时机器指令用二个字节表示,第二个字节就是端口号.所以用长格式时可以在指定中直接指定
端口号,但只限于前256个端口.当端口号>=256时,只能使用短格式,此时,必须先把端口号放到
DX 寄存器中(端口号可以从0000到0FFFFH),然后再用IN 或OUT 指令来传送信息.
.XLAT 换码指令
格式为: XLAT OPR
或: XLAT
执行的操作:(AL)<-((BX)+(AL))
3.有效地址送寄存器指令
LEA(Load effective address)有效地址送寄存器
LDS(Load DS with Pointer)指针送寄存器和DS
LES(Load ES with Pointer)指针送寄存器和ES
.LEA 有效地址送寄存器
格式为: LEA REG,SRC
执行的操作:(REG)<-SRC
指令把源操作数的有效地址送到指定的寄存器中.
.LDS 指针送寄存器和DS 指令
格式为: LDS REG,SRC
执行的操作:(REG)<-(SRC)
(DS)<-(SRC+2)
把源操作数指定的4个相继字节送到由指令指定的寄存器及DS 寄存器中.该指令常指定
SI 寄存器.
.LES 指针送寄存器和ES 指令
格式为: LES REG,SRC
执行的操作: (REG)<-(SRC)
(ES)<-(SRC+2)
把源操作数指定的4个相继字节送到由指令指定的寄存器及ES 寄存器中.该指令常指定
DI 寄存器.
4.标志寄存器传送指令
LAHF(Load AH with flags)标志送AH
SAHF(store AH into flags)AH 送标志寄存器
PUSHF(push the flags) 标志进栈
POPF(pop the flags) 标志出栈
.LAHF 标志送AH
格式为: LAHF
执行的操作:(AH)<-(PWS 的低字节)
.SAHF AH 送标志寄存器
格式为: SAHF
执行的操作:(PWS 的低字节)<-(AH)
.PUSHF 标志进栈
格式为: PUSHF
执行的操作:(SP)<-(SP)-2
((SP)+1,(SP))<-(PSW)
.POPF 标志出栈
格式为: POPF
执行的操作:(PWS)<-((SP)+1,(SP))
(SP)<-(SP+2)
二、算术指令
1.加法指令
ADD(add)加法
ADC(add with carry)带进位加法
INC(increment)加1
.ADD 加法指令
格式: ADD DST,SRC
执行的操作:(DST)<-(SRC)+(DST)
.ADC 带进位加法指令
格式: ADC DST,SRC
执行的操作:(DST)<-(SRC)+(DST)+CF
.ADD 加1指令
格式: INC OPR
执行的操作:(OPR)<-(OPR)+1
2.减法指令
SUB(subtract)减法
SBB(subtract with borrow)带借位减法
DEC(Decrement)减1
NEG(Negate)求补
CMP(Compare)比较
.SUB 减法指令
格式: SUB DST,SRC
执行的操作:(DST)<-(DST)-(SRC)
.SBB 带借位减法指令
格式: SBB DST,SRC
执行的操作:(DST)<-(DST)-(SRC)-CF
.DEC 减1指令
格式: DEC OPR
执行的操作:(OPR)<-(OPR)-1
.NEG 求补指令
格式: NEG OPR
执行的操作:(OPR)<- -(OPR)
.CMP 比较指令
格式: CMP OPR1,OPR2
执行的操作:(OPR1)-(OPR2)
该指令与SUB 指令一样执行减法操作,但不保存结果,只是根据结果设置条件标志西半
球.
3.乘法指令
MUL(Unsigned Multiple)无符号数乘法
IMUL(Signed Multiple)带符号数乘法
.MUL 无符号数乘法指令
格式: MUL SRC
执行的操作:
字节操作数:(AX)<-(AL)*(SRC)
字操作数:(DX,AX)<-(AX)*(SRC)
.IMUL 带符号数乘法指令
格式: IMUL SRC
执行的操作:与MUL 相同,但必须是带符号数,而MUL 是无符号数.
4.除法指令
DIV(Unsigned divide)无符号数除法
IDIV(Signed divide)带符号数除法
CBW(Convert byte to word)字节转换为字
CWD(Contert word to double word)字转换为双字
.DIV 无符号数除法指令
格式: DIV SRC
执行的操作:
字节操作:(AL)<-(AX)/(SRC)的商
(AH)<-(AX)/(SRC)的余数
字操作: (AX)<-(DX,AX)/(SRC)的商
(AX)<-(DX,AX)/(SRC)的余数
.IDIV 带符号数除法指令
格式: DIV SRC
执行的操作:与DIV 相同,但操作数必须是带符号数,商和余数也均为带符号数,且余数的符号
与被除数的符号相同.
.CBW 字节转换为字指令
格式: CBW
执行的操作:AL 的内容符号扩展到AH.即如果(AL)的最高有效位为0,则(AH)=00;如(AL)的最
高有效位为1,则(AH)=0FFH
.CWD 字转换为双字指令
格式: CWD
执行的操作:AX 的内容符号扩展到DX.即如(AX) 的最高有效位为0, 则(DX)=0;否则
(DX)=0FFFFH.
这两条指令都不影响条件码.
三、逻辑指令
1.逻辑运算指令
AND(and) 逻辑与
OR(or) 逻辑或
NOT(not) 逻辑非
XOR(exclusive or)异或
TEST(test) 测试
.AND 逻辑与指令
格式: AND DST,SRC
执行的操作:(DST)<-(DST)^(SRC)
.OR 逻辑或指令
格式: OR DST,SRC
执行的操作:(DST)<-(DST)V(SRC)
.NOT 逻辑非指令
格式: NOT OPR
执行的操作:(OPR)<-(OPR)
.XOR 异或指令
格式: XOR DST,SRC
执行的操作:(DST)<-(DST)V(SRC)
.TEST 测试指令
格式: TEST OPR1,OPR2
执行的操作:(DST)^(SRC)
两个操作数相与的结果不保存,只根据其特征置条件码
2.移位指令
SHL(shift logical left) 逻辑左移
SAL(shift arithmetic left) 算术左移
SHR(shift logical right) 逻辑右移
SAR(shift arithmetic right) 算术右移
ROL(Rotate left) 循环左移
ROR(Rotate right) 循环右移
RCL(Rotate left through carry) 带进位循环左移
RCR(Rotate right through carry) 带进位循环右移
格式: SHL OPR,CNT(其余的类似)
其中OPR 可以是除立即数以外的任何寻址方式.移位次数由CNT 决定,CNT 可以是1或CL.
循环移位指令可以改变操作数中所有位的位置;移位指令则常常用来做乘以2除以2操作.
其中算术移位指令适用于带符号数运算,SAL 用来乘2,SAR 用来除以2;而逻辑移位指令则用
来无符号数运算,SHL 用来乘2,SHR 用来除以2.
四、串处理指令
1.与REP 相配合工作的MOVS,STOS 和LODS 指令
.REP 重复串操作直到(CX)=0为上
格式: REP string primitive
其中String Primitive 可为MOVS,LODS 或STOS 指令
执行的操作:
1)如(CX)=0则退出REP,否则往下执行.
2)(CX)<-(CX)-1
3)执行其中的串操作
4)重复1)~3)
.MOVS 串传送指令
格式:可有三种
MOVS DST,SRC
MOVSB(字节)
MOVSW(字)
其中第二、三种格式明确地注明是传送字节或字,第一种格式则应在操作数中表明是字还是
字节操作,例如:
MOVS ES:BYTE PTR[DI],DS:[SI]
执行的操作:
1)((DI))<-((SI))
2)字节操作:
(SI)<-(SI)+(或-)1,(DI)<-(DI)+(或-)1
当方向标志DF=0时用+,当方向标志DF=1时用-
3)字操作:
(SI)<-(SI)+(或-)2,(DI)<-(DI)+(或-)2
当方向标志DF=0时用+,当方向标志DF=1时用-
该指令不影响条件码.
.CLD(Clear direction flag)该指令使DF=0,在执行串操作指令时可使地址自动增量;
.STD(Set direction flag)该指令使DF=1,在执行串操作指令时可使地址自动减量.
.STOS 存入串指令
格式: STOS DST
STOSB(字节)
STOSW(字)
执行的操作:
字节操作:((DI))<-(AL),(DI)<-(DI)+-1
字操作: ((DI))<-(AX),(DI)<-(DI)+-2
该指令把AL 或AX 的内容存入由(DI)指定的附加段的某单元中,并根据DF 的值及数据类型
修改DI 的内容,当它与REP 联用时,可把AL 或AX 的内容存入一个长度为(CX)的缓冲区中.
.LODS 从串取指令
格式: LODS SRC
LODSB
LODSW
执行的操作:
字节操作:(AL)<-((SI)),(SI)<-(SI)+-1
字操作: (AX)<-((SI)),(SI)<-(SI)+-2
该指令把由(SI)指定的数据段中某单元的内容送到AL 或AX 中,并根据方向标志及数据类型
修改SI 的内容.指令允许使用段跨越前缀来指定非数据段的存储区.该指令也不影响条件码.
一般说来,该指令不和REP 联用.有时缓冲区中的一串字符需要逐次取出来测试时,可使
用本指令.
2.与REPE/REPZ 和REPNZ/REPNE 联合工作的CMPS 和SCAS 指令
.REPE/REPZ 当相等/为零时重复串操作
格式: REPE(或REPZ) String Primitive
其中String Primitive 可为CMPS 或SCAS 指令.
执行的操作:
1)如(CX)=0或ZF=0(即某次比较的结果两个操作数不等)时退出,否则往下执行
2)(CX)<-(CX)-1
3)执行其后的串指令
4)重复1)~3)
.REPNE/REPNZ 当不相等/不为零时重复串操作
格式: REPNE(或REPNZ) String Primitive
其中String Primitive 可为CMPS 或SCAS 指令
执行的操作:
除退出条件(CX=0)或ZF=1外,其他操作与REPE 完全相同.
.CMPS 串比较指令
格式: CMP SRC,DST
CMPSB
CMPSW
执行的操作:
1)((SI))-((DI))
2)字节操作:(SI)<-(SI)+-1,(DI)<-(DI)+-1
字操作: (SI)<-(SI)+-2,(DI)<-(DI)+-2
指令把由(SI)指向的数据段中的一个字(或字节)与由(DI)指向的附加段中的一个字(或字节)
相减,但不保存结果,只根据结果设置条件码,指令的其它特性和MOVS 指令的规定相同.
.SCAS 串扫描指令
格式: SCAS DST
SCASB
SCASW
执行的操作:
字节操作:(AL)-((DI)),(DI)<-(DI)+-1
字操作: (AL)-((DI)),(DI)<-(DI)+-2
该指令把AL(或AX)的内容与由(DI)指定的在附加段中的一个字节(或字)进行比较,并不保存
结果,只根据结果置条件码.指令的其他特性和MOVS 的规定相同.
五、控制转移指令
1.无条件转移指令
.JMP(jmp) 跳转指令
1)段内直接短转移
格式:JMP SHORT OPR
执行的操作:(IP)<-(IP)+8位位移量
2)段内直接近转移
格式:JMP NEAR PTR OPR
执行的操作:(IP)<-(IP)+16位位移量
3)段内间接转移
格式:JMP WORD PTR OPR
执行的操作:(IP)<-(EA)
4)段间直接(远)转移
格式:JMP FAR PTR OPR
执行的操作:(IP)<-OPR 的段内偏移地址
(CS)<-OPR 所在段的段地址
5)段间间接转移
格式:JMP DWORD PTR OPR
执行的操作:(IP)<-(EA)
(CS)<-(EA+2)
2.条件转移指令
1)根据单个条件标志的设置情况转移
.JZ(或JE)(Jump if zero,or equal) 结果为零(或相等)则转移
格式:JE(或JZ) OPR
测试条件:ZF=1
.JNZ(或JNE)(Jump if not zero,or not equal) 结果不为零(或不相等)则转移
格式:JNZ(或JNE) OPR
测试条件:ZF=0
.JS(Jump if sign) 结果为负则转移
格式: JS OPR
测试条件:SF=1
.JNS(Jump if not sign) 结果为正则转移
格式:JNS OPR
测试条件:SF=0
.JO(Jump if overflow) 溢出则转移
格式: JO OPR
测试条件:OF=1
.JNO(Jump if not overflow) 不溢出则转移
格式: JNO OPR
测试条件:OF=0
.JP(或JPE)(Jump if parity,or parity even) 奇偶位为1则转移
格式: JP OPR
测试条件:PF=1
.JNP(或JPO)(Jump if not parity,or parity odd) 奇偶位为0则转移
格式: JNP(或JPO) OPR
测试条件:PF=0
.JB(或JNAE,JC)(Jump if below,or not above or equal,or carry) 低于,或者不高于或等于,或进位
位为1则转移
格式:JB(或JNAE,JC) OPR
测试条件:CF=1
.JNB(或JAE,JNC)(Jump if not below,or above or equal,or not carry) 不低于,或者高于或者等于,
或进位位为0则转移
格式:JNB(或JAE,JNC) OPR
测试条件:CF=0
2)比较两个无符号数,并根据比较的结果转移
.JB(或JNAE,JC)
格式:同上
.JNB(或JAE,JNC)
格式:同上
.JBE(或JNA)(Jump if below or equal,or not above) 低于或等于,或不高于则转移
格式:JBE(或JNA) OPR
测试条件:CFVZF=1
.JNBE(或JA)(Jump if not below or equal,or above) 不低于或等于,或者高于则转移
格式:JNBE(或JA) OPR
测试条件:CFVZF=0
3)比较两个带符号数,并根据比较的结果转移
.JL(或LNGE)(Jump if less,or not greater or equal) 小于,或者不大于或者等于则转移
格式:JL(或JNGE) OPR
测试条件:SFVOF=1
.JNL(或JGE)(Jump if not less,or greater or equal)不小于,或者大于或者等于则转移
格式:JNL(或JGE) OPR
测试条件:SFVOF=0
.JLE(或JNG)(Jump if less or equal,or not greater) 小于或等于,或者不大于则转移
格式:JLE(或JNG) OPR
测试条件:(SFVOF)VZF=1
.JNLE(或JG)(Jump if not less or equal,or greater) 不小于或等于,或者大于则转移
格式:JNLE(或JG) OPR
测试条件:(SFVOF)VZF=0
4)测试CX 的值为0则转移指令
.JCXZ(Jump if CX register is zero) CX 寄存器的内容为零则转移
格式:JCXZ OPR
测试条件:(CX)=0
注:条件转移全为8位短跳!
3.循环指令
.LOOP 循环指令
格式: LOOP OPR
测试条件:(CX)<>0
.LOOPZ/LOOPE 当为零或相等时循环指令
格式: LOOPZ(或LOOPE) OPR
测试条件:(CX)<>0且ZF=1
.LOOPNZ/LOOPNE 当不为零或不相等时循环指令
格式: LOOPNZ(或LOOPNE) OPR
测试条件:(CX)<>0且ZF=0
这三条指令的步骤是:
1)(CX)<-(CX)-1
2)检查是否满足测试条件,如满足则(IP)<-(IP)+D8的符号扩充.
4.子程序
.CALL 调用指令
.RET 返回指令
5.中断
.INT 指令
格式: INT TYPE
或INT
执行的操作:(SP)<-(SP)-2
((SP)+1,(SP))<-(PSW)
(SP)<-(SP)-2
((SP)+1,(SP))<-(CS)
(SP)<-(SP)-2
((SP)+1,(SP))<-(IP)
(IP)<-(TYPE*4)
(CS)<-(TYPE*4+2)
.INTO 若溢出则中断
执行的操作:若OF=1则:
(SP)<-(SP)-2
((SP)+1,(SP))<-(PSW)
(SP)<-(SP)-2
((SP)+1,(SP))<-(CS)
(SP)<-(SP)-2
((SP)+1,(SP))<-(IP)
(IP)<-(10H)
(CS)<-(12H)
.IRET 从中断返回指令
格式: IRET
执行的操作:(IP)<-((SP)+1,(SP))
(SP)<-(SP)+2
(CS)<-((SP)+1,(SP))
(SP)<-(SP)+2
(PSW)<-((SP)+1,(SP))
(SP)<-(SP)+2
六、处理机控制指令
1.标志处理指令
.CLC 进位位置0指令(Clear carry)CF<-0
.CMC 进位位求反指令(Complement carry)CF<-CF
.STC 进位位置1指令(Set carry)CF<-1
.CLD 方向标志置0指令(Clear direction)DF<-0
.STD 方向标志置1指令(Set direction)DF<-1
.CLI 中断标志置0指令(Clear interrupt)IF<-0
.STI 中断标志置1指令(Set interrupt)IF<-0
2.其他处理机控制指令
NOP(No Opreation) 无操作
HLT(Halt) 停机
WAIT(Wait) 等待
ESC(Escape) 换码
LOCK(Lock) 封锁
这些指令可以控制处理机状态.这们都不影响条件码.
.NOP 无操作指令
该指令不执行任何操作,其机器码占有一个字节,在调试程序时往往用这条指令占有一定
的存储单元,以便在正式运行时用其他指令取代.
.HLT 停机指令
该指令可使机器暂停工作,使处理机处于停机状态以便等待一次外部中断到来,中断结束
后可继续执行下面的程序.
.WAIT 等待指令
该指令使处理机处于空转状态,它也可以用来等待外部中断的发生,但中断结束后仍返回
WAIT 指令继续德行.
.ESC 换码指令
格式ESC mem
其中mem 指出一个存储单元,ESC 指令把该存储单元的内容送到数据总线去.当然ESC 指令
不允许使用立即数和寄存器寻址方式.这条指令在使用协处理机(Coprocessor)执行某些操作
时,可从存储器指得指令或操作数.协处理机(如8087)则是为了提高速度而可以选配的硬件.
.LOCK 封锁指令
该指令是一种前缀,它可与其他指令联合,用来维持总线的锁存信号直到与其联合的指令
执行完为止.当CPU 与其他处理机协同工作时,该指令可避免破坏有用信息.

我认为我认为我认为我认为我认为我认为我认为我认为我认为 line 1:指定编译时codesg分配给代码段寄存器line 2:定义代码段line 3、4:定义数据段起始地址0020hline 5:bl清0line 6:若没有loop,就是简单地将40h送cx,若有loop,实质是定义了循环次数为40hline 7:bl内的值送[bx]内存放的内存地址。所以,这里不是将bl的值直接送bx存放,是存放到bx中存放的地址指向的存储单元。line 8:bl内的值加1line 9:判断cx是否为0(这里是隐形判断),非0,继续跳转到s处执行语句line 10、11:调用4ch号功能,执行21h中断,程序将返回DOS系统。

  • 姹囩紪鎸囦护闆嗏﹁鍏蜂綋璇︾粏!
    绛旓細灞曞紑鍏ㄩ儴 浣犲緱璇存槸浠涔堟眹缂栧憖銆佸悇绉嶉兘涓嶅悓鐨勩併佽繕鏈夈佺櫨搴︿竴涓嬪惂銆佹兂瀛︿範鍒繛鎼滅储鐨勫姛澶兘鎯崇渷鈥斺 宸茶禐杩 宸茶俯杩< 浣犲杩欎釜鍥炵瓟鐨勮瘎浠锋槸? 璇勮 鏀惰捣 鍏朵粬绫讳技闂2010-07-25 姹囩紪璇█鎸囦护澶у叏,瑕佽缁嗙殑 !!! 468 2013-06-15 姹傛眹缂栨寚浠闆 2 2012-04-26 鎸囦护闆嗗拰姹囩紪璇█鐨勮仈绯 43 2010-11-...
  • 甯哥敤鐨姹囩紪鐮
    绛旓細姹囩紪璇█鍛戒护澶у叏 MOV锛圡OVE锛 浼犻佹寚浠28 PUSH 鍏ユ爤鎸囦护P32 POP 鍑烘爤鎸囦护P33 XCHG锛坋XCHanG锛 浜ゆ崲鎸囦护P34 XLAT锛圱RANSLATE锛 鎹㈢爜鎸囦护P34 LEA 锛圠oad Effective Address锛 鏈夋晥鍦板潃閫佸瘎瀛樺櫒鎸囦护P35 LDS锛圠oad DS with pointer锛 鎸囬拡閫佸瘎瀛樺櫒鍜孌S鎸囦护P35 LES锛圠oad ES with pointer...
  • 姹囩紪璇█鍦51鍗曠墖鏈轰腑鐨勬墍鏈鎸囦护鏈夐偅浜?
    绛旓細[3]. 姹傚弽鎸囦护(1鏉)CPL A ; 绱姞鍣ㄤ腑鐨勫唴瀹规寜浣嶅彇鍙峓4]. 娓呴浂鎸囦护(1鏉)CLR A ; 0鈫(A),绱姞鍣ㄤ腑鐨勫唴瀹规竻0[5]. 閫昏緫涓庢搷浣滄寚浠(6鏉)ANL A,data ;绱姞鍣ˋ涓殑鍐呭鍜岀洿鎺ュ湴鍧鍗曞厓涓殑鍐呭鎵ц涓庨昏緫鎿嶄綔銆傜粨鏋滃瓨鍦ㄥ瘎瀛樺櫒A涓侫NL data,#data ;鐩存帴鍦板潃鍗曞厓涓殑鍐呭鍜岀珛鍗虫暟鎵ц涓庨昏緫鎿嶄綔銆傜粨鏋...
  • 璺眰姹囩紪璇瑷鍛戒护璇﹁В
    绛旓細debug灏姹囩紪a鍛戒护 debug灏忔眹缂朼鍛戒护鏄竴涓緢鏈夌敤鐨勫姛鑳,璁稿鐨勫皬绋嬪簭閮借浠栨潵鍋氥 缂栦竴浜涘皬绋嬪簭姣旀眹缂栬鏉ュ緱鏂逛究,蹇磥銆 鍦―ebug涓,涓柇鏄潪甯告湁鐢ㄧ殑...not 鎸囦护(鍙栧弽杩愮畻)瀵勫瓨鍣ㄦ眰鍙 (閫昏緫杩愮畻)瀛樺偍鍣ㄦ眰鍙 and 鎸囦护(涓庤繍绠) (閫昏緫杩愮畻) 瀵勫瓨鍣 and 瀵勫瓨鍣 瀵勫瓨鍣 瀵勫瓨鍣 and 瀛樺偍鍣 瀵勫瓨鍣 瀛樺偍鍣 and ...
  • 姹傛眹缂璇█鎸囦护,鏈濂借缁嗕簺
    绛旓細姹傛眹缂璇█鎸囦护,鏈濂借缁嗕簺  鎴戞潵绛 2涓洖绛 #鐑# 浠涔堟牱鐨勪汉瀹规槗閬囦笂娓g敺?roken112 2011-05-06 路 TA鑾峰緱瓒呰繃143涓禐 鐭ラ亾绛斾富 鍥炵瓟閲:20 閲囩撼鐜:0% 甯姪鐨勪汉:12涓 鎴戜篃鍘荤瓟棰樿闂釜浜洪〉 鍏虫敞 灞曞紑鍏ㄩ儴 051鎸囦护闆嗚祫鏂欒浆绉绘寚浠 MOV 绉诲姩MOVC 绋嬪紡璁板繂浣撶Щ鍔∕OVX 澶栭儴RAM鍜屾墿灞旾/O...
  • 姹囩紪璇█甯哥敤鎸囦护
    绛旓細姹囩紪璇█鐨鎸囦护鏍煎紡,鐩墠鏈変袱绉嶄笉鍚岀殑鏍囧噯:Windows涓嬬殑姹囩紪璇█鍩烘湰涓婇兘閬靛惊Intel椋庢牸鐨勮娉,姣斿:MASM銆丯ASM;鑰孶nix/Linux涓嬬殑姹囩紪璇█鍩烘湰涓婇兘閬靛惊AT&T椋庢牸鐨勮娉;涓銆佹眹缂栬瑷璇彞鐨勯氱敤鏍煎紡[鍚嶇О[:]] 鎸囦护鐮 [绗竴鎿嶄綔鏁癩[,绗簩鎿嶄綔鏁癩 ;娉ㄩ噴姹囩紪璇█鐨勬寚浠ょ爜鐨勬搷浣滄暟鐨勪釜鏁板彲浠ユ槸0銆1銆2涓;褰撴搷浣滄暟鐨...
  • 姹囩紪璇█ANL鏄粈涔鎸囦护
    绛旓細閫昏緫鎿嶄綔鏁鎸囦护锛1銆丄NL direct,#data 鐩存帴鍦板潃鍗曞厓涓庣珛鍗虫暟鐩糕滀笌鈥濄2銆丄NL A,#data 绱姞鍣ㄤ笌绔嬪嵆鏁扮浉鈥滀笌鈥濄3銆丄NL A,@Ri 绱姞鍣ㄤ笌闂存帴RAM 鍗曞厓鐩糕滀笌鈥濄4銆丄NL A,direct 绱姞鍣ㄤ笌鐩存帴鍦板潃鍗曞厓鐩糕滀笌鈥濄5銆丄NL direct,A 鐩存帴鍦板潃鍗曞厓涓庣疮鍔犲櫒鐩糕滀笌鈥濄6銆丄NL A,Rn 绱姞鍣ㄤ笌瀵勫瓨鍣...
  • 姹傛眹缂閲岄潰鍑犱釜鍛戒护鐨勮嫳鏂囧叏绉
    绛旓細鎵弿鎸囦护 1.椤哄悜鎵弿鎸囦护 BSF(Bit Scan Forward)鏍煎紡锛欱SF DST,RSC 鍔熻兘锛氫粠鍙冲悜宸︽壂鎻廟SC鎿嶄綔鏁颁腑绗竴涓惈1鐨勪綅锛屽苟鎶婃壂鎻忓埌鐨勭涓涓惈1鐨勪綅鍙烽丏ST鎿嶄綔鏁般傝嫢RSC锛0锛屽垯DST鍊间笉纭畾銆傝鏄庯細DST鍜孯SC鍙互鏄16浣嶆垨32浣嶇殑,浣嗛暱搴﹁鐩稿悓銆侱ST鍙兘鏄氱敤瀵勫瓨鍣紝RSC涓嶈兘鏄珛鍗虫暟銆傛爣蹇楋細鑻SC涓...
  • 姹89S52鍗曠墖鏈姹囩紪鎸囦护琛
    绛旓細51鍗曠墖鏈姹囩紪鎸囦护琛 8051 INSTRUCTION SET 1.Arithmetic operations:鎸囦护鐢ㄦ硶 瀛楄妭鏁 鏈哄櫒鍛ㄦ湡鏁 ADD A,@Ri 1 1 ADD A,Rn 1 1 ADD A,direct 2 1 ADD A,#data 2 1 ADDC A,@Ri 1 1 ADDC A,Rn 1 1 ADDC A,direct 2 1 ADDC A,#data 2 1 SUBB A,@Ri 1 1 SUBB A,Rn 1 1 ...
  • 姹囩紪璇█鏈夊摢浜鎸囦护?
    绛旓細ZF鐘舵佺殑缁勫悎銆備负纭畾CF銆乑F鐘舵侊紝杞Щ鍓嶇敤CMP鎸囦护璁剧疆鏍囧織浣嶏紙CMP A锛孊锛夈傚叾涓細鎸囦护JA琛ㄧず CF=0 涓擹F=0 鍗矨>B杞Щ銆傛寚浠B琛ㄧず CF=1 涓擹F=0 鍗矨 <B杞Щ銆傝澶姹囩紪绋嬪簭涓虹▼搴忓紑鍙戙佹眹缂栨帶鍒躲佽緟鍔╄皟璇曟彁渚涗簡棰濆鐨勬敮鎸佹満鍒躲傛湁鐨勬眹缂栬瑷缂栫▼宸ュ叿缁忓父浼氭彁渚涘畯锛屽畠浠篃琚О涓哄畯姹囩紪鍣ㄣ
  • 扩展阅读:万能指令 ... plc所有指令表 ... 快捷指令库入口 ... 苹果ios快捷指令大全 ... 快捷指令官网入口 ... 苹果快捷指令库官网 ... 指令生成器网站 ... plc基础知识指令27个 ... 万能指令库 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网