Jak pisać w C na Keil v7.2, aby uzyskać prostszy kod w asemblerze?

dlugosc kodu w C





Poprzedni Następny
Wiadomość
Spis treści
From: mamlak <mamlak__at_nospam_op.pl>
Subject: dlugosc kodu w C
Date: Tue, 11 Feb 2003 13:01:01 +0100


Witam.
Od pewnego czasu pisze programiki w C v 7.2 w Keil'u. Dawniej wszystko
pisalem w asemblerze, no i pozostaly mi pewne nawyki. Nie moge
przebolec, ze kompilator C robi taka sieczke z prostych operacji, ktore
w asm zajmowalyby kilka linijek.
Czy istnieje gdzies miejsce w sieci gdzie byloby opisane jak pisac w C
aby kompilator Keila przekladal to na proste asemblerowe komendy. Chodzi
mi np o to jak najprosciej w C osiagnac w asemblerowe komendy CPL A, RLC
A, RRC A, SWAP A. Myslalem ze znajde to w Primerze ale nic tam takiego
nie ma.

Pozdrawiam
mamlak

========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.onet.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Sebastian Charlak" <sq5axi_at_nospam_poczta.onet.pl>
Subject: Re: dlugosc kodu w C
Date: Tue, 11 Feb 2003 13:10:10 +0100


Witam.
Od pewnego czasu pisze programiki w C v 7.2 w Keil'u. Dawniej wszystko
pisalem w asemblerze, no i pozostaly mi pewne nawyki. Nie moge
przebolec, ze kompilator C robi taka sieczke z prostych operacji, ktore
w asm zajmowalyby kilka linijek.
Czy istnieje gdzies miejsce w sieci gdzie byloby opisane jak pisac w C
aby kompilator Keila przekladal to na proste asemblerowe komendy. Chodzi
mi np o to jak najprosciej w C osiagnac w asemblerowe komendy CPL A, RLC
A, RRC A, SWAP A. Myslalem ze znajde to w Primerze ale nic tam takiego
nie ma.

Witam.
Mozesz robic wstawki asemblerowe. Pokombinuj tez z poziomem optymalizacji.

Pozdrawiam.
Seba



========
Path: news-archive.icm.edu.pl!news.rmf.pl!news.ipartners.pl!news.nask.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek" <neticus_at_nospam_wp.pl>
Subject: Re: dlugosc kodu w C
Date: Tue, 11 Feb 2003 14:17:24 +0100


Od pewnego czasu pisze programiki w C v 7.2 w Keil'u. Dawniej wszystko
pisalem w asemblerze, no i pozostaly mi pewne nawyki. Nie moge
przebolec, ze kompilator C robi taka sieczke z prostych operacji, ktore
w asm zajmowalyby kilka linijek.
Czy istnieje gdzies miejsce w sieci gdzie byloby opisane jak pisac w C
aby kompilator Keila przekladal to na proste asemblerowe komendy. Chodzi
mi np o to jak najprosciej w C osiagnac w asemblerowe komendy CPL A, RLC
A, RRC A, SWAP A. Myslalem ze znajde to w Primerze ale nic tam takiego
nie ma.

Sam przez to przeszedłem ale już z tego wyrosłem ;-)
A teraz do rzeczy. Kiedy super szybki i zwięzły kod ma znaczenie ?

1) krytyczne czasowo miejsca w programie - jeśli trzeba to zapisz to
w assemblerze
2) brak miejsca w pamięci programu - użyj większej pamięci lub bankuj
pamięć.

W pozostałych przypadkach jakie ma znaczenie, że użytkownik czeka
nie 15us ale 267us na reakcję na naciśnięcie klawisza ?
Jakie znaczenie ma, że wyświetlana na LCD temperatura pokazuje się
nie po 100us od zmiany ale po 517us ?

Spójrz na to inaczej: C stosuje się nie dla uzyskania zwięzłego kodu,
choć nie przesadzaj - często kod jest imponująco zwięzły - ale dla
szybszego napisania DZIAŁAJĄCEGO programu, i to w zapisie,
który pozwoli Ci za rok do niego wrócić i po 10 minutach wprowadzić
poprawkę. Assembler na to praktycznie nie pozwala ...

Z doświadczenia powiem tyle: napisałem w Keil'u kilka programów
dla sterowników przemysłowych, których nie wyobrażam sobie
w assemblerze ... choć assembler by mi matką i ojcem przez wiele lat ;-)

I na koniec ... z czasem nabierzesz wprawy i będziesz wiedział, co jak
napisać, żeby było dostatecznie zwięzłe ... a potem i o tym zapomnisz :-)

Pozdrawiam,

Marek



=======

Poprzedni Następny
Wiadomość
Spis treści
From: "Marek Dzwonnik" <mdz_at_nospam_message.pl>
Subject: Re: dlugosc kodu w C
Date: Tue, 11 Feb 2003 16:01:49 +0100


Użytkownik "mamlak" <mamlak__at_nospam_op.pl> napisał w wiadomości
Czy istnieje gdzies miejsce w sieci gdzie byloby opisane jak pisac w C
aby kompilator Keila przekladal to na proste asemblerowe komendy. Chodzi
mi np o to jak najprosciej w C osiagnac w asemblerowe komendy CPL A, RLC
A, RRC A, SWAP A. Myslalem ze znajde to w Primerze ale nic tam takiego
nie ma.

Zaglądałeś do intrins.h ?

MDz




=======

Poprzedni Następny
Wiadomość
Spis treści
From: mamlak <mamlak__at_nospam_op.pl>
Subject: Re: dlugosc kodu w C
Date: Tue, 11 Feb 2003 16:39:44 +0100


Zaglądałeś do intrins.h ?

Tak zagladalem ale rowniez zagladnalem w kod generowany w asemblerze z
tych funkcji :( Spodziewalem sie troche sprawniejszych funkcji bez
takiego zamieszania. Myslalem raczej o jakims sposobie pisania w C zeby
kod w asm ukladal sie w proste komendy, bo wiem ze wszystko zalezy od
sposobu pisania.

mamlak

========
Path: news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.onet.pl!lublin.pl!news.man.lodz.pl!not-for-mai