sábado, 28 de abril de 2007

Bastante curro

#pyasmsx example, only testing v01

def sumar(n,m):
return n+m

def main():
bx=55
ax=64
cx=sumar(ax,bx)
print cx


if __name__ == '__main__': main()


resultado de hoy...

; Source generated by PyAsmsx 0.1
; Compile with asMSX.exe (www.robsy.net)

;pyasmsx example, only testing v01
;1 #pyasmsx example, only testing v01
;2
;----------definicion funcion-----------
;3 def sumar(n,m):
;4 return n+m
;5
;----------definicion funcion-----------
;6 def main():
;7 bx=55
;8 ax=64
;9 cx=sumar(ax,bx)
;10 print cx
;11
;12
;...sentencia if...
;13 if __name__ == '__main__': main()

Primeros pasos

Estoy programando la version pre-alpha de mi cross-compiler.
Es un programa que genera codigo para assembler z80 (version de asMsx) ---> www.robsy.net
a partir de codigo python.

input args:
pyasmsx.py [file_in.py [file_out]] [/debug]

output:
example.asm
or
file_out.asm

------------------------------------------------------------------
Me pregunto como debería ser el paso de parametros en z80.

ejemplo python:
def sumar(a,b):
return a+b

sumar(3+6)

codigo a generar... para z80

ld af,3
ld bc,6
push af
push bc
call sumar
ret

sumar:
"codigo"

y prescindir de push y pops...
asumiendo claro que los parametros de entrada estan contenidos en los registros...

entonces, tenemos:
ld a,3
ld b,6
call sumar