逻辑操作指令(Logical)
下面的这些指令可以对累加器的内容和存储在内存中的另一个值执行逻辑操作。BIT指令执行一个逻辑与来测试内存值中位的存在,以设置标记,但不保存结果。
指令名称 | 指令功能 | 影响标志位 |
---|---|---|
AND | 逻辑与(Logical AND) | N,Z |
EOR | 逻辑或(Exclusive OR ) | N,Z |
ORA | 逻辑包含或(Logical Inclusive OR) | N,Z |
BIT | 位测试(Bit Test) | N,V,Z |
算术操作指令(Arithmetic)
算术运算操作指令用来对累加器中的数据执行加法和减法运算。而比较运算操作指令则用来实现累加器、X或Y寄存器与内存中数值的比较。
指令名称 | 指令功能 | 影响标志位 |
---|---|---|
ADC | 带进位的加法(Add with Carry) | N,V,Z ,C |
SBC | 带进位的减法(Subtract with Carry ) | N,V,Z ,C |
CMP | 与累加器比较运算(Compare accumulator) | N,Z ,C |
CPX | 与X寄存器比较运算(Compare X register) | N,Z,C |
CPY | 与Y寄存器比较运算(Compare Y register) | N,Z,C |
增量/减量操作指令(Increments & Decrements)
这些指令通过适当的设置负位标志位(N)和零标志位(Z)实现内存地址或X、Y寄存器的增量或减量操作。
指令名称 | 指令功能 | 影响标志位 |
---|---|---|
INC | 内存地址增量操作(Increment a memory location) | N,Z |
INX | X寄存器值增量操作(Increment the X register) | N,Z |
INY | Y寄存器值增量操作(Increment the Y register) | N,Z |
DEC | 内存地址减量操作(Decrement a memory location) | N,Z |
DEX | X寄存器减量操作(Decrement the X register) | N,Z |
DEY | Y寄存器减量操作(Decrement the Y register) | N,Z |
移位操作指令(Shifts)
这些操作指令使存储单元或累加器中的位移位一位。旋转指令使用进位标志(C)的内容来填充由移位产生的空缺位置并捕获溢出位。算术和逻辑移位将适当地移位0或1位,但捕获进位标志(C)中的溢出位。
指令名称 | 指令功能 | 影响标志位 |
---|---|---|
ASL | 算术左移位操作(Arithmetic Shift Left) | N,Z,C |
LSR | 逻辑左移位操作(Logical Shift Right) | N,Z,C |
ROL | 左移位操作(Rotate Left) | N,Z,C |
ROR | 右移位操作(Rotate Right) | N,Z,C |
跳转和调用操作指令(Jump & Calls)
这些操作指令可以通过修改程序计数器实现从正常顺序执行进程中断。JSR指令先将程序计数器(PC)中原有的数据压入堆栈然后跳转到新位置执行子程序,执行结果通过RTS指令完成子程序执行结果返回调用。
指令名称 | 指令功能 | 影响标志位 |
---|---|---|
JMP | 跳转到另一个位置(Jump to another location) | |
JSR | 跳转到子程序(Jump to a subroutine) | |
RTS | 从子程序返回(Return from subroutine) |
网友评论