6502编语言程序设计(2版)之程序设计part1.doc

6502编语言程序设计(2版)之程序设计part1.doc

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6502汇编语言程序设计(2版)之程序设计part1 6502汇编语言程序设计(2版)之程序设计part1 FC技术书籍 2008-11-09 22:26:17 阅读620 评论1 字号:大中小 订阅 6502汇编语言程序设计 返回 第一部分 基本概述 第二部分 指令和算法 第三部分 程序实例 ___________________________________________________________________________________ (一) 一. CPU 对命令的执行 6502是普通的8位CPU.它需要外接其他器件(如:SRAM、EPROM、定时/计数器、I/O接口器件等)才能工作,它地址线为16,直接寻址能力为64K($0000--$FFFF)之间. 数据线为8,一次只能完成8位数据(0--255)的处理. CPU通过地址线联系到要操作的内存单元,然后读取该单元的操作码,通过预设好了的操作码所代表的操作,CPU对其进行相应命令执行. 例如对命令 ASL 的执行,假设程序计数(PC)=$7000 , ($7000)=$0A . CPU 首先通过程序计数 PC 联系到单元$7000 ,并读取该单元内的操作码 0A(对应6502汇编助计符为ASL) 然后根据操作码的类型,完成相应的操作,这里0A代表将累加器A的内容左移一位.如果是一个时钟周期完成一项指令操作,那么就是第一个时钟周期CPU读取单元$7000中的0A,第二个时钟周期CPU执行命令0A(将累加器A的内容左移一位,高位被移到C进位标志中,低位被移入0) 二. 6502系统说明 1. $0000--$00FF 6502 CPU 零页公共区 (256字节) 2. $0100--$01FF 6502 CPU 公共堆栈区 (256字节) 没有数据进栈时堆栈指针 S=$FF,每当有一个数据进栈S-1→S. 每当有一个数据出时栈S+1→S .当执行JSR指令时,CPU把下一条指令地址-1(两个字节)自动入栈(也即程序的返回地址-1自动入栈), 然后转入到子程序中执行,当遇到RTS时弹出栈顶2个字节,作为程序的返回地址,并转到下一条指令中执行. 由于堆栈$100--$1FF最多可以存放127个双字节,所以JSR最大连续的转入深度为127层,如果还有其它数据入栈,子程序转入深度还要减少.在设计复杂的程序时,应该考虑堆栈是否会溢出,或作相关返回处理,以防止堆栈溢出而造成死机. 3. $0200--$0700(cheapchange注:综合上下文,应为0200--07FF) 公共内存区 (1.5K字节) 4. $0800--$1FFF $0000 -- $0700的镜像. 连做了3次镜像(6K字节) 换句话说,对它们的操作(读/写)实际就是对$0000--$07FF的操作。比如:读取 $08AB 的内容实际等于读取$00AB的内容。而向$15CC写数据实际等于向$05CC写数据. $0800--$0FFF, $1000--$17FF, $1800--$1FFF 这3块不是物理的 RAM,它们都是镜像. 5. $2000--$3FFF 6502 PPU I/O 地址区,系统使用. (8K字节) 6. $4000--$43FF CPU 内部功能部件 I/O 地址区,系统使用 (1K字) 7. $4400--$5FFF 扩充空间 (5K字节) 可用于各种扩充外设的 I/O 端口,或扩充ROM和RAM地址空间. 8. $6000--$7FFF 公共RAM空间 公共内存区,可为系统程序及用户程序使用 9. $8000--$BFFF 分页区间 (16K字节) 按16K字节分区,页号00--FF(一个字节),最大支持4M字节容量.用于系统程序及应用程序的主要程序数据区. 10.$C000--$FF00 公共RAM空间(16K字节) 公共内存区,可为系统程序及用户程序使用. (注$C000--$FFFF 区间的RAM与分页区间的最后一页第FF页的RAM是同一段区域) 11.$FF00--$FFFF 系统区 系统中断向量及I/O地址. 三. 汇编指令格式 汇编指令包括四部分,格式如下: [标号:] 操作码 [操作数][;注释]   []中的内容为可选项 标号 标号标识了一条指令的位置,可以使用标号作为访问该指令的地址,标号的格式应遵循下面规则: .必须从第一列开始或者以: 结束

文档评论(0)

cj80011 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档