街机模拟游戏逆向工程(HACKROM)教程:[8]68K汇编指令简介

发布时间:2024年01月18日

指令名?? ?相关属性&解释


ABCD??? Binary-Coded Decimal码求和运算
?? ?运算:????????原操作数(10进制)+目的操作数(10进制)+X? 置入 目的操作数
?? ?语法:????????ABCD Dy,Dx
?????????????????????? ABCD -(Ay),-(Ax)
?? ?操作数长度:B
?? ?条件码(标志位):?? ?X — 置与C位相同。
?? ??? ??? ??? ?????????????????????????N — 未定义。
?? ??? ??? ??? ?????????????????????????Z — 结果不为零则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 未定义。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



ADD?? ?Add 求和
?? ?运算:????????原操作数+目的操作数 置入 目的操作数
?? ?语法:????????ADD <ea>,Dn
?? ??? ??????????????? ADD Dn,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 置与C位相同。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果发生溢出则置1;其它情况置0。
?? ??? ??? ??? ???????????????????????? C — 如果有进位/借位则置1;其它情况置0。



ADDA?? ?Add Address 求和(地址)
?? ?运算:?? ?原操作数+目的操作数 置入 目的操作数
?? ?语法:?? ?ADDA <ea>,An
?? ?操作数长度:W、L
?? ?条件码(标志位):不受影响。



ADDI?? ?Add Immediate 求和(立即数)
?? ?运算:?? ?立即数+目的操作数 置入 目的操作数
?? ?语法:?? ?ADDI #<data>,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 置与C位相同。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果发生溢出则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



ADDQ?? ?Add Quick 求和
?? ?运算:?? ?立即数+目的操作数 置入 目的操作数
?? ?语法:?? ?ADDI #<data>,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):当目的操作数是地址寄存器的时候不受影响。
?? ??? ??? ??? ?????????????????????????X — 置与C位相同。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果发生溢出则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



ADDX?? ?Add Extended 求和(扩展)
?? ?运算:?? ?原操作数+目的操作数 置入 目的操作数
?? ?语法:?? ?ADDX Dy,Dx
?? ??? ??????????? ADDX -(Ay),-(Ax)
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 置与C位相同。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果发生溢出则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



AND?? ?AND Logical 求逻辑与
?? ?运算:?? ?原操作数 “与” 目的操作数 置入 目的操作数
?? ?语法:?? ?AND <ea>,Dn
?? ??? ??????????? AND Dn,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



ANDI?? ?AND Immediate 求逻辑与(立即数)
?? ?运算:?? ?立即数 “与” 目的操作数 置入 目的操作数
?? ?语法:?? ?ANDI #<data>,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



ANDI to CCR?? ?CCR AND Immediate 标志器存器、立即数求逻辑与
?? ?运算:?? ?立即数 “与” 标志器存器 置入 标志器存器
?? ?语法:?? ?ANDI #<data>,CCR
?? ?操作数长度:B
?? ?条件码(标志位):?? ?X — 如果立即数的4位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????N — 如果立即数的3位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????Z — 如果立即数的2位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 如果立即数的1位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????C — 如果立即数的0位为0则置0;其它情况不变。



ASL,ASR?? ??? ?Arithmetic Shift 算术位移
?? ?运算:?? ?目的操作数按计数位移 置入 目的操作数
?? ?语法:?? ?ASL/ASR Dx,Dy
?? ??? ??????????? ASL/ASR #<data>,Dy
?? ??? ??????????? ASL/ASR <ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 存放最后一位被移出的数字。位移计数为0则不受影响。
?? ??? ??? ??? ?????????????????????????N — 最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果在移动过程中最高位发生改变则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 存放最后一位被移出的数字;位移计数为0则置0。



Bcc?? ?Branch Conditionally 条件分支
?? ?运算:?? ?如果条件成立,程序计数器+位移值 置入 程序计数器
?? ?语法:?? ?Bcc <label>
?? ?操作数长度:B、W

?? ?相应指令?? ?分支条件(0:顺序执行、1:转移)?? ?英文解释?? ??? ?中文解释

