PyAsm是由Python写的动态编译器,使用PyAsm还可以在Python中嵌入汇编语言,用汇编语言来编写Python函数。这听起来很疯狂,但也许你真的需要在python中使用汇编语言。起官方网站为http://members.verizon.net/~olsongt/usersGuide.html
其实很久之前就发现了PyAsm,但是初期的尝试并不成功。官方网站并没有给太多的例子,刚开始也没有完全搞懂PyAsm的原理。昨天又突然想起 PyAsm来,终于有了发现。要用好PyAsm首先要了解PyAsm,根据我的不完全理解,PyAsm中的汇编代码应该是被编译成了Python扩展,然 后读入内存,并执行。这样,如何通过PyAsm在Python中使用汇编也就比较清晰了。其实就是将汇编代码作为Python的扩展函数来写。
初次尝试PyAsm失败就是因为没法处理传入的参数,当时没有搞清楚,只是简单的使用!ARG来获取参数,而实际上PyAsm所编译的函数应当是 Python扩展函数的原型即static PyObject * ext_func(PyObject *self, PyObject *args),主要有两个参数self和args,其中args就是传入的参数列表,需要用Python API PyArg_ParseTuple来解析。
同样,PyAsm中的函数返回值则需要用Py_BuildValue来创建。
好,下面给出一个简单sum函数,求两个参数之和。
# -*- coding:utf-8 -*-
# file: test.py
# by: bluebanboom 0(0
# mail: bluebanboom@gmail.com ~