汇编的调试环境总的来说比较少,也很少有非常好的编译器。reallychenchi设计的轻松汇编是一款非常适合初学者的汇编编译器。轻松汇编是一个汇编语言集成开发环境,主要面向汇编语言初学者,也可以用它进行开发。除了普通的编辑功能以外,它还可以自动整理格式、高亮显示和编译、链接、调试汇编程序,非常方便实用。
轻松汇编的最大特点是可以格式整理,就像VC6.0一样,可以设置断点调试,省却了使用者的不少工作。它可以在Win98/2k/XP下运行,是一款很优秀的软件。
指令
|
英文全拼
|
翻译
|
MOV
|
Move
|
传送
|
PUSH
|
Push onto the stack
|
进栈
|
POP
|
Pop from the stack
|
出栈
|
XCHG
|
Exchange
|
交换
|
指令
|
英文全拼
|
翻译
|
IN
|
Input
|
输入
|
OUT
|
Output
|
输出
|
XLAT
|
Translate
|
换码
|
指令
|
英文全拼
|
翻译
|
LEA
|
Load effective address
|
有效地址送寄存器
|
LDS
|
Load DS with Pointer
|
指针送寄存器和DS
|
LES
|
Load ES with Pointer
|
指针送寄存器和ES
|
指令
|
英文全拼
|
翻译
|
LAHF
|
Load AH with flags
|
标志送AH
|
SAHF
|
store AH into flags
|
AH送标志寄存器
|
PUSHF
|
push the flags
|
标志进栈
|
POPF
|
pop the flags
|
标志出栈
|
指令
|
英文全拼
|
翻译
|
ADD
|
add
|
加法
|
ADC
|
add with carry
|
带进位加法
|
INC
|
increment
|
加1
|
指令
|
英文全拼
|
翻译
|
SUB
|
subtract
|
减法
|
SBB
|
subtract with borrow
|
带借位减法
|
DEC
|
Decrement
|
减1
|
NEG
|
Negate
|
求补
|
CMP
|
Compare
|
比较
|
比较情况
|
无符号数
|
有符号数
|
A=B
|
ZF=1
|
ZF=1
|
A>B
|
CF=0 && ZF=0
|
SF^OF=0 && ZF=0
|
A<B
|
CF=1 && ZF=0
|
SF^OF=1 && ZF=0
|
A>=B
|
CF=0 || ZF=1
|
SF^OF=0 || ZF=1
|
A<=B
|
CF=1 || ZF=1
|
SF^OF=1 || ZF=1
|
指令
|
英文全拼
|
翻译
|
MUL
|
Unsigned Multiple
|
无符号数乘法
|
IMUL
|
Signed Multiple
|
带符号数乘法
|
指令
|
英文全拼
|
翻译
|
DIV
|
Unsigned divide
|
无符号数除法
|
IDIV
|
Signed divide
|
带符号数除法
|
CBW
|
Convert byte to word
|
字节转换为字
|
CWD
|
Contert word to double word
|
字转换为双字
|
指令
|
英文全拼
|
翻译
|
AND
|
and
|
逻辑与
|
OR
|
or
|
逻辑或
|
NOT
|
not
|
逻辑非
|
XOR
|
exclusive or
|
异或
|
TEST
|
test
|
测试
|
AND (位与&)
|
OR ( 位或| )
|
XOR ( 位异或^ )
|
1& 1 = 1
|
1 | 1 = 1
|
1 ^ 1 = 0
|
1 & 0 = 0
|
1 | 0 = 1
|
1 ^ 0 = 1
|
0 & 1 = 0
|
0 | 1 = 1
|
0 ^ 1 = 1
|
0 & 0 = 0
|
0 | 0 = 0
|
0 ^ 0 = 0
|
指令
|
英文全拼
|
翻译
|
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
|
带进位循环右移
|
指令
|
英文全拼
|
翻译
|
REP
|
repeat
|
重复操作
|
MOVS
|
MOVe String
|
串传送指令
|
STOS
|
STOre into String
|
存入串指令
|
LODS
|
LOaD from String
|
从串取指令
|
CLD
|
Clear direction flag
|
使地址自动增量
|
STD
|
Set direction flag
|
使地址自动减量
|
指令
|
英文全拼
|
翻译
|
REPE/REPZ
|
Repeat Equal to Zero
|
等于零时重复操作
|
REPNE/REPNZ
|
Repeat Not Equal to Zero
|
不等于零时重复操作
|
CMPS
|
CoMPare String
|
串比较指令
|
SCAS
|
SCAn String
|
串扫描指令
|
名称
|
格式
|
执行操作
|
段内直接短跳转
|
JMP SHORT OPR
|
IP=IP+8 位偏移量
|
段内直接近转移
|
JMP NEAR PTR OPR
|
IP=IP+16位偏移量
|
段内间接转移
|
JMP WORD PTR OPR
|
IP=(EA)
|
段间直接转移
|
JMP FAR PTR OPR
|
IP=OPR 偏移地址,CS=OPR 段地址
|
段间间接转移
|
JMP DWORD PTR OPR
|
IP=(EA),CS=(EA+2)
|
指令
|
英文全拼
|
翻译
|
JZ/JE
|
Jump if zero,or equal
|
结果为零(或相等)则转移
|
JNZ/JNE
|
Jump if not zero,or not equal
|
结果不为零(或不相等)则转移
|
JS
|
Jump if sign
|
结果为负则转移
|
JNS
|
Jump if not sign
|
结果为正则转移
|
JO
|
Jump if overflow
|
溢出则转移
|
JNO
|
Jump if not overflow
|
不溢出则转移
|
JP/JPE
|
Jump if parity,or parity even
|
奇偶位为1则转移
|
JNP/ JPO
|
Jump if not parity,or parity odd
|
奇偶位为0则转移
|
JB/JNAE/JC
|
Jump if below,or not above or equal,or carry
|
低于,或者不高于或等于,或进位位为1则转移
|
JNB/JAE/JNC
|
Jump if not below,or above or equal,or not carry
|
不低于,或者高于或者等于,或进位位为0则转移
|
名称
|
简写
|
Flag == TRUE [1]
|
Flag ==FALSE [ 0]
|
Zero Falg
|
ZF
|
JE/JZOPR结果为零转移
|
JNE/JNZOPR结果不为零转移
|
Sign Falg
|
SF
|
JSOPR结果为负转移
|
JNSOPR结果为正转移
|
Overflow Flag
|
OF
|
JOOPR溢出转移
|
JNOOPR不溢出转移
|
Parity Flag
|
PF
|
JP/JPEOPR结果为偶转移
|
JNP/JPOOPR结果为奇转移
|
Carry Flag
|
CF
|
JCOPR有进位转移
|
JNCOPR无进位转移
|
情况
|
指令
|
满足条件
|
指令
|
满足条件
|
A < B
|
JC
|
CF==1
|
JL
|
SF^OF==1&& ZF==0
|
A ≥ B
|
JNC
|
CF==0
|
JNL
|
SF^OF==0 || ZF==1
|
A ≤ B
|
JNA
|
CF==1 || ZF==1
|
JLG
|
SF^OF==1 || ZF==1
|
A > B
|
JA
|
CF==0 && ZF==0
|
JG
|
SF^OF==0 && ZF==0
|
指令
|
英文全拼
|
翻译
|
JB/JNAE/JC
|
Jump if less,or not greater or equal
|
小于,或者不大于或者等于则转移
|
JNB/JAE/JNC
|
Jump if not less,or greater or equal
|
不小于,或者大于或者等于则转移
|
JBE/JNA
|
Jump if below or equal,or not above
|
低于或等于,或不高于则转移
|
JNBE/JA
|
Jump if not below or equal,or above
|
不低于或等于,或者高于则转移
|
指令
|
英文全拼
|
翻译
|
JL/LNGE
|
Jump if less,or not greater or equal
|
小于,或者不大于或者等于则转移
|
JNL/JGE
|
Jump if not less,or greater or equal
|
不小于,或者大于或者等于则转移
|
JLE/JNG
|
Jump if less or equal,or not greater
|
小于或等于,或者不大于则转移
|
JNLE/JG
|
Jump if not less or equal,or greater
|
不小于或等于,或者大于则转移
|
调用方式
|
格式
|
断点保护入栈情况
|
过程入口地址
|
段内直接
|
CALL NEAR PTR PR1
|
(SP-1)(SP-2)←IP,CS不进栈CS值保持不变
|
IP←DST
|
段内间接
|
CALL WORD PTR (EA)
|
(SP-1)(SP-2)←IP,CS不进栈CS值保持不变
|
IP←(EA)
|
段间直接
|
CALL FAR PTR PR1
|
(SP-1)(SP-2)←CS,(SP-3)(SP-4)←IP
|
IP←DST偏移地址CS←DST段地址
|
段间间接
|
CALL DWORD PTR (EA)
|
(SP-1)(SP-2)←CS,(SP-3)(SP-4)←IP
|
IP←(EA),CS←(EA+2)
|
指令
|
英文全拼
|
翻译
|
|
CLC
|
Clear carry
|
进位位置0指令
|
CF<-0
|
CMC
|
Complement carry
|
进位位求反指令
|
CF<-CF
|
STC
|
Set carry
|
进位位置1指令
|
CF<-1
|
CLD
|
Clear direction
|
方向标志置0指令
|
DF<-0
|
STD
|
Set direction
|
方向标志置1指令
|
DF<-1
|
CLI
|
Clear interrupt
|
中断标志置0指令
|
IF<-0
|
STI
|
Set interrupt
|
中断标志置1指令
|
IF<-0
|
指令
|
英文全拼
|
翻译
|
NOP
|
No Opreation
|
无操作
|
HLT
|
Halt
|
停机
|
WAIT
|
Wait
|
等待
|
ESC
|
Escape
|
换码
|
LOCK
|
Lock
|
封锁
|
指令
|
英文全拼
|
翻译
|
DAA
|
Decimal Adjust for Addition
|
加法的十进制调整指令
|
DAS
|
Decimal Adjust for Subtraction
|
减法的十进制调整指令
|
AAA
|
ASCII Adjust for Addition
|
加法的ASCII调整指令
|
AAS
|
ASCII Adjust for Subtraction
|
减法的ASCII调整指令
|