?? ??? BHI?? ??? ??? ?!C&&!Z?? ??? ??? ??? ?High?? ??? ??? ?高于转移
?? ??? BLS?? ??? ??? ? C||Z?? ??? ??? ??? ?Low or Same?? ??? ?低于或相同转移
?? ??? BCC?? ??? ??? ?? !C?? ??? ??? ??? ?Carry Clear?? ??? ?无进/借位转移
?? ??? BCS?? ??? ??? ??? C?? ??? ??? ??? ?Carry Set?? ??? ?有进/借位转移
?? ??? BNE?? ??? ??? ?? !Z?? ??? ??? ??? ?Not Equal?? ??? ?不为零(不相等)转移
?? ??? BEQ?? ??? ??? ??? Z?? ??? ??? ??? ?Equal?? ??? ??? ?为零(相等)转移
?? ??? BVC?? ??? ??? ?? !V?? ??? ??? ??? ?Overflow Clear?? ??? ?无溢出转移
?? ??? BVS?? ??? ??? ??? V?? ??? ??? ??? ?Overflow Set?? ??? ?有溢出转移
?? ??? BPL?? ??? ??? ?? !N?? ??? ??? ??? ?Plus?? ??? ??? ?非负数转移
?? ??? BMI?? ??? ??? ??? N?? ??? ??? ??? ?Minus?? ??? ??? ?负数转移
?? ??? BGE?? ??? ?????? N&&V||!N&&!V?? ??? ??? ?Greater or Equal?? ?大于等于(不小于)转移
?? ??? BLT?? ??? ????? N&&!V||!N&&V?? ??? ??? ?Less Than?? ??? ?小于转移
?? ??? BGT?? ??? ?? N&&V&&!Z||!N&&!V&&!Z?? ??? ??? ?Greater Than?? ??? ?大于转移
?? ??? BLE?? ??? ?? Z||N&&!V||!N&&V?? ??? ??? ?Less or Equal?? ??? ?小于等于(不大于)转移



BCLR?? ?Test a Bit and Clear 测试并置0某个位
?? ?运算:?? ?测试(目的操作数的位号)置入 Z ;
?? ??? ?0 置入 目的操作数的该位
?? ?语法:?? ?BCLR Dn,<ea>
?? ??? ??????????? BCLR #<data>,<ea>
?? ?操作数长度:B、L
?? ?条件码(标志位):?? ?Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????其它位不受影响。



BRA?? ?Branch Always 无条件分支
?? ?运算:?? ?程序计数器+位移值 置入 程序计数器
?? ?语法:?? ?BRA <label>
?? ?操作数长度:B、W
?? ?条件码(标志位):不受影响。



BSET?? ?Test Bit and Set 测试并置1某个位
?? ?运算:?? ?测试(目的操作数的位号)置入 Z ;
?? ??? ?1 置入 目的操作数的该位
?? ?语法:?? ?BSET Dn,<ea>
?? ??? ??????????? BSET #<data>,<ea>
?? ?操作数长度:B、L
?? ?条件码(标志位):?? ?Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????其它位不受影响。



BSR?? ?Branch to Subroutine 分支到子程序
?? ?运算:?? ?动态堆栈指示器-4 置入 动态堆栈指示器;
?? ??? ?程序计数器 置入 动态堆栈指示器中的地址;
?? ??? ?程序计数器+位移值 置入 程序计数器
?? ?语法:?? ?BSR <label>
?? ?操作数长度:B、W
?? ?条件码(标志位):不受影响。



BTST?? ?Test a Bit 测试某个位
?? ?运算:?? ?测试(目的操作数的位号)置入 Z
?? ?语法:?? ?BTST Dn,<ea>
?? ??? ??????????? BTST #<data>,<ea>
?? ?操作数长度:B、L
?? ?条件码(标志位):?? ?Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????其它位不受影响。



CHK?? ?Check Register Against Bounds 检查数据寄存器是否越界
?? ?运算:?? ?如果 Dn<0 或者 Dn>原操作数
?? ?语法:?? ?CHK <ea>,Dn
?? ?操作数长度:W
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????Z — Dn < 0 则置1;Dn > 有效地址 则置0。
?? ??? ??? ??? ?????????????????????????其它位未定义。



CLR?? ?Clear an Operand 操作数置0
?? ?运算:?? ?0 置入 目的操作数
?? ?语法:?? ?CLR <ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 置0。
?? ??? ??? ??? ?????????????????????????Z — 置1。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



CMP?? ?Compare 比较
?? ?运算:?? ?目的操作数-原操作数 置入 条件位
?? ?语法:?? ?CMP <ea>,Dn
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果发生溢出则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



CMPA?? ?Compare Address 比较(地址)
?? ?运算:?? ?目的操作数-原操作数 置入 条件位
?? ?语法:?? ?CMPA <ea>,Dn
?? ?操作数长度:W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果发生溢出则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



CMPI?? ?Compare Immediate 比较(立即数)
?? ?运算:?? ?目的操作数-立即数 置入 条件位
?? ?语法:?? ?CMPI #<data>,Dn
?? ?操作数长度:W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果发生溢出则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



CMPM?? ?Compare Memory 比较(内存)
?? ?运算:?? ?目的操作数-原操作数 置入 条件位
?? ?语法:?? ?CMPM (Ay)+,(Ax)+
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果发生溢出则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



DBcc?? ?Test Condition,Decrement,and Branch 测试条件-自减-分支,即循环控制
?? ?运算:?? ?如果条件为“假”,Dn-1 置入 Dn ;
?? ??? ?如果 Dn>-1,程序计数器+位移值 置入 程序计数器
?? ?语法:?? ?DBcc Dn,<label>
?? ?操作数长度:W
?? ?条件码(标志位):不受影响。

