[ASM] weryfikacja składni

0

Witam, czy mógłby mi ktoś sprawdzić poniższy kod? Czy składnia jest ok?

WDTCN DATA 0FFH ; WATCHDOG TIMER CONTROL
AMX0CF DATA 0BAH ; ADC 0 MUX CONFIGURATION
AMX0SL DATA 0BBH ; ADC 0 MUX CHANNEL SELECTION
ADC0CN DATA 0E8H ; ADC 0 CONTROL
ADC0H DATA 0BFH ; ADC 0 DATA - HIGH BYTE
REF0CN DATA 0D1H ; VOLTAGE REFERENCE 0 CONTROL
ADC0CF DATA 0BCH ; ADC 0 CONFIGURATION
IE DATA 0A8H
EA BIT IE.7
ADBUSY BIT ADC0CN.4



DELAY_TEMP EQU 00H ; Deklaracja stalej pomocniczej do funkcji opozn.
P4 DATA 84H ; Adres portu P4 (bo do P4 jest podlaczona dioda D2)

CSEG AT 0 ; Ustawienie offsetu dla kodu programu (lub ORG 0 )
LJMP MAIN ; Bezwarunkowy skok do etykiety MAIN

MAIN: ; Poczatek programu glownego

;-------- wylaczenie watchdoga ----------------------
CLR EA ; Wylaczenie wszystkich przerwan
MOV WDTCN,#0DEh
MOV WDTCN,#0ADh
SETB EA ; Wlaczenie zezwolenia na przerwania
;----------------------------------------------------

; Ustawienie rejestrow przetwornika ADC
MOV AMX0CF,#00H	; Ustawienie rejestru konfiguracyjnego
MOV AMX0SL,#00H	; Ustawienie rejestru wyboru portu AIN0
MOV ADC0CF,#00H	; Ustawienie rejestru	wzmocnienia G=1
MOV ADC0CN,#10000001B	; Ustawienie rejestru	kontrolnego przetwornika ADC
; bit 7 - Przetwornik aktywny i gotowy do przetwarzania
; bit 0 - Dane w rejestrze ADC0H sa wyrownane do lewej strony
MOV REF0CN,#00000010B	; Ustawienie rejestru napiecia referencyjnego bitu
WOJ:
ORL ADC0CN,#00010000B	; Ustawienie bitu AD0BUSY na 1 - przetwarzanie danych
XRL P4,#02H ; Negacja stanu linii nr 1 portu P4
MOV A,ADC0H ; Ustawienie wartosci parametru funkcji DELAY
LCALL DELAY ; Wywolanie funkcji opozniajacej
JB ADBUSY,$	; Petla skoku przez siebie
JMP WOJ ; Skok bezwarunkowy do etykiety WOJ



; Funkcje pomocnicze

DELAY:
;----------------------------------------------------------------------------
; Procedura opozniajaca, wartosc opoznienia regulowana przez parametr
; zapisany w rejestrze A
;----------------------------------------------------------------------------
PUSH 0 ; zapis rejestru R0 (z banku 0) na stos
PUSH 1
MOV R0,A

LOOP_DELAY:
MOV R1,#DELAY_TEMP
DJNZ R1,$
MOV R1,#DELAY_TEMP
DJNZ R1,$
DJNZ R0,LOOP_DELAY

POP 1 ; odczyt ze stosu rejestru R1
POP 0
RET ; powrot z funkcji

END
0

o_O nawet nie napisałeś co to za składnia. Nie możesz do kompilatora tego wrzucić?

0

A przepraszam, to jest program na procesor architektury '51.

0

Czyżby problem był w tym że nie ma na czym sprawdzić? =]
hie hie
Nakarmiłem google 'emulator procesora '51' i wypluł ładne rzeczy =]

0

No niestety jedyne co znalazłem to emulatory sprzętowe podłączane pod RS232 do komputera. Zaś mi zależało na czasie. Już temat nie aktualny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1