小编Mil*_*ala的帖子

有没有办法从C文件中调用6502汇编代码?

我正在使用cc65 6502模拟器,它编译6502的代码.我希望链接6502代码和C代码并生成一个我可以执行的二进制文件.

我的C代码"main.c":

 #include<stdio.h>
 extern void foo(void);

 int main() {
    foo();
    return 0;
 }
Run Code Online (Sandbox Code Playgroud)

我的6502代码"foo.s":

 foo:
      LDA #$00
      STA $0200
Run Code Online (Sandbox Code Playgroud)

代码可能看起来很简单,但我只是想实现成功的链接.但我无法摆脱以下错误:

Unresolved external '_foo' referenced in: main.s(27) ld65: Error: 1 unresolved external(s) found - cannot create output file

c 6502

5
推荐指数
1
解决办法
347
查看次数

ValueError:使用套接字时要解压的值太多

import socket
import time
HOST = "192.168.x.x"
PORT = 5454
data = "Hello"
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(HOST,PORT)
while  True:
   s.sendto(data(HOST,PORT))
   print "send" + data
   time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

我收到这样的错误:

Traceback (most recent call last):
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/base/data/home/apps/s~lyfe-playtm/20161117t121204.397114004363270281/main.py", line 24, in <module>
    s.connect(HOST,PORT)
  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/socket.py", line 222, in meth
    return getattr(self._sock,name)(*args)
  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/remote_socket/_remote_socket.py", line 752, …
Run Code Online (Sandbox Code Playgroud)

sockets google-app-engine python-2.7

1
推荐指数
1
解决办法
2007
查看次数

如何在C中从汇编代码中打印整数值

我在6502程序集中编写了一个计算斐波纳契数的函数.我在C中调用该函数,然后将这两个文件编译为6502的单个二进制文件.但是我得到的输出是不同的.10的斐波纳契数是55,但它输出2649.它计算数量的斐波纳契数,但不计算0到10范围内的整数.例如,0的斐波纳契数是257,1表示它是258,10表示2649和等等.为什么我得到这样的输出.

我的C代码:"main.c"

#include<stdio.h>

int fib();

int main() {
  unsigned int p = fib();
  printf("%u\n",p);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

其中fib()是6502程序集中的外部函数,它与C代码链接在一起.

我的6502代码:"fib.s"

 fib:
    //calculates fibonacci
Run Code Online (Sandbox Code Playgroud)

我用这两个文件编译 cl65 -t sim6502 main.c fib.s -o fib

c assembly 6502

0
推荐指数
1
解决办法
224
查看次数

标签 统计

6502 ×2

c ×2

assembly ×1

google-app-engine ×1

python-2.7 ×1

sockets ×1