?? ?相应指令?? ?分支条件(0:顺序执行、1:转移)?? ?英文解释?? ??? ?中文解释

?? ?? DBHI?? ??? ??? ?!C&&!Z?? ??? ??? ??? ?High?? ??? ??? ?高于循环
?? ?? DBLS?? ??? ??? ? C||Z?? ??? ??? ??? ?Low or Same?? ??? ?低于或相同循环
?? ?? DBCC?? ??? ??? ?? !C?? ??? ??? ??? ?Carry Clear?? ??? ?无进/借位循环
?? ?? DBCS?? ??? ??? ??? C?? ??? ??? ??? ?Carry Set?? ??? ?有进/借位循环
?? ?? DBNE?? ??? ??? ?? !Z?? ??? ??? ??? ?Not Equal?? ??? ?不为零(不相等)循环
?? ?? DBEQ?? ??? ??? ??? Z?? ??? ??? ??? ?Equal?? ??? ??? ?为零(相等)循环
?? ?? DBVC?? ??? ??? ?? !V?? ??? ??? ??? ?Overflow Clear?? ??? ?无溢出循环
?? ?? DBVS?? ??? ??? ??? V?? ??? ??? ??? ?Overflow Set?? ??? ?有溢出循环
?? ?? DBPL?? ??? ??? ?? !N?? ??? ??? ??? ?Plus?? ??? ??? ?非负数循环
?? ?? DBMI?? ??? ??? ??? N?? ??? ??? ??? ?Minus?? ??? ??? ?负数循环
?? ?? DBGE?? ??? ?????? N&&V||!N&&!V?? ??? ??? ?Greater or Equal?? ?大于等于(不小于)循环
?? ?? DBLT?? ??? ????? N&&!V||!N&&V?? ??? ??? ?Less Than?? ??? ?小于循环
?? ?? DBGT?? ??? ?? N&&V&&!Z||!N&&!V&&!Z?? ??? ??? ?Greater Than?? ??? ?大于循环
?? ?? DBLE?? ??? ?? Z||N&&!V||!N&&V?? ??? ??? ?Less or Equal?? ??? ?小于等于(不大于)循环



DIVS?? ?Signed Divide 有符号数除法
?? ?运算:?? ?目的操作数÷原操作数 置入 目的操作数
?? ?语法:?? ?DIVS.W <ea>,Dn32/16 fi 16r-16q
?? ?操作数长度:W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果商为负数则置1;其它情况置0;如果发生溢出或除数为0则为定义。
?? ??? ??? ??? ?????????????????????????Z — 如果商为零则置1;其它情况置0。如果发生溢出或除数为0则为定义。
?? ??? ??? ??? ?????????????????????????V — 如果发生溢出则置1;如果除数为0则为定义;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 置0。





EOR?? ?Exclusive-OR Logical 逻辑异或
?? ?运算:?? ?原操作数“异或”目的操作数 置入 目的操作数
?? ?语法:?? ?EOR Dn,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



EORI?? ?Exclusive-OR Immediate 逻辑异或(立即数)
?? ?运算:?? ?立即数“异或”目的操作数 置入 目的操作数
?? ?语法:?? ?EORI #<data>,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



EORI to CCR?? ?Exclusive-OR Immediate to Condition Code 标志器存器、立即数求逻辑异或
?? ?运算:?? ?立即数“异或”标志器存器 置入 标志器存器
?? ?语法:?? ?EORI #<data>,CCR
?? ?操作数长度:B
?? ?条件码(标志位):?? ?X — 如果立即数的4位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????N — 如果立即数的3位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????Z — 如果立即数的2位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 如果立即数的1位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????C — 如果立即数的0位为0则置0;其它情况不变。



EXG?? ?Exchange Registers 寄存器数据交换
?? ?运算:?? ?两个操作数交换
?? ?语法:?? ?EXG Dx,Dy
?? ??? ??????????? EXG Ax,Ay
?? ??? ??????????? EXG Dx,Ay
?? ?操作数长度:L
?? ?条件码(标志位):不受影响。



EXT?? ?Sign-Extend 符号扩展
?? ?运算:?? ?目的操作数符号扩展 置入 目的操作数
?? ?语法:?? ?EXT.W Dnextend byte to word
?? ??? ??????????? EXT.L Dnextend word to long word
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



ILLEGAL?? ??? ?Take Illegal Instruction Trap 非法指令中断
?? ?运算:?? ?管理(控制&中断)堆栈指示器-4 置入 管理堆栈指示器;
?? ??? ?程序计数器 置入 管理堆栈指示器中的地址;
?? ??? ?管理(控制&中断)堆栈指示器-2 置入 管理堆栈指示器;
?? ??? ?非法指令向量地址 置入 程序计数器
?? ?语法:?? ?ILLEGAL
?? ?操作数长度:Unsized
?? ?条件码(标志位):不受影响。



