易码技术论坛

 找回密码
 加入易码
搜索
查看: 790678|回复: 25

高手来回答一下!!!!!

[复制链接]
发表于 2007-1-26 22:49:43 | 显示全部楼层
BASIC程序会装载到$2000运行....
发表于 2007-1-26 22:51:07 | 显示全部楼层
引用第0楼lzjseed2007-01-26 20:56发表的“高手来回答一下!!!!!”:
  不遇到goto的时候程序还好,但一但遇到goto语句就会报告出错!这到底是怎么回事?
不理解意思
 楼主| 发表于 2007-1-26 23:07:16 | 显示全部楼层
我想知道一般在basic的运行地址范围插入汇编是用什么方法呢?
 楼主| 发表于 2007-1-26 23:16:01 | 显示全部楼层
还有就是说遇到goto语句后如果是往前面跳转就会出错,如果往后跳转就没有!不知道是怎么回事!
发表于 2007-1-27 09:13:52 | 显示全部楼层
引用第3楼lzjseed2007-01-26 23:07发表的“”:
我想知道一般在basic的运行地址范围插入汇编是用什么方法呢?
用POKE,其实POKE就相当与汇编里的STA,然后在CALL来执行嵌的入汇编程序.CALL相当于JSR.
发表于 2007-1-27 13:21:04 | 显示全部楼层
你的汇编把BASIC的内容覆盖了,你的GOTO当然出问题了。。。
发表于 2007-1-27 14:27:46 | 显示全部楼层
建议LZ把嵌入的汇编程序送到$2000--$3FFF之间,这样就不会覆盖掉BASIC程序了!!
以为BASIC解释器是从$4000开始加载程序的!
发表于 2007-1-27 16:53:07 | 显示全部楼层
好像不是从4000开始运行的....
 楼主| 发表于 2007-1-27 19:01:07 | 显示全部楼层
我是用poke把数据放在内存里的,而且也是在$2000~$3fff之内的呀!怎么回事呢?
 楼主| 发表于 2007-1-27 21:29:05 | 显示全部楼层
我只是想知道在basic环境下$2000~$3fff之间要用汇编该怎么样做才不会引起错误!
发表于 2007-1-27 21:40:52 | 显示全部楼层
给你个例子好了!!
10 FOR I =0 TO 3: READ A:A(I) =A
20 DATA 0,39,5,96
30 POKE I +8192,A(I)
40 NEXT
50 CALL 8192
发表于 2007-1-27 21:46:53 | 显示全部楼层
晕!估计是我弄错了!
发表于 2007-1-27 21:50:08 | 显示全部楼层
对,一遇到GOTO就会出错!好像是GVBASIC的问题(我原先写程序也遇见过)
比如
1 PRINT "HELLO"
10 FOR I =0 TO 3: READ A:A(I) =A
20 DATA 0,39,5,96
30 POKE I +8192,A(I)
40 NEXT
50 CALL 8192
60 GOTO 1
 楼主| 发表于 2007-1-27 22:10:38 | 显示全部楼层
那怎么做才能防止这种情况的发生呢?应该有的吧?各位高手们!
 楼主| 发表于 2007-1-27 22:14:24 | 显示全部楼层
引用第11楼Isword2007-01-27 21:40发表的“”:
给你个例子好了!!
10 FOR I =0 TO 3: READ A:A(I) =A
20 DATA 0,39,5,96
30 POKE I +8192,A(I)
40 NEXT
.......
这样是没问题,但一但之后有goto语句并是向前跳转就会出错
比如我再加一句60 GOTO 50 ,系统就会报错!
发表于 2007-1-28 07:30:06 | 显示全部楼层
这样应该不会错吧!
大不了这样改!
0 REM:XXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXX
1 PRINT "HELLO"
10 FOR I =0 TO 3: READ A:A(I) =A
20 DATA 0,39,5,96
30 POKE I +8192,A(I)
40 NEXT
50 CALL 8192
60 GOTO 1
发表于 2007-1-28 07:30:45 | 显示全部楼层
你看看这吧
也是GOTO的问题!
http://www.emsky.net/bbs/read.php?tid=15508&keyword=
 楼主| 发表于 2007-1-28 11:50:37 | 显示全部楼层
引用第16楼gcwy2007-01-28 07:30发表的“”:
这样应该不会错吧!
大不了这样改!
0 REM:XXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXX
.......
我试过了,但还是有行号不存在的错误!
 楼主| 发表于 2007-1-31 23:38:23 | 显示全部楼层
没有人能解决下吗??
 楼主| 发表于 2007-2-10 12:27:56 | 显示全部楼层
高手们到现在还没有人能回答下?
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-4-25 03:40 , Processed in 0.010303 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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