美文网首页
6502芯片:指令集(一)(The Instruction Se

6502芯片:指令集(一)(The Instruction Se

作者: 苹果王子刘泽庆 | 来源:发表于2021-05-12 22:32 被阅读0次

    6502芯片有一组相对基础的指令集,很多指令包含相似的功能(例如:内存访问,算术计算等)。下面这些表单列出了6502芯片使用的全部56条指令集。

    存取操作指令(Load/Store Operations)

    这些指令用来在内存和某一个寄存器之间传输一个字节的数据,读取(Load)指令操作根据所传输的数据来设置负位标志(Negative Flag,简写为N)和零标志(Zero Flag,简写为Z)。存储(Store)指令执行不会影响标志位的值。

    指令名称 指令功能 影响标志位
    LDA 读取(加载)累加器(Load Accumulator) N,Z
    LDX 读取(加载)X寄存器(Load X Register) N,Z
    LDY 读取(加载)Y寄存器(Load Y Register) N,Z
    STA 存储到累加器(Store Accumulator)
    STX 存储到X寄存器(Store X Register)
    STY 存储到Y寄存器(Store Y Register)

    寄存器传输指令(Register Transfers)

    这些指令可以将X和Y寄存器中的内容传输到累加器中,并根据传输情况适当的设置负位标志(N)和零标志(Z)。

    指令名称 指令功能 影响标志位
    TAX 将数据从累加器传输到X寄存器(Transfer accumulator to X ) N,Z
    TAY 将数据从累加器传输到Y寄存器(Transfer accumulator to Y ) N,Z
    TXA 将数据从X寄存器传输到累加器(Transfer X to accumulaoter) N,Z
    TYA 将数据从Y寄存器传输到累加器(Transfer Y to accumulaoter) N,Z

    堆栈操作指令(Stack Operations)

    6502微处理器支持256字节堆栈,这个堆栈的内存地址固定在$0100$01FF之间。一个特殊的8位寄存器S用于跟踪堆栈空间的下一个空闲字节。将字节压入堆栈就是将值存储在当前空闲位置(例如$0100,S),然后堆栈指针从栈顶位置向下递减。弹出堆栈操作与压入堆栈过程相反。

    堆栈寄存器只能通过与X寄存器相互传递数据实现访问。它的值可以通过压入/弹出指令、子程序调用和返回、中断和中断返回来自动修改。

    指令名称 指令功能 影响标志位
    TSX 将数据从栈指针传输到X寄存器(Transfer stack pointer to X) N,Z
    TXS 将数据从X寄存器传输到栈指针(Transfer X to stack pointer )
    PHA 将数据从累加器压入堆栈(Push accumulator on stack)
    PHP 将处理器状态压入堆栈(Push processor status on stack)
    PLA 从堆栈中弹出数据到累加器(Pull accumulator from stack) N,Z
    PLP 从堆栈中弹出处理器状态(Pull processor status from stack) All

    相关文章

      网友评论

          本文标题:6502芯片:指令集(一)(The Instruction Se

          本文链接:https://www.haomeiwen.com/subject/dxtodltx.html