JMP?? ?Jump 跳转
?? ?运算:?? ?目的操作数地址 置入 程序计数器
?? ?语法:?? ?JMP <ea>
?? ?操作数长度:Unsized
?? ?条件码(标志位):不受影响。



JSR?? ?Jump to Subroutine 跳转到子程序
?? ?运算:?? ?动态堆栈指示器-4 置入 动态堆栈指示器;
?? ??? ?程序计数器 置入 动态堆栈指示器中的地址
?? ?语法:?? ?JSR <ea>
?? ?操作数长度:Unsized
?? ?条件码(标志位):不受影响。



LEA?? ?Load Effective Address 载入有效地址
?? ?运算:?? ?有效地址 置入 地址寄存器
?? ?语法:?? ?LEA <ea>,An
?? ?操作数长度:L
?? ?条件码(标志位):不受影响。



LINK?? ?Link and Allocate 链接&分配
?? ?运算:?? ?动态堆栈指示器-4 置入 动态堆栈指示器;
?? ??? ?地址寄存器 置入 动态堆栈指示器中的地址;
?? ??? ?动态堆栈指示器 置入 地址寄存器;
?? ??? ?地址寄存器+位移值 置入 地址寄存器
?? ?语法:?? ?LINK An,#<displacement>
?? ?操作数长度:W
?? ?条件码(标志位):不受影响。



LSL,LSR?? ??? ?Logical Shift 逻辑位移
?? ?运算:?? ?目的操作数按计数位移 置入 目的操作数
?? ?语法:?? ?LSL/LSR Dx,Dy
?? ??? ?????????? ?LSL/LSR #<data>,Dy
?? ??? ?????????? ?LSL/LSR <ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 存放最后一位被移出的数字。位移计数为0则不受影响。
?? ??? ??? ??? ?????????????????????????N — 最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 存放最后一位被移出的数字;位移计数为0则置0。



MOVE?? ?Move Data from Source to Destination 传递数据(原操作数->目的操作数)
?? ?运算:?? ?原操作数 置入 目的操作数
?? ?语法:?? ?MOVE <ea>,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



MOVEA?? ?Move Address 传递地址
?? ?运算:?? ?原操作数 置入 目的操作数
?? ?语法:?? ?MOVEA <ea>,An
?? ?操作数长度:W、L
?? ?条件码(标志位):不受影响。



MOVE to CCR?? ?Move to CCR?? ?传递到标志寄存器
?? ?运算:?? ?原操作数 置入 标志寄存器
?? ?语法:?? ?MOVE <ea>,CCR
?? ?操作数长度:W
?? ?条件码(标志位):?? ?X — 如果立即数的4位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????N — 如果立即数的3位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????Z — 如果立即数的2位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 如果立即数的1位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????C — 如果立即数的0位为0则置0;其它情况不变。



MOVE from SR?? ?Move from the SR 传递(从堆栈寄存器)
?? ?运算:?? ?堆栈寄存器 置入 目的操作数
?? ?语法:?? ?MOVE SR,<ea>
?? ?操作数长度:W
?? ?条件码(标志位):不受影响。



MOVEM?? ?Move Multiple Registers 传递(多个寄存器)
?? ?运算:?? ?寄存器 置入 目的操作数;
?? ??? ?原操作数 置入 寄存器
?? ?语法:?? ?MOVEM <list>,<ea>
?? ??? ?????????? ?MOVEM <ea>,<list>
?? ?操作数长度:W、L
?? ?条件码(标志位):不受影响。
?? ?movem.l D0-D1, -(A7)?? ?入盏
?? ?movem.l (A7)+, D0-D1?? ?出盏



MOVEP?? ?Move Peripheral Data 传递(外围数据???)
?? ?运算:?? ?原操作数 置入 目的操作数
?? ?语法:?? ?MOVEP Dx,(d16,Ay)
?? ??? ?????????? ?MOVEP (d16,Ay),Dx
?? ?操作数长度:W、L
?? ?条件码(标志位):不受影响。



MOVEQ?? ?Move Quick 传递(???)
?? ?运算:?? ?立即数 置入 目的操作数
?? ?语法:?? ?MOVEQ #<data>,Dn
?? ?操作数长度:L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



MULS?? ?Signed Multiply 有符号数乘法
?? ?运算:?? ?原操作数×目的操作数 置入 目的操作数
?? ?语法:?? ?MULS.W <ea>,Dn16×16 fi 32
?? ?操作数长度:W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果有溢出则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



MULU?? ?Unsigned Multiply 无符号数乘法
?? ?运算:?? ?原操作数×目的操作数 置入 目的操作数
?? ?语法:?? ?MULU.W <ea>,Dn16×16 fi 32
?? ?操作数长度:W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 如果有溢出则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 置0。?? ?



