资源描述:
《6502基础知识》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、6502基础知识:6502CPU是8位的处理器,早期的nes(任天堂娱乐系统)即是采用了此种cpu,特点是功耗小,成本低,稳定性强,缺点嘛,自然是很明显,速度慢,能处理的任务类型少,而且,相对于NES,WQX还少了象处理图象和声音的专用芯片(NC2k后的系统增加了高速处理芯片DSP来作为声音处理,因此使在其上播放WAV成为可能)。 以后,我们使用汇编语言,就都要和这个6502芯片打交道了,让我们熟悉一下它。 和PC上的8080CPU一样,6502cpu也有一套指令集,cpu识别指令,进行相应的操作。 这些
2、指令都是16进制的,比如:a9h01h85h80h60h,在16进制数据后面加上一个"h"(hex),来将它们和其它进制区分开来,以后的内容里,16进制后将不加h,其它进制(10进制后加"D"(dec),2进制后加"B"(bin))则将特别说明。 上面的那段数据:a901858060,就是一段机器码,也是一段汇编程序,汇编的写法如下: lda#$01 sta$80 rts 这段命令的用途将在以后介绍,这里只是让大家了解一下汇编及机器码程序的书写格式。 这些数据以二进制的格式被存储在wqx的存储介质里(一般
3、为ram,flash,rom),由cpu控制不断从存储介质中读取并分析执行。数和运算相关知识 这节讲解进制、逻辑运算知识,若已经知道,可跳去下一节 (1)进制: a.常见的计数制: 10进制,这是大家熟悉的,由0-9这10个数码组成,逢10进位,表示时在数码后加D(Decimal),由于很常用,常省略"D" b.二进制数: 只有0,1两个数码,逢2进位,用B(Binary)结尾,如11110000B c.十六进制数 有0-9和A,B,C,D,E,F共16个数码,其中A,B,C,D,E,F分别对应10进制的
4、10,11,12,13,14,15,后用H(hexadecimal)结尾,如79h。因为本书中大量使用了这一数志,所以将"h"省略 各进制数间可进行等值转换,可使用wqx上科学计算器实现计算机只能识别1,0代表的两种信息,所以在计算机中运行的是二进制数,而计算机中所谓的8位机,则是指6502一次处理数据长度为8位 逻辑运算知识 6502多用于控制领域,因此6502系统中存在大量逻辑运算,基本的逻辑运算有:"与","或","非",基本逻辑运算再经简单的组合,便可构成复合逻辑门,如"与非门","或非门","异
5、或门"等等,下面讲解它们a.逻辑与 逻辑表达式为:f=a^b a,b为2事件,只有当a,b皆为真时,结果f才为真,否则f为假 f=a^b的逻辑状态表: 0^0=00^1=01^0=0 1^1=1 规则可总结为:"有0则0,全1则1" 与操作在实际中常于于屏蔽(修改)或测试(获取)数据中某个或某几个位的状态 如lda$80 and#$40(10000000b) sta$80 rts 这样就可以屏蔽$80中的6-0位 b.逻辑或 逻辑或的表达式为: f=aˇb 逻辑状态表为: 0ˇ0=10ˇ1=11ˇ0=11
6、ˇ1=1规则可总结为:"有1则1,全0则0" 或操作常用来置位,如将$80的0,1位置1: lda$80 ora#$03(00000011b) sta$80 rts 和上面是一样的,现在$80里就又是原来的数据了,这里#$79就是密码,没有它就无法解开加密后的数据 6502寄存器知识 触发器是一类具有记忆能力的基本逻辑电路 触发器就是一位寄存器,可以存放1位二进制信息,并且有接收和输出二进制数的功能,N个触发器便可构成N位的寄存器 6502中共有5个8位寄存器和1个16位寄存器 1.累加寄存器A 这是8位
7、的寄存器,也是6502中最重要和最常用的寄存器,可用于读写数据,进行各种逻辑运算等等。 2.变址寄存器X 这个8位寄存器和A差不多,只是它可以非常方便地加1或减1,常用于数据传送,运算等等3.变址寄存器Y 和X一样,2个变址寄存器搭配使用使程序更加灵活 4.堆栈指针SP 这是8位的寄存器,指向对栈栈顶位置 在程序运行时。须要一称之为堆栈的RAM块作为数据缓冲区,以暂存程序运行过程中的一些重要数据 堆栈由连续的RAM单元组成。数据写入堆栈称入栈,数据从堆栈中读出称为出栈,堆栈的操作遵循"先进后出"的操作,即
8、先入栈的数据后出栈。 系统如何了解当前的堆栈顶在哪以从顶部弹出堆栈呢? 就要依靠堆栈指针SP,6502规定,堆栈位于第一页($0100-$01ff)的RAM中,因此SP指向的时堆栈顶的低8位,即堆栈顶地址为$00SP,当进行入栈、出栈操作时,栈顶单元发生变化,SP的内容也将加1或减1 可以用下面程序读出当前SP的内容: TSX STX$2000 RTS 这时$2000即为SP的内容 5.程序状态字PSW(ProgramStat