NESASM教程——第七天——使用内存

【从哪里获得?】

我们做任何其他事情之前,最好展示怎么使用内存用于我们自己的数据。这个数据可能是任何东西,例如你需要存储的数字或主角的X/Y坐标值。我们将使用自由内存:位于CPU $0000。

【怎样使用?】

代码段0用ORG伪指令定位到$0000,为一些内存贴上标签,然后ORG定位到$8000开始我们的代码。

创建一个带标签的内存(也就是创建一个变量),可使用汇编操作.db,就像这样:

	.bank 0
	.org $0000

label1:    .db   0
byte1:     .db   $A5   ; .db后面的值不需要加#

	.org $8000

Start:     ; 正常写代码

由于label1和byte1实际上都是标签,它们不需要缩进。

【载入变量值】

	lda label1  ; label1处变量的值赋给A
	ldx label1  ; label1处变量的值赋给X
	ldy label1  ; 你懂得

	lda byte1  ; 你懂得

【保存到变量】

	sta label1  ; 将A的值保存至label1处的变量
	stx label1  ; 将X的值保存至label1处的变量
	sty label1 ; 你懂得

	stx byte1  ; 你懂得

【一些重要的现实】

我想提的主要内容是,我们除了字节,还可以定义字,但由于NES的CPU只能工作在8bit,所以字不能一次读取或写入。

我还没试,你可以这样:

inc label1;  增1
dec label1;  减1

【今日回顾】

我不知道明天讲什么,因为我需要完成GBA教程的第13天。我希望你有愉快的一天。为什么你不试试用手柄控制主角移动呢???

时间: 2024-09-11 12:28:07

NESASM教程——第七天——使用内存的相关文章

NESASM教程总述

本教程是关于使用NESASM汇编器为任天堂娱乐系统(NES, Nintendo Entertainment System)编程的.该教程由浅入深,简化了NES汇编学习过程.在进一步尝试前你几乎必须了解另一种汇编语言,因为本文假设你(哪怕一丁点)基本汇编常识是具备的.例如了解GBA或者Intel x86汇编将对理解基础有很大帮助.祝你在学习NES汇编编程的旅途中一切顺利! 第一天--开始NES汇编 第二天--源代码文件结构 第三天--关于NES编程 第四天--制作并载入调色板 第五天--显示主角

Senparc.Weixin.MP SDK 微信公众平台开发教程(七):解决用户上下文(Session)问题

原文:Senparc.Weixin.MP SDK 微信公众平台开发教程(七):解决用户上下文(Session)问题     从这篇文章中我们已经了解了微信公众平台消息传递的方式,这种方式有一个先天的缺陷:不同用户的请求都来自同一个微信服务器,这使得常规的Session无法使用(始终面对同一个请求对象,况且还有对方服务器Cookie是否能保存的问题).     这就要求我们自己建立一套独立的对话上下文请求机制.     上一篇<Senparc.Weixin.MP SDK 微信公众平台开发教程(六)

Android LibGDX游戏引擎开发教程(七) 中文字体的显示和绘制(上)

在字体的显示和绘制中,Libgdx的作者(Mario Zechner,美国人)给我们提供了一个非常好用的工具 --Hiero,那么下面就来看看它具体的使用方法. 一.Hiero工具的使用 1.Hiero工 具的下载地址 开发教程(七) 中文字体的显示和绘制(上)-android 绘制字体"> 2.下载结束后,双击hiero.jar文件打开,我们可以看到Hiero的一些基本功能,相比来说作者做的 还是比较简单易懂的.从界面上知道,它包括很多选项,可以制作特效.改变背景颜色.设置内间距等等,右

Docker入门教程(七)Docker API

本文讲的是Docker入门教程(七)Docker API,[编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和Docker Hub API. 纵观我们的Docker系列教程,我们已经讨论了很多重要的Docker组件与命令.在本文中,我们将继续深入学习Docker:剖析Docker APIs. Docker提供了很多的API以便用户使用.这些API包含四个方面: Docker Registry AP

VBScript教程 第七课使用条件语句_vbs

VB教程 > 第七课使用条件语句 控制程序执行 使用条件语句和循环语句可以控制 Script 的流程.使用条件语句可以编写进行判断和重复操作的 VBScript 代码.在 VBScript 中可使用以下条件语句: · If...Then...Else 语句 · select Case 语句 使用 If...Then...Else 进行判断 If...Then...Else 语句用于计算条件是否为 True 或 False,并且根据计算结果指定要运行的语句.通常,条件是使用比较运算符对值或变量进行

使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【七】——实现资源的分页

原文:使用ASP.NET Web Api构建基于REST风格的服务实战系列教程[七]--实现资源的分页 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 这篇文章我们将使用不同的方式实现手动分页(关于高端大气上档次的OData本文暂不涉及,但有可能会在系列的后期介绍,还没确定...),对于分页的结果,我们将采用2种不同的方式响应给客户端(1.将分页元数据封装在响应Body中2.在http响应报文头部添加分页信息). 众所周知,在服务器端一

Android实战教程第七篇之如何在内存中存储用户名和密码

本文实例为大家分享了Android内存中存储用户名和密码的方法,供大家参考,具体内容如下 首先是配置文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo

NESASM教程——第一天——开始NES汇编

[关于NES汇编] 我的天,你正准备学习用汇编写NES程序?那么,如果你真想这么做,本文应该有所帮助.也许你已经读过我的正在进行中的GameBoy高级汇编系列文章.在我的GBA汇编教程中,指出你在进行汇编编程前应该先了解GBA C语言编程.我对于NES汇编也这样说,但是针对NES CPU没有好的C编译器.所以我只想说,写NES代码前要了解点GBA汇编或Intel 汇编,因为NES相比前面两者有点难. 我们将使用NESASM.exe作为我们的汇编器.可以从这里下载(http://patater.c

网页教程:关于ie的内存泄漏与javascript内存释放

javascript|教程|网页 最近做一个公司的业务系统,公司要求能尽可能的与c/s近似,也就是如c/s一样,点击文本框可以弹出此项目的相关内容,进行选择输入. 我使用了弹出窗口,然后在子窗口双击选中项目,把选中的值返回给父窗体. 在系统做完了之后,在客户使用的过程,由于客户使用的是512m的内存配置,所以在打开了30--40个窗体之后,ie的虚拟内存占用量达到近200m,从而使系统变慢,javascript的运行也变慢了. 我使用任务管理器,打开一个弹出窗口,ie内存就增加1-3m,然后关闭