- 积分
- 102
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
这是我整理的指令, 有些地方我也搞不懂, 请知道的朋友加上:
ADD 加
ADDB 字节加
ADDC 加带进位
ADDCB 字节加带进位
SUB 减
SUBB 字节减
SUBC 减带进位
SUBCB 字节减带进位
MUL 带符号乘
MULU 无符号乘
DIV 带符号除
DIVL 带符号长除
DIVLU 无符号长除
DIVU 无符号除
CPL 置入正号
CPLB 字节置入正号
NEG 置负
NEGB 字节置负
AND 与
ANDB 字节与
OR 或
ORB 字节或
XOR 与非
XORB 字节与非
BCLR 内存清零
BSET 内存置数
BMOV 内存导入
BMOVN 内存负导入
BAND 内存与
BOR 内存或
BXOR 内存与非
BCMP 内存比较
BFLDH
BFLDL
CMP 比较
CMPB 字节比较
CMPD1
CMPD2
CMPL1
CMPL2
PRIOR 测定循环次数
SHL 左移
SHR 右移
ROL 反转左边字节
ROR 反转右边字节
ASHR
MOV 取值
MOVB 字节取值
MOVBS 取字节值
MOVBZ 同时置零
JMPA 跳绝对地址
JMPI 回跳
JMPR 跳相对地址
JMPS 跳段地址
JB 有值相对跳
JBC 跳后内存值清零
JNB 无值相对跳
JNBS 无值相对跳并入值
CALLA 绝对地址调用
CALLI 回调
CALLR 相对地址调用
CALLS 段地址调用
PCALL 调用并压栈
TRAP 调用交互值
POP 出栈
PUSH 压栈
SCXT 压栈并置入新值
RET 返回调用
RETS 返回调用
RETP 返回调用并出栈
RETI 返回最上层
SRST 重置系统
IDLE 进入空闲状态
PWRDN 进入最小活动
SRVWDT 监视时钟
DISWDT 取消监视时钟
EINIT 完成标志
ATOMIC 原子次序
EXTR 开始扩展寄存器
EXTP 开始扩展页
EXTPR 开始扩展页及寄存器
EXTS 开始扩展段
EXTSR 开始扩展段及寄存器
NOP 无操作
条件判断
cc_UC 无条件
cc_Z 零
cc_NZ 非零
cc_V 溢出
cc_NV 非溢出
cc_N 负
cc_NN 非负
cc_C 进位
cc_NC 非进位
cc_EQ 相等
cc_NE 不等
cc_ULT 无符号小于
cc_ULE 无符号小于等于
cc_UGE 无符号大于等于
cc_UGT 无符号大于
cc_SLE 小于等于
cc_SGE 大于等于
cc_SGT 大于
cc_NET 不等并且不是最后
以下是引自狼大的修改入门:
在我们的修改中,见到的大多数指令都很简单,不外乎CALL,MOV,JPR,ADD,SUB等,只需注意一下段内跳转和段间跳转即可。还有EXTP等系列指令,在修改中经常见到。他是临时更换页地址的指令,比如D7 40 34 00,为EXTP #32 #1。#32(临时页地址),#1(有效指令数)。表示下面的1条指令的页地址为32H。还需要注意的是乘和除使用乘法寄存器MD进行操作。比如Mul op1,op2执行的操作时MD=op1*op2。32位寄存器MD的地址是FF0C。MDL是FF0C,而MDH是FF0E。除法时则是先把被除数放入MD。DIV op执行的是(MDL)=(MD)/(op1),(MDH)=(MD)mod(op1。
[ 本帖最后由 wwssff 于 2005-11-11 12:50 编辑 ] |
评分
-
查看全部评分
|