002
18.04.2006, 17:29 Uhr
scales of justice
|
Code: |
_convert: push bp mov bp, sp ffree st0 ;FPU Register als leer markieren ffree st1 ffree st2 ffree st3 ffree st4 ffree st5 ffree st6 ffree st7 finit ;Command-Register richtig initalisieren fld dword [bp+6] ;Fließkommazahl in st0 laden fist dword [bp+6] ;als Integer wieder aus st0 laden mov ax, [bp+6] ;niederen Teil in ax mov dx, [bp+4] ;höhren Teil in dx zurückgeben (C-Calling-Convention) mov sp, bp pop bp ret
|
der Code ist für C, also nach der C-Calling-Convention und soll eine float in eine long umwandeln das ganze ist in nasm
bin aber schon weiter gekommen, hatte das finit vergessen der einzige Unterschied ist, dass die FPU statt gar nichts zu machen, alles durcheinander bringt entweder hängt mein Pc sich auf, oder springt an merkwürdige Speicheradressen
ich frag mich nur warum das nur beim FPU passiert Dieser Post wurde am 18.04.2006 um 17:30 Uhr von scales of justice editiert. |