- 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)