NBCD?? ?Negate Decimal with Extend 求负(扩展BCD码)
?? ?运算:?? ?0-目的操作数(10进制)-X 置入 目的操作数
?? ?语法:?? ?NBCD <ea>
?? ?操作数长度:B
?? ?条件码(标志位):?? ?X — 置与C位相同。
?? ??? ??? ??? ?????????????????????????N — 未定义。
?? ??? ??? ??? ?????????????????????????Z — 结果不为零则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 未定义。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



NEG?? ?Negate 求负
?? ?运算:?? ?0-目的操作数 置入 目的操作数



NEGX?? ?Negate with Extend 求负(扩展)
?? ?运算:?? ?0-目的操作数 置入 目的操作数
?? ?语法:?? ?NEGX <ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 置与C位相同。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果不为零则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 如果发生溢出则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



NOP?? ?No Operation 空指令
?? ?运算:?? ?None
?? ?语法:?? ?NOP
?? ?操作数长度:Unsized
?? ?条件码(标志位):不受影响。



NOT?? ?Logical Complement 求补
?? ?运算:?? ?目的操作数求补 置入 目的操作数
?? ?语法:?? ?NOT <ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



OR?? ?Inclusive-OR Logical 逻辑或
?? ?运算:?? ?原操作数“或”目的操作数 置入 目的操作数
?? ?语法:?? ?OR <ea>,Dn
?? ??? ??????????? OR Dn,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



ORI?? ?Inclusive-OR Immediate 逻辑或(立即数)
?? ?运算:?? ?立即数“或”目的操作数 置入 目的操作数
?? ?语法:?? ?ORI #<data>,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 置0。



ORI to CCR?? ?Inclusive-OR Immediate to CCR 标志器存器、立即数求逻辑或
?? ?运算:?? ?原操作数“或”标志器存器 置入 标志器存器
?? ?语法:?? ?ORI #<data>,CCR
?? ?操作数长度:B
?? ?条件码(标志位):?? ?X — 如果立即数的4位为0则置0;其它情况不变。
?? ??? ??? ??? ???????????????????????? N — 如果立即数的3位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????Z — 如果立即数的2位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 如果立即数的1位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????C — 如果立即数的0位为0则置0;其它情况不变。



PEA?? ?Push Effective Address 有效地址压栈
?? ?运算:?? ?动态堆栈指示器-4 置入 动态堆栈指示器;
?? ??? ?有效地址 置入 动态堆栈指示器中的地址
?? ?语法:?? ?PEA <ea>
?? ?操作数长度:L
?? ?条件码(标志位):不受影响。



ROL,ROR?? ??? ?Rotate (Without Extend) 循环移动
?? ?运算:?? ?目的操作数按计数循环移动 置入 目的操作数
?? ?语法:?? ?ROL/ROR Dx,Dy
?? ????????????? ?ROL/ROR #<data>,Dy
?? ????????????? ?ROL/ROR <ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 存放最后一位被移出的数字;位移计数为0则置0。



ROXL,ROXR?? ?Rotate with Extend 循环移动(扩展)
?? ?运算:?? ?目的操作数按计数循环移动 置入 目的操作数
?? ?语法:?? ?ROXL/ROXR Dx,Dy
?? ???????????? ? ?ROXL/ROXR #<data>,Dy
?? ????????????? ?ROXL/ROXR <ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 存放最后一位被移出的数字。位移计数为0则不受影响。
?? ??? ??? ??? ?????????????????????????N — 最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ?????????????????????????V — 置0。
?? ??? ??? ??? ?????????????????????????C — 存放最后一位被移出的数字;位移计数为0则置入扩展位的值。



RTR?? ?Return and Restore CCR 返回并恢复标志寄存器,即出栈
?? ?运算:?? ?动态堆栈指示器中的地址 置入 标志寄存器;
?? ??? ?动态堆栈指示器+2 置入 动态堆栈指示器;
?? ??? ?动态堆栈指示器中的地址 置入 程序计数器;
?? ??? ?动态堆栈指示器+4 置入 动态堆栈指示器
?? ?语法:?? ?RTR
?? ?操作数长度:Unsized
?? ?条件码(标志位):由堆栈中取值。



RTS?? ?Return from Subroutine 从子程序中返回,即回到主程序
?? ?运算:?? ?动态堆栈指示器中的地址 置入 程序计数器;
?? ??? ?动态堆栈指示器+4 置入 动态堆栈指示器
?? ?语法:?? ?RTS
?? ?操作数长度:Unsized
?? ?条件码(标志位):不受影响。



