ASM51, ako by ste nakodovali?

Daniel Valuch daniel.valuch@wanadoo.fr
Neděle Leden 22 17:41:44 CET 2006


V case ked som pisal mail ze sa idem trapit som nemal ziadnu odpoved na 
moj prvy mail, asi sa nieco stratilo...
Program uz funguje, spravil som to obidvomi sposobmi ako pises :-) Prva 
cast je cez jump, lebo kod je susledny a druha cez cjne lebo kod je 
nesusledny.
'51 som neprogramoval uz roky takze to chvilu trvalo kym som si na 
zaklade datasheetov pospominal na vsetky instrukcie :-) Otazku som 
posielal preto ze je tu plno programatorov, ktori to vysypu z rukava. 
Doktorovi cez potrubia trvalo asi 4 hodiny kym dal vsetko dokopy. Ale 
keby som to teraz robil este raz uz by to trvalo par minut, o dva roky 
znova 4 hodiny :-) '51 som ucil asi 4 roky na priemyslovke, ale ako som 
spominal neprogramujem, takze som vela veci zabudol. Takisto som kedysi 
vedel integrovat, pouzivat laplaceovu transformaciu, alebo z hlavy 
nakreslit delicku z klopnych obvodov :-)
Dik este raz,
b.



MK wrote:

>>tak nic, myslel som ze rutinu "CASE" maju borci co programuju v
>>asembleri dobre zvladnutu. Tak sa idem trapit a skusim nieco nakodit :-/
>>    
>>
>
>Balu promin, ale pokud vim, tak jsi dostal jiz dva navody jak to spachat a 
>pritom se jedna o elementarni zaklad, ktery se s  oblibou uci na nasuch 
>prohnilych  strednich skolach :-)))))) Neco obdobneho by snad mel prumerny 
>doktor pres potrubi zvladnout, ne :-)))))
>
>
>V pripade nesouslednych hodnot je vhodne zretezene porovnani ala
>
>if  then
>else if then
>else uf then
>....
>else
>
>coz je realizovatelne velice jednoduse pomoci
>cjne  a, #x0, next1
>jmp xx_0
>
>next1:
>cjne  a, #x1, next2
>jmp xx_1
>
>next2
>cjne  a, #x2, next2
>jmp xx_2
>
>next1:
>............................
>
>pripadne variant pomoci JZ, JNZ a SUBB (pozor XRL neovlivmuje Z flag)
>rotace a JC, JNC pripadne co Te jen napadne :))))
>
>
>Nebo pro sousledne hodnoty primo
>switch (x) of{
>case 1:
>case 2:
>.....
>}
>
>coz se necha jednoduse realizovat pomoci rozskokove tabulky
>
>rr A
>rr A
>mov DPTR, #tab
>jmp @A+DPTR
>
>kde
>tab: je tabulka s adresami skoku
>
>nebo muzes pouzit na prvni pohled slozitejsi, ale DPTR nevyuzivajici (zase 
>zabere misto na stacku)
>
>mov     A,xxx        ; kterou rutinou mame pokracovat ????
>anl     A,#01111110B
>mov     B3,A
>add     A,#tab-$-2
>movc    A,@A+PC
>push    ACC             ; Lo(Adr)  a ulozime ji na vrchol STACKu
>mov     A,B
>add     A,#tab-$-3
>movc    A,@A+PC
>push    ACC             ; Hi(Adr)
> ret                     ; a skocime tam
>
>kde
>tab: je opet tabulka adres prislusnych rutin
>
>Kdy pouzit co je jiz na Tvem zvazeni a Tvych schopnostech.
>
>S pozdravem
>MK
>
>
>
>_______________________________________________
>HW-list mailing list  -  sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>---------------------------------------------------------------------------------------
>Wanadoo vous informe que cet  e-mail a ete controle par l'anti-virus mail. 
>Aucun virus connu a ce jour par nos services n'a ete detecte.
>
>
>
>
>  
>




Další informace o konferenci Hw-list