参考Producing Commodore 64 programs、Writing the actual code
本节将实现简单的hello world程序,从而形成对ophis的初步认识

准备工作

  1. 请配置好Ophis,MacOS配置方法可参考Mac OS 安装 Ophis
  2. 了解PRG 程序文件结构
  3. 了解汇编语言

编写代码

以输出HELLO, WORLD!为例,详见注释

; test.oph.word $0801
.org  $0801                     ; BASIC内存开始地址; BASIC部分.word next, 10            ; 下一行与当前行号.byte $9e,"2061",0      ; 调用机器代码语句: SYS 2061
next:   .word 0                 ; 结束程序; 汇编部分ldx #0                  ; [a2 00]       x = 0
loop:   lda hello, x            ; [bd 1b 08]    a = hello[x]beq done               ; [f0 06]       if(a == 0) goto done;jsr $ffd2                ; [20 d2 ff]    调用KERNAL的打印字符子程序inx                     ; [e8]          x++bne loop               ; [d0 f5]       if(x != 0) goto loop;
done:   rts                     ; [60 48]       返回BASIChello:  .byte "HELLO, WORLD!", 0   ; 首地址<0x081b>.outfile "test.prg"                ; 输出文件名

汇编

输入命令

ophis -v test.oph

将在同目录生成文件test.prg,利用C语言打印文件二进制与十六进制编码如下

00000001 00001000 00001011 00001000 00001010 00000000 10011110 00110010 01 08 0b 08 0a 00 9e 32
00110000 00110110 00110001 00000000 00000000 00000000 10100010 00000000 30 36 31 00 00 00 a2 00
10111101 00011011 00001000 11110000 00000110 00100000 11010010 11111111 bd 1b 08 f0 06 20 d2 ff
11101000 11010000 11110101 01100000 01001000 01000101 01001100 01001100 e8 d0 f5 60 48 45 4c 4c
01001111 00101100 00100000 01010111 01001111 01010010 01001100 01000100 4f 2c 20 57 4f 52 4c 44
00100001 00000000                                                       21 00

效果演示

前往下一节

利用 Ophis 编写 Commodore 64 programs PRG 程序(一)相关推荐

  1. 利用 Ophis 编写 Commodore 64 programs PRG 程序(四)

    在上一节中,我们理解了字符映射与.data段的用法.接下来我们将看看另外两个好用的功能:表达式和零页 本节参考了Expressions.Advanced Memory Segments 表达式 Oph ...

  2. 利用 Ophis 编写 Commodore 64 programs PRG 程序(二)

    在上一节中,我们利用ophis实现了简单的hello world程序.接下来我们将进一步了解ophis的更多出色功能,它们能大大降低开发难度. 本节参考了Labels and aliases.Head ...

  3. 利用 Ophis 编写 Commodore 64 programs PRG 程序(三)

    在上一节中,我们理解了标签.别名.头文件/库以及宏定义的用法.接下来我们将看看另外两个好用的功能:字符映射与.data段 本节参考了Character maps.Local variables and ...

  4. 利用 Ophis 编写 Commodore 64 programs PRG 程序(五)

    在上一节中,我们理解了表达式和零页,接下来让我们一起来看看一些汇编代码与高级语言的对应关系:分支.循环与栈 本节参考了Structured Programming.The stack.Procedur ...

  5. Commodore 64 programs PRG 程序文件结构分析

    参考Programming with Ophis-Producing Commodore 64 programs PRG程序文件的前两个字节是一个小端序的数字,指向程序起始地址(不会拷贝入内存),接下 ...

  6. 利用C#编写一个高斯正反算程序

    一.代码界面展示 整个界面控件为tabControl,groupBox,label,textbox,comboBox,button,richTextBook. 二.代码运算结果展示 数据结果采用国家统 ...

  7. 利用Python编写一个高斯正反算程序

    一.前言 这次的高斯正反算程序是使用的Python编写的. 环境信息是:Win10.PyCharm 2021.3.1.PySide6 6.3.1.Python 3.9.9,基于QT Designer设 ...

  8. linux终端程序如何编写,[LINUX]利用Ncursesw编写支持中文的终端程序

    1. Ncursesw库的安装与使用 Ncurses库的安装(Ubuntu): 查看相关软件包 sudo apt-cache search ncursesw 安装ncursew必须软件包 sudo a ...

  9. 向串口助手发送数据c语言程序,利用DSP2812编写直流电机PID调速程序(C语言)

    ==57) { Scia_VarRx=9; } kb=Scia_VarRx[0]*1000; hd=Scia_VarRx[1]*100; de=Scia_VarRx[2]*10; un=Scia_Va ...

最新文章

  1. android 编译共享ccache的缓存
  2. android整理的一些零散笔记
  3. 机器人社社长事迹_国际机器人大赛冠军背后的故事
  4. sql用java做界面设计_My Sql作为数据库,java作为应用程序?
  5. Microsoft SQL Server 2005简体中文开发版下载说明
  6. java+spring+vue基于ssm的员工公寓后勤管理系统
  7. python写二进制文件_初学Python写二进制文件
  8. 路由器 刷rom php,路由器刷固件常用命令Openwrt 之mtd/mtd_write烧写固件
  9. 计算机管理系统的图片,图片管理软件哪个好用?5款好用的图片管理软件推荐...
  10. CVE和NVD的关系
  11. SpringBoot快速上手
  12. 百度地图调用 keytool 错误:java.lang.Exception: 密钥库文件不存在、getLocType 167(4.9E-324)错误
  13. linux nuc 吗 支持_当NUC遇上本地衍生版Linux
  14. 2018年小米校招笔试题
  15. 中国可信计算机走向世界核心技术领
  16. c# Dispose实现 MSDN官方教程
  17. 【笔记】Linux 文件写入失败,提示文件系统已满
  18. Linux进程与计划任务
  19. 百度员工离职总结:如何做个好员工
  20. 【论文阅读】Don‘t be so sure! Boosting ASR Decoding via Confidence Relaxation

热门文章

  1. python实现文件管理系统_Python文件管理
  2. 山东省滨州市谷歌高清卫星地图下载
  3. 零跑汽车引领汽车概念股集体向上,市场信心彻底恢复了吗?
  4. 天正改变视口比例的方法
  5. Pytorch Note32 稠密连接的卷积网络 DenseNet
  6. Flink JDBCOutputFormat
  7. python初学者编程指南源码_Python可以这样学 PDF 带讲义代码版
  8. matlab作图背景黑色,【matlab】版本2014a 修改背景为酷炫暗黑色
  9. 小技巧:利用bean实现对配置文件的读取
  10. 5G千兆网关助力重工业能耗监测系统