|
此文章由 rogerk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rogerk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
快下班了,花了半个小时网上找了找6502的汇编指令,当年可是写过好多,现在都忘光了。看了看资料,写了两个小程序来试试看这个东西到底是不是真的能不能工作,结果果然不错。运行结果很正确。就是实在是太慢了。
写了个打印菱形的程序,还有一个简单的内存填数。没有编译器,只好手工汇编成机器码,手工算变量地址,跳转偏移量,又有了十几年前感觉。汇编好了把那几十个字节的数据在那个网页上手工输入进去,一点reset,程序就开始跑了。
我把汇编程序和汇编好的机器码都贴在这里,有谁愿意手工输入60几个数,可以自己运行下看看CPU到底怎么工作。- ;DEMO PRINT DIAMOND
- LOOPY:
- 00 lda YCOUNT A5 3A
- 02 asl 0A
- 03 asl 0A
- 04 asl 0A
- 05 asl 0A
- 06 sta Y16 85 3B
- 08 sec 38
- 09 lda #$0F A9 0F
- 0B sbc YCOUNT E5 3A
- 0D sta XCOUNT 85 39
- LOOPX:
- 0F lda #$80 A9 80
- 11 clc 18
- 12 adc XCOUNT 65 39
- 14 tay A8
-
- 15 clc 18
- 16 adc Y16 65 3B
- 18 tax AA
- 19 lda #$FF A9 FF
- 1B sta $80, x 9D 80 00
-
- 1E tya 98
- 1F sec 38
- 20 sbc Y16 E5 3B
- 22 tax AA
- 23 lda #$FF A9 FF
- 25 sta $80, x 9D 80 00
-
- 28 dec XCOUNT C6 39
- 2A lda XCOUNT A5 39
- 2C clc 18
- 2D cmp YCOUNT C5 3A
- 2F bpl LOOPX 10 DE
-
- 31 inc YCOUNT E6 3A
- 33 lda YCOUNT A5 3A
- 35 cmp #$8 C9 08
- 37 bmi LOOPY 30 C7
-
- 39 db XCOUNT 0 00
- 3A YCOUNT 0 00
- 3B Y16 0 00
- ;DEMO FILL MEMORY
- 00 LDX #$00 A2 00
- 02 LDY #$00 A0 00
- LOOP:
- 04 STX $10,Y 96 10
- 06 INX E8
- 07 INY C8
- 08 CPY #$20 C0 20
- 0A BMI LOOP 30 F8
- HALT:
- 0C JMP HALT 4C 0C 00
复制代码 还有运算了半个小时才算出来的菱形的截图。
[ 本帖最后由 rogerk 于 2010-9-20 17:30 编辑 ] |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|