SBCD?? ?Subtract Decimal with Extend 相减(扩展BCD码)
?? ?运算:?? ?目的操作数(10进制)-原操作数(10进制)-X 置入 目的操作数
?? ?语法:?? ?SBCD Dx,Dy
?? ????????????? ?SBCD -(Ax),-(Ay)
?? ?操作数长度:B
?? ?条件码(标志位):?? ?X — 置与C位相同。
?? ??? ??? ??? ?????????????????????????N — 未定义。
?? ??? ??? ??? ?????????????????????????Z — 结果不为零则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 未定义。
?? ??? ??? ??? ?????????????????????????C — 如果有进位/借位则置1;其它情况置0。



Scc?? ?Set According to Condition 按条件置位
?? ?运算:?? ?如果条件成立,目的操作数置1;否则置0
?? ?语法:?? ?Scc <ea>
?? ?操作数长度:B
?? ?条件码(标志位):不受影响。

?? ?相应指令?? ?分支条件(0:顺序执行、1:转移)?? ?英文解释?? ??? ?中文解释

?? ??? SHI?? ??? ??? ?!C&&!Z?? ??? ??? ??? ?High?? ??? ??? ?高于置1
?? ??? SLS?? ??? ??? ? C||Z?? ??? ??? ??? ?Low or Same?? ??? ?低于或相同置1
?? ??? SCC?? ??? ??? ?? !C?? ??? ??? ??? ?Carry Clear?? ??? ?无进/借位置1
?? ??? SCS?? ??? ??? ??? C?? ??? ??? ??? ?Carry Set?? ??? ?有进/借位置1
?? ??? SNE?? ??? ??? ?? !Z?? ??? ??? ??? ?Not Equal?? ??? ?不为零(不相等)置1
?? ??? SEQ?? ??? ??? ??? Z?? ??? ??? ??? ?Equal?? ??? ??? ?为零(相等)置1
?? ??? SVC?? ??? ??? ?? !V?? ??? ??? ??? ?Overflow Clear?? ??? ?无溢出置1
?? ??? SVS?? ??? ??? ??? V?? ??? ??? ??? ?Overflow Set?? ??? ?有溢出置1
?? ??? SPL?? ??? ??? ?? !N?? ??? ??? ??? ?Plus?? ??? ??? ?非负数置1
?? ??? SMI?? ??? ??? ??? N?? ??? ??? ??? ?Minus?? ??? ??? ?负数置1
?? ??? SGE?? ??? ?????? N&&V||!N&&!V?? ??? ??? ?Greater or Equal?? ?大于等于(不小于)置1
?? ??? SLT?? ??? ????? N&&!V||!N&&V?? ??? ??? ?Less Than?? ??? ?小于置1
?? ??? SGT?? ??? ?? N&&V&&!Z||!N&&!V&&!Z?? ??? ??? ?Greater Than?? ??? ?大于置1
?? ??? SLE?? ??? ?? Z||N&&!V||!N&&V?? ??? ??? ?Less or Equal?? ??? ?小于等于(不大于)置1



SUB?? ?Subtract 相减
?? ?运算:?? ?目的操作数-原操作数 置入 目的操作数
?? ?语法:?? ?SUB <ea>,Dn
?? ??? ?????????? ?SUB Dn,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 置入C位的值。
?? ??? ??? ??????????????????????????? ?N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?V — 如果发生溢出则置1;如果除数为0则为定义;其它情况置0。
?? ??? ??? ??????????????????????????? ?C — 如果有进位/借位则置1;其它情况置0。



SUBA?? ?Subtract Address 相减(地址)
?? ?运算:?? ?目的操作数-原操作数 置入 目的操作数
?? ?语法:?? ?SUBA <ea>,An
?? ?操作数长度:W、L
?? ?条件码(标志位):不受影响。



SUBI?? ?Subtract Immediate 相减(立即数)
?? ?运算:?? ?目的操作数-立即数 置入 目的操作数
?? ?语法:?? ?SUBI #<data>,<ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 置入C位的值。
?? ??? ??? ??????????????????????????? ?N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?V — 如果发生溢出则置1;如果除数为0则为定义;其它情况置0。
?? ??? ??? ??????????????????????????? ?C — 如果有进位/借位则置1;其它情况置0。



SUBQ?? ?Subtract Quick 相减(???)
?? ?运算:?? ?目的操作数-立即数 置入 目的操作数
?? ?语法:?? ?SUBQ
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 置入C位的值。
?? ??? ??? ??????????????????????????? ?N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?V — 如果发生溢出则置1;如果除数为0则为定义;其它情况置0。
?? ??? ??? ??????????????????????????? ?C — 如果有进位/借位则置1;其它情况置0。



SUBX?? ?Subtract with Extend 相减(扩展)
?? ?运算:?? ?目的操作数-原操作数-X 置入 目的操作数
?? ?语法:?? ?SUBX Dx,Dy
?? ??? ??????????? SUBX -(Ax),-(Ay)
?? ??? ?操作数长度:B、W、L
?? ??? ?条件码(标志位):?? ?X — 置入C位的值。
?? ??? ??? ??? ??????????????????????????? ?N — 如果结果为负数则置1;其它情况置0。
?? ??? ??? ??? ??????????????????????????? ?Z — 如果结果为零则置1;其它情况置0。
?? ??? ??? ??? ??????????????????????????? ?V — 如果发生溢出则置1;如果除数为0则为定义;其它情况置0。
?? ??? ??? ??????????????????????????? ??? ?C — 如果有进位/借位则置1;其它情况置0。



