易码技术论坛

 找回密码
 加入易码
搜索
查看: 217599|回复: 6

[求助]麻烦大家看一下这一些汇编代码

[复制链接]
发表于 2005-7-26 20:17:00 | 显示全部楼层
我好不容易打出来的呀,大家忍心不回吗?
发表于 2005-7-26 21:10:00 | 显示全部楼层
汗,回什么,总得先说出出了什么问题吧?不然哪有方向?
发表于 2005-7-26 23:15:00 | 显示全部楼层
据称本论坛严禁灌水, 难道你想让人说“好,顶”之类的,有灌水嫌疑啊!
 楼主| 发表于 2005-7-27 10:02:00 | 显示全部楼层
汗,回什么,总得先说出出了什么问题吧?不然哪有方向?
据称本论坛严禁灌水, 难道你想让人说“好,顶”之类的,有灌水嫌疑啊!

5555~~~~~~~~~~~这个就是用不了,不知为什么.CALL之后屏幕上一点反应都没有.
另外我看不出这句是干什么
20BE PLA  出栈,为以后跳转所需
20BF PHA  进栈,保持栈中的值
这句根本没用 可以去掉

因为有这一句:20FB BNE$20BE  否则进行下一行
所以这个应该不是多余的.
发表于 2005-7-27 13:03:00 | 显示全部楼层
建议你把转为hex的改一下,可以不要这个表的,还不会破坏x的内容,而且在转的同时就可以发送到屏幕的。就不用先把结果存在$f8,$f9了。这个只要保护一下y,顺便还可以用y判断一行显示完了没。
pha
and #$f0
lsr
lsr
lsr
lsr
jsr A
pla
and #0f
Ara #$30
cmp #$3a
bcc B
clc
adc #$07
B:sta ($xx),y
iny
rts
 楼主| 发表于 2005-7-27 13:54:00 | 显示全部楼层
谢谢。我参考一下,因为DEC TO HEX在BAS里也要用上,看看可不可以先。
 楼主| 发表于 2005-7-25 12:24:57 | 显示全部楼层 |阅读模式
做这个目的是做个DEBUG工具,用汇编显内存的HEX或字符,不过用不了.程序如下:

显存计数加
计数地址:8A 8B

2065 INC$8A
2067 BNE$206B
2069 INC$8B
206B RTS



DEC TO HEX
入口:F8
出口:F9 FA

206C:"0123456789ABCDEF"
207C LDA$F8
207E LSR
207F LSR
2080 LSR
2081 LSR
2082 TAX
2083 LDA$206C,X
2086 STA$F9
2088 LDA$F8
208A AND#$0F
208C TAX
208D LDA$206C,X
2090 STA$FA
2092 RTS



HEX的ASCII到显存

209C STA$F8
209E JSR$207C
20A1 LDA$FA
20A3 STA($8A),Y
20A5 JSR$2065
20A8 LDA$F9
20AA STA($8A),Y
20AC JSR$2065
20AF RTS



主程序,当200D为1,显字符;为0,显HEX

20B0 INT$C729   清屏
20B3 LDA#$C0   显存计数初始化
20B5 STA$8A
20B7 LDA#$02
20B9 STA$8B
20BB LDA#$00  将0入栈,初始计数为0
20BD PHA
20BE PLA  出栈,为以后跳转所需
20BF PHA  进栈,保持栈中的值
20C0 CLC  将记数与记录查看内存地址的零页地址的值相加,得出当前查看的地址,并转为HEX,送到显存
20C1 ADC#$FB
20C3 PHA  低位入栈
20C4 LDA$FC
20C6 ADC#$00
20C8 JSR$209C  计算高位并转为HEX,送到显存
20CB PLA
20CC JSR$209C  计算低位并转为HEX,送到显存
20CF LDA#$2D  字符"-"
20D1 STA($8A),Y  送到显存
20D3 JSR$202C  显存加
20D6 LDA#$14  地址8C计数
20D8 STA$8C
20DA PLA  另一个计数加并入栈保存
20DB TAY
20DC INY
20DD TYA
20DE PHA
20DF LDA$14FF,Y  从1500开始读取内容,1500为虚拟地址,之前将查看的数据发送到此
20E2 PHA  入栈
20E3 LDY#$00
20E5 LDA$200D  判断200D是不是1
20E8 BEQ$2101  是则到2101
20EA PLA  出栈,转HEX,到显存
20EB JSR$209C
20EE DEC$8C  计数减
20F0 DEC$8C  计数减,因显HEX一行10字节,显字符一行20字节,显HEX需减两次
20F2 BEQ$20DA  减为0则一行显示结束
20F4 JSR$202C  显存加,留个空格
20F7 LDA$8A  看显存计数,如果低位为5C,说明显示完毕
20F9 CMP#$5C
20FB BNE$20BE  否则进行下一行
20FD INT$C719  刷新
2100 RTS
2101 PLA
2102 CMP#$9E  直接以显字符显示在屏幕上,过滤9E
2104 BEQ$2108
2106 STA($8A),Y
2108 JSR$202C  显存加
210B JMP$20F0
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 00:06 , Processed in 0.009875 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表