Re: mem.copy: Quell-Array Position? Kategorie: Programmierung (von André H. - 4.01.2005 21:01) | ||
Als Antwort auf Re: mem.copy: Quell-Array Position? von GĂĽnni - 4.01.2005 20:38 | ||
| ||
Hallo Günni, > wobei wir gerade bei mem-Modul sind: > für die nächsten Revisision hätte ich für getlong und geting (put...) einen Verbesserrungsvorschlag. > Und zwar das man angeben kann ob die Daten MSB oder LSB abgelegt sind. > Das erleichtert die Kommunikation mit anderen Systemen die nicht zufällig MSB-Standard haben und > spart einem lä�tige "Umbauarbeiten". Hier kann ich nichts ändern, ohne das OS selbst anzupassen. Denn alle Funktionen, die in mem.c2 nur aus einer inline-Zeile bestehen, sind eigene VM-Codes des OS. Hier bleibt dann nichts anderes übrig, als folgendes Konstrukt, wenn man "LSB first" benötigt: function getlongLSBfirst(byte src[]) returns long {long x; x=(src[3] shl 8) or src[2]; return (x shl 16) or (src[1] shl 8) or src[0]; } function getintLSBfirst(byte src[]) returns int { return (src[1] shl 8) or src[0]; } Gut, man könnte hier auch eine Mini-ASM-Routine, wie für die ROL/ROR-Geschichte verwenden: In Assembler sieht das dann so aus: getint proc far CALLS OSsegment,POP_R4 ;source EXTS #8,#2 MOVB RL5, [R4+] MOVB RH5, [R4] MOV R12, R5 CALLS OSsegment,PUSH_R12 POP R1 POP R1 RETS getint endp getlong proc far CALLS OSsegment,POP_R4 ;source EXTS #8,#4 MOVB RL5, [R4+] MOVB RH5, [R4+] MOVB RL6, [R4+] MOVB RH6, [R4] MOV R12, R5 MOV R13, R3 CALLS OSsegment,PUSH_LONG POP R1 POP R1 RETS getlong endp Ob sich der Aufwand aber lohnt, bezweifle ich fast. Zumindest bei der Verwendung von Integer wird es zeitlich kaum einen Gewinn geben. Bei Long wird die Ausführung etwas schneller sein. Besser wäre es dann den kompletten Datenrahmen, den man erhält, mit ASM zu zerlegen, um wirklich Zeit zu sparen. Aber man mu� hier immer abwägen, wie zeitkritisch etwas ist. MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: Re: mem.copy: Quell-Array Position? (von Thomas - 5.01.2005 17:29) Re: mem.copy: Quell-Array Position? (von André H. - 12.01.2005 21:00) Re: mem.copy: Quell-Array Position? (von Thomas - 13.01.2005 21:38) Re: mem.copy: Quell-Array Position? (von André H. - 18.01.2005 22:48) Re: mem.copy: Quell-Array Position? (von Thomas - 18.01.2005 23:55) Re: mem.copy: Quell-Array Position? (von André H. - 21.01.2005 19:25) Re: mem.copy: Quell-Array Position? (von Holger - 14.01.2005 12:24) Re: mem.copy: Quell-Array Position? (von Thomas - 14.01.2005 18:09) |