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