Hallo, ich hab ein mittelschweres Problem:

ich bekomme den USART0 im M88 einfach nicht zum laufen, bekomme beim Compalieren immer den Fehler:

...\Theseus.asm(6: error: Operand 1 out of range: 0xc5

und das ganze immer dort wo ich daten in die Steuerregister des USARTs schreibe oder Daten daraus lese oder Daten in den Datenport schreibe.

Was mache ich falsch?

hier der Code:

Code:
;###################################################################################
;#                                                                                 #
;#                                  THESEUS                                        #
;#                                 ----------                                      #
;#                                                                                 #
;# Microcontroller: ATMEGA88                                                       #
;# Quarz:           7.3728 MHz                                                     #
;#                                                                                 #
;# Autor: Denis Bethäuser                                                          #
;#        www.elektronik4freaks.de.tk                                              #
;#        denis.bethaeuser@gmx.de                                                  #
;#                                                                                 #
;###################################################################################


;----[ µC Includefiles I ]----------------------------------------------------------

.include "m88def.inc"




;----[ Register Def. / Alias Def. ]-------------------------------------------------

.def tmp   = r16                     	  ; Universalregister 1 ( zT Low-Byte )
.def tmp2  = r17                          ; Universalregister 2 ( zT High-Byte )

.equ clock = 7372800
.equ baud = 9600
.equ ubrrval = clock/(baud*16)-1




;----[ Interrupt-Vektoren ]---------------------------------------------------------

.org 0000                                 ; Zum Programmbeginn springen
 rjmp reset

.org OVF1addr
 rjmp reset




;----[ STACK-Pointer und Z-Pointer Einrichten ]-------------------------------------

reset:                                    ; Programm beginnt

ldi tmp, high(ramend)                     ; High-Byte in Stackpointer schreiben
out SPH, tmp

ldi tmp, low(ramend)                      ; Low-Byte in Stackpointer schreiben
out SPL, tmp




;----[ I/O Einstellungen ]----------------------------------------------------------





;----[ UART Einstellungen ]---------------------------------------------------------

ldi tmp, high(ubrrval)                    ; Baudrate-Highbyte schreiben
out UBRR0H, tmp  

ldi tmp, low(ubrrval)                     ; Baudrate-Lowbyte schreiben
out UBRR0L, tmp

ldi tmp, (1<<RXEN0)|(1<<TXEN0)            ; Empfang-Inter., Senden + Empfangen aktiv. 
out UCSR0B, tmp

ldi tmp, (1<<USBS0)|(3<<UCSZ00)            ; Datenformat: 8N1
out UCSR0C, tmp




/*----[ ADC Einstellungen ]----------------------------------------------------------

ldi tmp, (1<<REFS0)|(1<<ADLAR)            ; Referenz = Vcc, 8 Bit-Modus, ADC0
out ADMUX, tmp

ldi tmp, (1<<ADEN)|(1<<ADATE)|(1<<ADSC)|(1<<ADPS1)
out ADCSR, tmp                            ; Frei, Start Conver., Tackt=Clock/4

*/

sei





;####[ Hauptprogramm ]##############################################################

main:

rjmp main
                               
;###################################################################################





;---[ RS232 Sendesubroutine ]-------------------------------------------------------

send:
  
 sbis UCSR0A, UDRE0                         ; Warte bis Sendepuffer leer
 rjmp send   

 out UDR0, tmp                              ; Byte im Arbeitsregister senden

ret
Bitte Helft mir, beim Mega8 klapts ( mit entsprechenden Register versteht sich ) aber warum hier nede, bin am abschnallen!!!!!!