SWAP?? ?Swap Register Halves 数据寄存器高低位数据交换
?? ?运算:?? ?数据寄存器的 31~16位 与 15~0 位交换
?? ?语法:?? ?SWAP Dn
?? ?操作数长度:W
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??????????????????????????? ??? ?N — 如果32位的最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?Z — 如果32位的结果为零则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?V — 置0。
?? ??? ??? ??????????????????????????? ?C — 置0。



TAS?? ?Test and Set an Operand 测试并置数
?? ?运算:?? ?目的操作数测试 置入 标志寄存器;
?? ??? ?1 置入 目的操作数的7位
?? ?语法:?? ?TAS <ea>
?? ?操作数长度:B
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??????????????????????????? ?N — 如果当前操作数最高(有效)位为1则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?Z — 如果操作数为零则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?V — 置0。
?? ??? ??? ??????????????????????????? ?C — 置0。



TRAP?? ?Trap 中断
?? ?运算:?? ?1 置入 堆栈寄存器的S位
?? ??? ?管理(控制&中断)堆栈指示器-4 置入 管理堆栈指示器;
?? ??? ?程序计数器 置入 管理堆栈指示器中的地址;
?? ??? ?管理堆栈指示器-2 置入 管理堆栈指示器;
?? ??? ?堆栈寄存器 置入 管理堆栈指示器中的地址;
?? ??? ?地址向量 置入 程序计数器
?? ?语法:?? ?TRAP #<vector>
?? ?操作数长度:Unsized
?? ?条件码(标志位):不受影响。



TRAPcc?? ?Trap on Condition 条件中断
?? ?运算:?? ?条件为真则中断
?? ?语法:?? ?TRAPcc
?? ????????????? ?TRAPcc.W #<data>
?? ????????????? ?TRAPcc.L #<data>
?? ?操作数长度:Unsized 或 W、L
?? ?条件码(标志位):不受影响。

?? ?相应指令?? ?分支条件(0:顺序执行、1:转移)?? ?英文解释?? ??? ?中文解释

?? ? TRAPHI?? ??? ??? ?!C&&!Z?? ??? ??? ??? ?High?? ??? ??? ?高于中断
?? ? TRAPLS?? ??? ??? ? C||Z?? ??? ??? ??? ?Low or Same?? ??? ?低于或相同中断
?? ? TRAPCC?? ??? ??? ?? !C?? ??? ??? ??? ?Carry Clear?? ??? ?无进/借位中断
?? ? TRAPCS?? ??? ??? ??? C?? ??? ??? ??? ?Carry Set?? ??? ?有进/借位中断
?? ? TRAPNE?? ??? ??? ?? !Z?? ??? ??? ??? ?Not Equal?? ??? ?不为零(不相等)中断
?? ? TRAPEQ?? ??? ??? ??? Z?? ??? ??? ??? ?Equal?? ??? ??? ?为零(相等)中断
?? ? TRAPVC?? ??? ??? ?? !V?? ??? ??? ??? ?Overflow Clear?? ??? ?无溢出中断
?? ? TRAPVS?? ??? ??? ??? V?? ??? ??? ??? ?Overflow Set?? ??? ?有溢出中断
?? ? TRAPPL?? ??? ??? ?? !N?? ??? ??? ??? ?Plus?? ??? ??? ?非负数中断
?? ? TRAPMI?? ??? ??? ??? N?? ??? ??? ??? ?Minus?? ??? ??? ?负数中断
?? ? TRAPGE?? ??? ?????? N&&V||!N&&!V?? ??? ??? ?Greater or Equal?? ?大于等于(不小于)中断
?? ? TRAPLT?? ??? ????? N&&!V||!N&&V?? ??? ??? ?Less Than?? ??? ?小于中断
?? ? TRAPGT?? ??? ?? N&&V&&!Z||!N&&!V&&!Z?? ??? ??? ?Greater Than?? ??? ?大于中断
?? ? TRAPLE?? ??? ?? Z||N&&!V||!N&&V?? ??? ??? ?Less or Equal?? ??? ?小于等于(不大于)中断



TRAPV?? ?Trap on Overflow 溢出中断
?? ?运算:?? ?V=1时中断
?? ?语法:?? ?TRAPV
?? ?操作数长度:Unsized
?? ?条件码(标志位):不受影响。



