NESASM教程——第十一天——JSR指令


【JSR?】

JSR代表Jump to SubRoutine,跳转到子程序,作用就是,嗯,跳转到子程序。JSR代表Jump to SubRoutine,跳转到子程序,作用就是,嗯,跳转到子程序。

【我们怎么用它?】

我们用它时只需要给出我们想跳转到的标签即可。例如:我们用它时只需要给出我们想跳转到的标签即可。例如:

	jsr OurSub
	; 主程序

OurSub:
	; 子程序
	; 返回指令

【怎样返回?】

当然使用RTS(ReTurn from Subroutine)指令了!所以完整版代码应该为:

	jsr OurSub
	; 主程序

OurSub:
	;子程序
	rts  ; 返回到主程序

【更多】

记住一件事情,如果你正好想把一部分代码分离为单独的模块,那么上面描述的就够了。

【今日回顾】

子程序不得不说,否则中断你更不懂了。你不妨试试把我们前面讲过的几个功能模块分为若干子程序,代码会清晰很多~

编程愉快!

时间: 2024-10-24 23:15:43

NESASM教程——第十一天——JSR指令的相关文章

NESASM教程总述

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

Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明

原文:Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明     这里所说的高级接口是指面向通过认证的服务号开通的高级功能.     高级功能大致可以分类为: 用户接口 分组接口 客服接口(有别于之前介绍的多客服) 群发接口 多媒体接口 二维码接口 模板消息接口(不是所有账号都可开通) OAuth2.0(相对比较复杂,后面会有专门介绍) 以上所有的接口都包含在Senparc.Weixin.MP.AdvancedAPIs命名空间下. 一些共同的操作 几乎所有的高

VBScript教程 第十一课深入VBScript_vbs

VB教程 > 第十一课深入VBScript 学习高级 VBScript 技术的最快方法是阅读大量的样例.同时更好地理解对象模型有助于深入学习 VBScript. 您可以从以下部分开始学习: ·ActiveX? 控件常见问题解答 ·页面样例 ·热点链接页面

ASP.NET 2.0数据教程之十一:基于数据的自定义格式化

本系列文章导航 ASP.NET 2.0数据教程之一:创建一个数据访问层 ASP.NET 2.0数据教程之二:创建一个业务逻辑层 ASP.NET 2.0数据教程之三:母板页和站点导航 ASP.NET 2.0数据教程之四:使用ObjectDataSource展现数据 ASP.NET 2.0数据教程之五:声明参数 ASP.NET 2.0数据教程之六:编程设置ObjectDataSource的参数值 ASP.NET 2.0数据教程之七:使用DropDownList过滤的主/从报表 ASP.NET 2.0

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

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

NESASM教程——第六天——跳转和按键处理

[读取按键] 我们假设你要读取的是一个普通的方形NES手柄,而不是一些其他乱七八糟的东西.为了知道一个按键是否按下,你一次一键地读取0x4016(手柄1)或0x4017(手柄2).如果按键按下,右边的bit0将被置位(1).你用1同它相"与",若结果不为0则跳转.在你读取任何内容之前,你需要先复位手柄(选通). [选通/复位] 为了选通/复位手柄,我们写入一个1然后一个0到0x4016(手柄1)或0x4017(手柄2).可以这么搞: lda #$01 sta $4016 lda #$0

NESASM教程——第四天——制作、载入调色板

[啥?!] 然.今天将创建并载入调色板.为了创建调色板,我们将使用程序PAL.exe,我在第一天给你的那个zip文件中有这个.运行它,你将看到一个窗口,有32个灰色的盒子,你可以从底部彩色盒子中选取绘制颜色填充它们.当你制作调色板时一定要保证每行第一个颜色是黑色,否则你后面制作背景和主角时会看到很多意外的东西. 保存调色板为our.pal. *新的段落:什么是调色板,简单直接* *如果我本文后面说了一些和这段矛盾的东西,忽略它* 调色板基本上是一组可供选择的颜色.我们的调色板有32种颜色,占用3

NESASM教程——第二天——源文件的结构

[发生了什么?] 嗯,你是个NES小白程序员,今天我们将学习一个NESASM代码文件的结构.不幸的是,我们的汇编器对缩进非常讲究,一行的开始位置只能放标签,放其他所有内容都必须加一个[TAB]键缩进.尽管这样听上去很糟糕,但这样确实提高了可读性,让你更容易理解代码,尤其是大程序. [关于段(Bank)] 不不不,Bank不会帮你拿着你的钱,它们帮你拿着你的程序和数据.我们将经常用三个段: 段 0 -- 放我们的代码,起始于$8000 段 1 -- 中断向量表,很重要,起始于$FFFA 段 2 -

NESASM教程——第五天——主角出场

[主角] 主角和背景比起来,你肯定觉得背景会更简单.错!主角才简单得要命. 制造主角只需要向SPR-RAM写入一点点内容(主角的x,y坐标,tile编号,等等). 等等,我觉得咱们得先绘制主角的图片才行,走起~:) [Tile Layer Pro] 存储主角像素块的表格称为Pattern Table,大小4KB,位于PPU $0000~$0FFF或$1000~1FFF(由PPU 控制寄存器设置,见第三天内容). 绘制像素块的工具可以用Tile Layer Pro,我们从一个空白的像素块开始. 运