Zdravím,,,mam taky problem,,sotva som napisal kod v assembleru ...a prave riesim preklad do C...vedel by mi s tym niekto helfnut?...je to program na nacitanie vatupu z klavesnice a ako vystup ukazuje jednotlive prebehy,
Kód:
ORG 00h
MOV SCON,#50h
MOV TMOD,#20h
MOV TH1,#0FDh
SETB TR1
MOV R2,#020h
MOV P1,#00h
opakuj: JNB RI,$
MOV A,SBUF
CLR RI
TOBD: CJNE A,#'o',TTROJ
POP ACC
POP ACC
JMP obdlznik
TTROJ: CJNE A,#'t',TPILA
POP ACC
POP ACC
JMP trojuholnik
TPILA: CJNE A,#'p',TSIN
POP ACC
POP ACC
JMP PILA
TSIN: CJNE A,#'s',INCREM
POP ACC
POP ACC
JMP SINUS
INCREM: CJNE A,#'+',DECREM
INC R2
RET
DECREM:
CJNE A,#'-',PRVNI
DEC R2 ;
RET
PRVNI: CJNE R1,#01h,NIC
RET
NIC: JMP opakuj
DELAY: MOV B,R2
DJNZ B, $
RET
;Programy
obdlznik: MOV R1,#01h
MOV P1,#00h
LCALL DELAY
MOV P1,#0FFh
LCALL DELAY
JNB RI,obdlznik
CALL opakuj
JMP obdlznik
;Trojuholnik
trojuholnik: MOV R1,#01h
MOV A,#0FFh
DOWN: DEC A
LCALL DELAY
JZ UP
MOV P1,A
JNB RI,DOWN
CALL opakuj
JMP DOWN
UP: INC A
LCALL DELAY
MOV P1,A
CJNE A,#0FFh,UP
JMP DOWN
;Pila
PILA: MOV R1,#01h
MOV A,#00h
START: MOV P1,A
INC A
LCALL DELAY
CJNE A,#0FFh,START
MOV A,#00h
JNB RI,START
CALL opakuj
JMP START
;Sinus
SINUS: MOV R1,#01h
MOV R0,#00h
HVZESTUP: JNB RI,CONTINUE
CALL opakuj
CONTINUE: ACALL ULOZENI
MOV P1,A
INC R0
CJNE R0,#11h,HVZESTUP
HSESTUP: DEC R0
ACALL ULOZENI
MOV P1,A
CJNE R0,#00h,HSESTUP
DSESTUP: ACALL ULOZENI
CPL A
MOV P1,A
INC R0
CJNE R0,#11h,DSESTUP
DVZESTUP: DEC R0
ACALL ULOZENI
CPL A
MOV P1,A
CJNE R0,#00h,DVZESTUP
JMP HVZESTUP
ULOZENI: MOV A,R0
MOV DPTR,#SIN
MOVC A,@A+DPTR
LCALL DELAY
RET
SIN: DB 87h,96h,0A0h,0AAh,0B4h,0BEh,0C8h,0D2h,0D9h,0E1h,0E6h,0E9h,0EFh,0F3h,0F7h,0FBh,0FFh
end
....dakujem
S