Jak z kodu w j.C zrobić rozwinięcie ASM

0

Witam
Jak z kodu w j.C zrobić rozwinięcie asm,Assembler.
Pozdrawiam
Adela

1

Nie rozumiem o co chodzi, ale zakładam, że o gcc -S file.c.

2

Obstawiam sytuacje z serii Mam napisać coś w asemblerze, a nie umie. Ale jestem sprytny, napisze w C i skompiluje :D
gcc -S albo skompiluj do binarki a potem objdump

0

Przy czym jest spora szansa że taki kod będzie na tyle nieczytelny, że osobie próbującej pójść na taki "skrót" to nie pomoże...
Albo będzie wręcz problem ze znalezieniem odpowiedniego fragmentu.

Do tego GCC nie wiedzieć po co pod x86 używa jakiejś dzikiej składni asemblera.

0

Czy programem AVR Studio 4 da się to zrobić rozwiniecie asm ? jak ?
Mam zrobiony programem AVR4 z kodu C, disassembly.

1

A moze szybciej będzie przelecieć tą binarkę avr-objdump w takim razie? https://linux.die.net/man/1/avr-objdump ;) Ale to nadal jest słaby pomysł jeśli chcesz udawać ze to ręcznie napisane. To się przydaje ewentualnie jak chcesz sie bawić w reverse engineering.

0

Powiedz Siostro na co ci takie akrobacje?Na jakieś proste zaliczenie to zaawansowany asembler nie jest potrzebny.
Natomiast jak już koniecznie chcesz oglądać wynikowy plik asemblerowy dla swojego kodu C to szukaj flagi kompilatora generującej wynik kompilacji do asemblera.

0

Mam kod w j.C,chcę go mieć w j.ASM , na Attiny 2313A,najlepiej bez delay, może byc z delay ,jeśli to da idealne duty 50%,chodzi o zbliżone do idealnego, lub idealne duty cycle 50%.
Chciałam zrobić rozwinięcie asm tego kodu,ale nie wiem jak,najlepiej aby było to na AVR 4 lub 5.1,6.2.
Czy w kodzie w j.C mozna osiągnąc idealne duty cycle 50% ,jak wygladałby taki kod ?.
Gdy dałam ten kod do symulatora to pokazał na Attiny2313A Stop Watch 9,00 us, i Cycle Counter 9,a przy idealnym duty 50 %, powiniem pokazać 0,czy tak ?.
Co pokazuje idealne 50 % ,jak to można stwierdzić,zobaczyc ?.

kod:

#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB = 0xFF; 
while(1)
{
asm("nop");
asm("nop");
PORTB = 0xaa; 
_delay_us(64000000);
PORTB = 0x55; 
_delay_us(64000000);
  }
}
0

Cóź... dostałaś odpowiedź już na innym forum na to pytanie. Najpierw odsłaniasz po kolei wymagania (1 post asm domyślili się że x86, później że to AVR, teraz że chcesz 50%... cycle). Może napiszesz w 1 poście czego potrzebujesz bo jak widzisz przez niedomówienia są z tym problemy.
Wracając do pytania. Niestety ale pracując z AVR z użyciem wyłącznie kodu, nie osiągniesz idealnego 50% wypełnienia dla wszystkich częstotliwości. Od tego jest mechanizm PWM. Tu masz przynajmniej punkt zaczepienia: https://forbot.pl/blog/wszystko-co-musisz-wiedziec-aby-uruchomic-pwm-id5021

0

Częstotliwość 64/64 sekund, duty 50% możliwie najbardziej zbliżone do idealnego,jeśli możliwe idealne.
Szprzętowe na CD4047 przy czestotliwości kHz też nie jest idealne.
Jak przerobić ten kod z linka poniżej abym miała 64/64 sekund?.
https://forbot.pl/blog/wszystko-co-musisz-wiedziec-aby-uruchomic-pwm-id5021.

1 użytkowników online, w tym zalogowanych: 0, gości: 1