TST?? ?Test an Operand 测试一个操作数
?? ?运算:?? ?目的操作数测试 置入 标志寄存器
?? ?语法:?? ?TST <ea>
?? ?操作数长度:B、W、L
?? ?条件码(标志位):?? ?X — 不受影响。
?? ??? ??? ??? ?????????????????????????N — 如果操作数为负数则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?Z — 如果操作数为零则置1;其它情况置0。
?? ??? ??? ??????????????????????????? ?V — 置0。
?? ??? ??? ??????????????????????????? ?C — 置0。



UNLK?? ?Unlink 解除链接
?? ?运算:?? ?地址寄存器 置入 动态堆栈指示器;
?? ??? ?动态堆栈指示器中的地址 置入 地址寄存器;
?? ??? ?动态堆栈指示器+4 置入 动态堆栈指示器
?? ?语法:?? ?UNLK An
?? ?操作数长度:Unsized
?? ?条件码(标志位):不受影响。



ANDI to SR?? ?AND Immediate to the Status Register 立即数、堆栈寄存器求逻辑与
?? ?运算:?? ?如果管理堆栈为真值,原操作数“与”堆栈寄存器 置入 堆栈寄存器;否则中断
?? ?语法:?? ?ANDI #<data>,SR
?? ?操作数长度:W
?? ?条件码(标志位):?? ?X — 如果立即数的4位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????N — 如果立即数的3位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????Z — 如果立即数的2位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 如果立即数的1位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????C — 如果立即数的0位为0则置0;其它情况不变。



EORI to SR?? ?Exclusive-OR Immediate to the SR 立即数、堆栈寄存器求逻辑异或
?? ?运算:?? ?如果管理堆栈为真值,原操作数“异或”堆栈寄存器 置入 堆栈寄存器;否则中断
?? ?语法;?? ?EORI #<data>,SR
?? ?操作数长度:W
?? ?条件码(标志位):?? ?X — 如果立即数的4位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????N — 如果立即数的3位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????Z — 如果立即数的2位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 如果立即数的1位为0则置0;其它情况不变。
?? ??? ??? ??????????????????????????? ?C — 如果立即数的0位为0则置0;其它情况不变。



MOVE to SR?? ?Move to the SR 传递(到堆栈寄存器)
?? ?运算:?? ?如果管理堆栈为真值,原操作数 置入 堆栈寄存器;否则中断
?? ?语法:?? ?MOVE <ea>,SR
?? ?操作数长度:W
?? ?条件码(标志位):按照原操作数置数。



MOVE to USP?? ?Move User Stack Pointer 传递(用户堆栈寄存器)
?? ?运算:?? ?如果管理堆栈为真值,用户堆栈寄存器 置入 地址寄存器
?? ??? ?或地址寄存器 置入 用户堆栈寄存器;否则中断
?? ?语法:?? ?MOVE USP,An
?? ????????????? ?MOVE An,USP
?? ?操作数长度:L
?? ?条件码(标志位):不受影响。



ORI to SR?? ?Inclusive-OR Immediate to the SR 立即数、堆栈寄存器求逻辑或
?? ?运算:?? ?如果管理堆栈为真值,原操作数“或”堆栈寄存器 置入 堆栈寄存器;否则中断
?? ?语法:?? ?ORI #<data>,SR
?? ?操作数长度:W
?? ?条件码(标志位):?? ?X — 如果立即数的4位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????N — 如果立即数的3位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????Z — 如果立即数的2位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????V — 如果立即数的1位为0则置0;其它情况不变。
?? ??? ??? ??? ?????????????????????????C — 如果立即数的0位为0则置0;其它情况不变。



RESET?? ?Reset External Devices 重置外部设备
?? ?运算:?? ?如果管理堆栈为真值,……;否则中断
?? ?语法:?? ?RESET
?? ?操作数长度:Unsized
?? ?条件码(标志位):不受影响。



RTE?? ?Return from Exception 从异常中返回
?? ?运算:?? ?如果管理堆栈为真值,
?? ??? ??? ?动态堆栈指示器中的地址 置入 堆栈寄存器;
?? ??? ??? ?动态堆栈指示器+2 置入 动态堆栈指示器;
?? ??? ??? ?动态堆栈指示器中的地址 置入 程序控制器;
?? ??? ??? ?动态堆栈指示器+4 置入 动态堆栈指示器;
?? ??? ??? ?Restore State and Deallocate Stack According to (SP) ???
?? ??? ?否则中断
?? ?语法:?? ?RTE
?? ?操作数长度:Unsized
?? ?条件码(标志位):Set according to the condition code bits
?? ??? ??? ?in the status register value restored from the stack.



STOP?? ?load Status Register and Stop
?? ?运算:?? ?如果管理堆栈为真值,立即数 置入 堆栈寄存器,STOP;否则中断
?? ?语法:?? ?STOP #<data>
?? ?操作数长度:Unsized
?? ?条件码(标志位):按照立即数置数。
?


文章来源:https://blog.csdn.net/m0_50114967/article/details/135447350
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。