max_payne hat geschrieben:also ich versteh das programm ĂĽberhaupt nicht....
bitte wo programmiert man noch so?
z.b. in der htlstp/dept. elektronik
handelt sich hierbei um die programmierung von µCs, wovon ich zwar auch nicht wirklich ein freund bin, aber mich trotzdem damit abmühen muss.
alles kann ich dir auch nicht sagen, ich versuch mich mal, wo ichs weis
Assembler:
- Code: Alles auswählen
ANFG: MOV SP,#80H ;
CLR RI ; setzt das RI-bit auf 0
HLOOP: MOV R2,#00H ;
MOV DPTR,#TAB ;
LADE: MOV A,R2 ;
MOVC A,@A+DPTR ;
CALL WAITOUT ;aufruf von unterprogramm WAITOUT
INC R2 ;R2 um eins inkrementieren
CJNE R2,#20D,LADE ;falls R2!=525 springt er nach LADE
JNB RI,HLOOP ;falls RI=0x0 springt er nach HLOOP
LJMP UEXIT ;sprung nach UEXIT
;
;
;****************************************
;* *
;* UNTERPROGRAMM *
;* *
;* TABELLENPARAMETER FUER FARBE UND *
;* ZEIT WIRD IM REGISTER A UEBERGEBEN *
;* UPRO GIBT ENTSPRECHENDE FARBE MIT *
;* GEWUENSCHTER ZEIT AUF PERIPHERIE AUS *
;****************************************
;
ORG 0200H ;
WAITOUT: MOV R3,A ;
ANL A,#0FCH ;hat was mit AND-Logik zu tun, denke, das wird bitweise mit AND verknĂĽpft
MOV P1,A ;
MOV A,R3 ;
ANL A,#03H ;
JNZ WAIT ;
MOV A,P4 ;
;
WAIT: ;
MOV R4,#HIGH(NUL5) ;
X1: MOV R5,#LOW (NUL5) ;
DEC R5 ; R5 um eins dekrementiern
NOP ; null-operation
PUSH 00 ;
POP 00 ;
CJNE R5,#00,$-6 ; ĂĽberprĂĽft R5 auf 0, falls R5!=0 fĂĽhrt er den jump-befehl "$-6" aus. was mit $-6 gemeint ist, weis ich jedoch auch nicht, vllt 6 anweisungen nach oben
DJNZ R4,X1 ; springt nach X1 falls (R4-1)==0
DEC A ;dekrementiert A
JNZ X1 ;
RET ; springt dahin zurĂĽck, wo die funktion aufgerufen wurde
END
zum C programm kann ich nicht viel sagen...