Article View: pl.comp.lang.asm
Article #25448051 - Archimedes Assembler
From: Pszemol
Date: Tue, 10 Jul 2012 14:36
Date: Tue, 10 Jul 2012 14:36
101 lines
4664 bytes
4664 bytes
Witam - szukam kogoś kto miał kiedyś do czynienia ze starszym softem dla
8051...
Mam tu do rozgryzienia kod napisany w assemblerze 8051 Archimedes z 1990
roku.
Nie mogę nigdzie znaleźć dokumentacji do tego asemblera, do składni makro
-instrukcji itp. Składnię ma dosyć dziwną, część można się domyślić, część
nie.
Ktoś wie może co oznaczają w poniższym przykładzie odnośniki do "\0+1"?
Albo jak rozumieć "\0_TL0_2"? No i kto widział nazwę etykiety conv2\.: ?
Przykład:
MACRO %convert_data ;
mov a,\0+1 ; If tl0 = ff and next read of tl0
cjne a,#0ffh,conv1\@ ; = 00 then dec th0.
;
mov a,\0_TL0_2 ;
jnz conv1\. ;
;
mov a,\0_TH0_2 ; Jump if th0 2nd reading <> th0.
cjne a,\0,conv1\. ;
;
setb c ;
sjmp conv2\. ; Jump to decrement TH0.
;
conv1\.: ;
mov a,\0+2 ;zb. P1 (LC04-LC11) to A
anl a,#0f0h ;zb. Mask off lower 4 bits; leave LC11-LC8
cjne a,#0f0h,conv4\. ;zb. if not equal to 0x0F
sjmp conv5\. ;zb. if equal to 0x0F jump to decrement T0
counter, (to fast overflow)
conv4\.:
mov a,\0_ROC ;
jnb acc.5,conv3\. ; Jump if ROC not set.
;
mov a,\0_TL0_2 ;
cjne a,\0+1,conv3\. ; Jump if not equal.
;
mov a,\0+2 ; Jump if p1 = 0 if p1 = 0 then internal
jz conv3\. ; counter have rolled over. ignore p3.5.
;
conv5\.:
clr c ; Decrement Timer 0.
mov a,\0+1 ; Sub 1 from low order.
subb a,#1 ;
mov \0+1,a ; Resave low count.
;
conv2\.: ; Decrement TH0.
mov a,\0+0 ; Sub 0 with borrow from high count.
subb a,#0 ;
mov \0+0,a ; Resave high count.
mov a,\0_overflow ; Clear overflow if still borrowed.
subb a,#0 ;
mov \0_overflow,a ; Resave overflow.
sjmp conv\. ;
;
conv3\.: ;
conv\<: ;
anl \0+3,#0fh ; Mask off upper 4 bits of P2 data.
mov a,\0+2 ; Get low byte from p1.
anl A,#0fh ; Mask off upper 4 bits.
swap a ; Move lower 4 bits to upper 4 bits.
orl \0+3,A ; Create lsb byte of count.
;
mov a,\0+2 ; Get high count from P1 data.
swap a ;
anl a,#0fh ;
mov \0+2,a ; Moved to lsb.
mov a,\0+1 ; Get low byte from timer 0 msb.
anl A,#0fh ; Mask off upper 4 bits.
swap a ; Move lower 4 bits to upper 4 bits.
orl \0+2,A ; Create next significant bit of data.
;
mov a,\0+1 ; Get high count from timer 0 data.
swap a ;
anl a,#0fh ;
mov \0+1,a ; Moved to lsb.
mov a,\0+0 ; Get low byte from timer 0 high.
anl A,#0fh ; Mask off upper 4 bits.
swap a ; Move lower 4 bits to upper 4 bits.
orl \0+1,A ; Create next significant bit of data.
;
mov a,\0 ;
swap a ;
anl a,#0fh ;
mov \0,a ;
;
mov a,\0_overflow ;
cjne a,#TRUE,conv\@ ;
;
mov \0_overflow,#00 ;
conv\<: ;
nop ;
;
ENDMAC
Technical Details
Message-ID:
<jtheks$edm$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.gazeta.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.gazeta.pl!not-for-mail From: "Pszemol" <Pszemol@PolBox.com> Newsgroups: pl.comp.lang.asm Subject: 8051 - Archimedes Assembler Date: Tue, 10 Jul 2012 09:36:09 -0500 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 102 Message-ID: <jtheks$edm$1@inews.gazeta.pl> Reply-To: "Pszemol" <Pszemol@BigFoot.com> NNTP-Posting-Host: gw.petrovend.com Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1341930972 14774 204.248.56.195 (10 Jul 2012 14:36:12 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Tue, 10 Jul 2012 14:36:12 +0000 (UTC) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8117.416 X-Priority: 3 X-User: pszemol70 X-MSMail-Priority: Normal X-Newsreader: Microsoft Windows Live Mail 14.0.8117.416 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit