

1985年 – 6502 Machine Code
这个小app通过一个索引加载“Y-累加器”,然后通过始于$ C100的内存旋转,一次发送一个字符到ROM子程序,ROM子程序会将它们打印到显示器。这等同于机器代码中的一个for循环(for y = 0; y <= 0x0d, y++)。该RTS从子程序返回。为了执行程序,你必须使用内置的SYS命令,调出内存地址(不幸的是,你必须将十六进制值$ C000转换为十进制49152,但除此之外,这样的工作很有魅力)。我有用于“HELLO,WORLD”的PETSCII字符,保存在内存地址$ C100(是的,Commodore 64有它自己特殊字符页)。
下面是结果:
当然,生活中的话,当我从原始机器代码转移到程序集更容易。有了程序集,我可以预先计划好我的软件,并使用标签来标记存储区域,而无需记住内存地址。上面显示的相同程序可以这样写:
1986年 – 6502 Assembly
?1
2
3
4
5
6
7
8
9
10
11
12
13
14* = $C000;
set the initial memory addressCHROUT = $FFD2 ;
set the address for the character out subroutine
LDY #$00 LOOP
LDA HELLO, Y
CMP #$00
BEQ END
JSR CHROUT
INY
BNE LOOP END
RTSHELLO
ASC 'HELLO, WORLD.' ;
PETSCIIHELLOEND DFB 0 ;
zero byte to mark the end of the string
大约在那个时候我才意识到我真的很喜欢编写软件。我在高中学了一些课程,但所有他们教的是愚蠢的小Pascal语言,一种旨在使学习如何编程更“容易”的语言。真的?更容易吗?在使用机器监视器手工编码复杂程序之后,Pascal感觉非常的矫枉过正。当然我不得不承认“Hello, World”的语法真的特别直接。
传真:0755 - 2799 6625
投诉:133-2299-1235
邮箱:sale@inmiga.com