6502芯片简.docVIP

  • 16
  • 0
  • 约14.21万字
  • 约 26页
  • 2016-12-04 发布于河南
  • 举报
6502芯片简

6502芯片简介 在网上找来的,之前在百度百科比较难找到,传上来吧。 6502微处理器 收藏 /* 6502微处理器是FC(Family Computer 俗称任天堂红白机)使用的微处理器,本文详细 的讲解了6502处理器的寄存器组织,寻址方式和指令集。原文是英文,RockCarry做了翻 译,在指令集部分,RockCarry觉得翻译实在是没有太多的必要,所以保留了原文。 注意:符号在原文中为$,表示的是一个十六进制数。 */ 6502微处理器 以下的多数信息都在“Commodore 64 Programmers Reference Manual”中简单提到,因为 它在电气形式上是有用的,并且这篇文档和6502的文档之间没有什么差别,毕竟他们都是出 自6500家族的。我在必要的地方作了修改并加入了一些新内容。 从理论上讲,你可以使用你能找到的任何代码来模拟6510(C64处理器)。 6502处理器内部的寄存器 几乎所有的运算都在处理器中进行。寄存器是处理器内部的一些特殊的存储器,它们被用来 计算或保存计算结果。6502处理器拥有以下的一些寄存器: 累加器 累加器是微处理器内部最重要的寄存器。人们设计了大量的机器指令来执行将内存数据传 送到累加器,将累加器中的数据传送到内存,修改累加器的内容,或其他一些直接对累加器 (不会影响内存)的操作。并且累加器也是唯一的能够执行算术指令的寄存器。 X变址寄存器 X变址寄存器是一个非常有用的寄存器。人们设计的传送指令中,几乎所有的都可以用于累 加器,但是仍然有一些指令只能被用于X变址寄存器(它们是为X变址寄存器专门设计的)。 同样,人们也设计了大量的机器,允许你将内存数据传送到X变址寄存器,将X变址寄存器的 数据传送到内存,修改X变址寄存器的内容,或者执行其他一些对X变址寄存器的直接操作。 Y变址寄存器 Y变址寄存器也是一个非常重要的寄存器。尽管几乎所有的传送指令都是为累加器和X变址 寄存器设计的,但是仍有一些指令只能用于Y变址寄存器(它们是为Y变址寄存器专门设计的 )。人们也设计了大量的机器指令,允许你将内存数据传送到X变址寄存器,将Y变址寄存器 的数据传送到内存,修改Y变址寄存器的内容,或者执行其他一些对Y变址寄存器的直接操作。 状态寄存器 状态寄存器包含了8个标志位(标志位=标志某件事发生或没有发生的东西)。这个寄存器 各个位会根据算术和逻辑运算的结果而被改变。各个位的意义描述如下: Bit No. 7 6 5 4 3 2 1 0 S V B D I Z C Bit 0 - C - 进位标志位:这个位保存了大多数算术运算所产生的有意义的进位。做减法 运算时,该标志位被清零——当需要借位时,被置1——当没有借位时。进位标志位同样也被 用于移位和循环移位操作。 Bit 1 - Z - 零标志位:这个标志位在算术或逻辑运算操作结果产生零时被置为1,当结 果不为零时被置为0。 Bit 2 - I - 中断标志位:该标志位是中断允许/禁止标志位。如果被置为1,中断禁止, 如果被清为零,中断允许。 Bit 3 - D - 十进制模式标志位:被置为1时,并且带进位加法或减法指令被执行时,操 作数被当作十进制BCD(Binary Coded Decimal, eg. 0x00-0x99 = 0-99)码,运算结果同样 也是一个BCD码。 Bit 4 - B: 该标志位被置为1,当一个软件中断(BRK指令)被执行。 Bit 5: 未被使用,总是假定为逻辑1。 Bit 6 - V - 溢出标志位:当算术运算操作产生的结果太大不能用一个字节表示时,V标 志位被置为1。 Bit 7 - S - 符号标志位:当操作结果是一个负数时被置位1,为正数被清为零。 其中最常用的标志位是C,Z,V,S。 程序计数器(PC) 程序计数器始终保存了当前正在被执行的机器指令的地址。由于在Commodore VIC-20 计算机上(或者说在所有的计算机上),操作系统都始终在运行着,所以程序计数器(PC)也 始终在改变着。除非通过某种手段使微处理器停机,这种改变才会停止下来。 堆栈指针(THE STACK POINTER) 这个寄存器保存了堆栈的栈顶的位置。堆栈是计算机的机器语言指令用来保存临时数据 的。 寻址方式(ADDRESSING MODES) 指令的执行需要操作数的参与。有多钟的方式可以指示处理器到哪儿去取得所需要的操作 数。这些不同的方式在计算机中被称为寻址方

文档评论(0)

1亿VIP精品文档

相关文档