Diskussion:Muluwuw

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Was soll der Unsinn? Das ist in AVR Arithmetik schon gut drin, eine Inline-ASM Version für C ist Nonsense. Ich beantrage Löschung.


Seh ich auch so. Es ist ziemlicher Unsinn, zudem falsch und es fehlen unnötige Header. Lieber keinen Artikel an der Stelle als sowas...

Wenn man wirklich in einem C-File eine avr-gcc-kompatible asm-Funktion implementieren möchte, dann so:

Header

<c>

  1. include <stdint.h>

extern uint32_t umulhisi3 (uint16_t, uint16_t); </c>


C-File

<c> asm( ".text \n" ".global umulhisi3 \n" ".type umulhisi3, @function\n" "umulhisi3: \n" " movw r30, r24 \n" " movw r26, r22 \n" " mul r30, r26 \n" " movw r22, r0 \n" " mul r31, r27 \n" " movw r24, r0 \n" " mul r30, r27 \n" " add r23, r0 \n" " adc r24, r1 \n" " clr __zero_reg__ \n" " adc r25, __zero_reg__\n" " mul r31, r26 \n" " add r23, r0 \n" " adc r24, r1 \n" " clr __zero_reg__ \n" " adc r25, __zero_reg__\n" " ret\n" ".size umulhisi3, .-umulhisi3 \n" ); </c>

--Gjlayde 18:48, 10. Okt. 2009 (UTC)