GNU as - pokročilejší práce s řetězcem ?

Milan B. milan na bastl.sk
Pondělí Duben 28 11:48:59 CEST 2014


On 28. 4. 2014 11:25, Jan Waclawek wrote:
> Brutal! :-)
>
> Myslim, ze povodnemu zadaniu skor zodpovie ked bude v prvom riadku
>           .set AV_CNT,'A'-1

Ani nie. Zadanie hovori "aby A se uložilo jako 0, B jako 1".

To uz potom   .set AV_CNT,'A'-'A' :)

> ale to je len esteticka zalezitost.
>
> Myslim, ze ten citat z manualu je stale spravny, t.j. ze sa nepredpoklada,
> ze retazcove konstanty budu predmetom aritmetickych operacii; a to, ze sa
> to da obist pomocou toho .irpc, je IMHO skor neumyselny vedlajsi produkt
> neskorsieho vyvoja. Ak by bolo umyslom spracovavat retazce, boli by tam na
> to operatory.
>
> Treba brat do uvahy aj to, ze (g)as nie je v dnesnej dobe mieneny ako
> plnohodnotny asembler, ale primarne ako sucast backendu gcc. Na druhej
> strane uznavam, ze pozadovanu "operaciu" by som v C/gcc/cpp vobec
> nedokazal zapisat.

To je pravda. GNU asm je velmi chudobny na makro programovacie 
konstrukcie, v porovnani s plnohodnotnymi makroassemblermi. Zato 
direktivami pre debuggery priamo oplyva :)

Na podobne ulohy je najlepsie pouzit nejaky externy generator v 
kombinacii s make.

-m-

> wek
>
>
>
> ----- Original Message ---------------
>> Mozno sa to pre vas pripad da obist:
>>
>>          .set AV_CNT,0
>>          .irpc   CCC, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
>>          .set AV_\CCC, AV_CNT
>>          .set AV_CNT, AV_CNT + 1
>>          .endr
>>
>>
>>          .macro _KEYTEXT TEXT
>>          .irpc   CHR, "\TEXT"
>>          .byte  AV_\CHR
>>          .endr
>>          .endm
>>
>>          _KEYTEXT HELLO
>>
>> Skarede, definuje to 27 symbolov, ale hadam funkcne.
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list