Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Durere umar AC Joint

Care este cea mai sanatoasa paine?

Zgomot ritmic ce urmeaza rotirea ...

Merita Lumix FZ82 in 2024?
 Nu pot activa Memory Integrity

Supratensiuni accidentale

Cuțit/ briceag drumetie

Cum am acces la o parte dintr-un ...
 Mother's Day

Recomandare aparat de vidat alime...

Izolatie exterioara casa parter P...

Cuvinte si expresii neclare
 Mod de lucru Purmo Tempco Digital...

Samsung S90C vs LG C3

Problema sunet RCS

Amortizor sertare bucatarie
 

C - alocarea memoriei + alte chestiuni

- - - - -
  • Please log in to reply
47 replies to this topic

#37
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,288
  • Înscris: 06.01.2007
Pe scurt da.
Sunt gresite
in sensul ca codul ASM, chiar daca sa zicem (dintr-o fantezie care mie imi scapa) ar fi generat undeva intermediar de catre compilator, NU ESTE NECESAR.
Compilatorul AR PUTEA SA FACA insa chestia asta daca-i ceri tu explicit. Pentru ca e o chestie BANALA.
Sa dezasamblezi un cod masina in ASM e ceva banal ce poate sa faca oricine. As putea s-o invat si pe nevasta0-mea sa-mi dezasambleze cu pixul pe foaie kernelul de windows. Asa sa-mi bat joc de ea.

#38
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,628
  • Înscris: 30.07.2003
S-a folosit metoda asta candva, poate se mai foloseste pe la nu stiu care obscur, dar nu e de actualitate.
In procesul de compilare, transformarea codului ce tu-l intelegi in ceea ce procesorul intelege apar elemente comune din poveste dar nu apel separat de compilator ASM care citeste un fisier text cu acea sintaxa.

#39
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,288
  • Înscris: 06.01.2007
Este vorba de cum stochezi instructiunile.
Poti s-o faci BINAR sau TEXT
Exact cum faci tu in C
char* string="50";
in loc sa faci
int numar=50;

Semnificatia e tot aia, insa nu e natural sa stochezi informatii de tip intreg intr-un string asa cum nu e normal sa stochezi cod masina in format ASM(TEXT) decat daca e nevoie de UN OM sa citeasca porcaria aia de cod sa nu-si piarda vremea cu tabele cu OPCODES.

La fel..
Cum tu nu declari variabile de tip int sub forma
 int numar_de_cartofi_in_sac= 0xFF;
ci
 int numar_de_cartofi_in_sac=65535;

Pentru calculator inseamna tot aia, oricum numarul e stocat in format finar in "tranzistori", dar pentru tine ca om vrei sa vezi ca-s cateva zeci de mii de cartofi, nu valoarea FF (care ar trebui sa fie 65535)

Edited by maccip, 19 September 2016 - 13:18.


#40
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,628
  • Înscris: 30.07.2003

View Postmaccip, on 19 septembrie 2016 - 13:18, said:

Cum tu nu declari variabile de tip int sub forma
 int numar_de_cartofi_in_sac= 0xFF;
Asta se foloseste. Eu la greu, pentru ca documentatia echipamentului cu care lucrez e data in asa ceva, discutiile intre colegi daca s-a duce in zecimal ar intarzia un pic analiza etc.

#41
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,288
  • Înscris: 06.01.2007

View Postneagu_laurentiu, on 19 septembrie 2016 - 13:20, said:

Asta se foloseste. Eu la greu, pentru ca documentatia echipamentului cu care lucrez e data in asa ceva, discutiile intre colegi daca s-a duce in zecimal ar intarzia un pic analiza etc.

De aia am dat numele variabilei numar_de_cartofi_in_sac. sa nu se inteleaga ca e o variabila int care urmeaza a fi interpretata bit cu bit.
Pentru ca sunt si variabile din astea, evident.
Dar sa nu-l complicam pe initiator.

#42
AndreiCCC

AndreiCCC

    Junior Member

  • Grup: Junior Members
  • Posts: 45
  • Înscris: 14.09.2016
Las naibii sursele de pe net ca te zapacesc ...

Am inteles. Sper sa nu mai dau pe persoane care baga ASM in procesul de compilare-executare, in afara de cazul in care se doreste citirea codului binar. Sa va arat cursuri de facultate din Romania care te invata prostii?

Daca la un examen nu mentionezi de ASM intre C si codul binar te pica. Vor sa auda frumos ca dupa compilarea oricarui limbaj de nivel mediu sau inalt, intervine limbajul de asamblare. Exact asa cum am scris. Daca ,,sari" direct la binar (cum defapt e in realitate), asa ,,sari" si peste sesiunea de vara....

Assembly-ului nu i se da un iz de limbaj ajutator/limbaj de sine statator, si furnizat optional in cursul compilarii.

Edited by AndreiCCC, 19 September 2016 - 13:31.


#43
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,288
  • Înscris: 06.01.2007
Nu e nevoie.
Dar nu pune prea multa presiune pe chestia asta.
Un compilator daca vrea poate sa faca multe. Ele comunica cu depanatorul, cu interfata in care programezi.
Foloseste briciul lui Occam si taie ce-i irelevant.

Mie mi-a placut interesul tau de a intelege pana la nivelul de tranzistor.
Asa voiam si eu cand m-am apucat. Sa inteleg pana la nivel de tranzistor. Eu nu sunt nici programator, nici electronist, dar sunt pasionat de stiinta si de tot de inseamna cunoastere.
Si imi place sa inteleg cum merg lucrurile.
Briciul lui Occam e un instrument esential pentru a strabate tone de informatii, judecati, argumente.
Drumul cel mai scurt de la cauza la efect.

#44
AndreiCCC

AndreiCCC

    Junior Member

  • Grup: Junior Members
  • Posts: 45
  • Înscris: 14.09.2016
Daca ar fi la fel si profesorii .... desi invat in particular, sunt nevoit sa redau una la examen, si alta sa retin pe termen lung.... Si sunt profesori la peste 40-45 de ani. Vezi mai sus ce te pun sa retii.

Sa spun si practic cum ,,predau". Scrii o bucata de C pe tabla, il trec in ASM, si dupa aceea, utilizand niste conventii, fac codul binar. Totul e corect didactic, dar niciodata nu-ti spune ca in realitate calculatorul nu trece prin ASM.

Universitatea din Iasi.

Edited by AndreiCCC, 19 September 2016 - 13:39.


#45
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,288
  • Înscris: 06.01.2007
Poi nu e rau ca va pune sa-l treceti in ASM cred.
Va invata sa ganditi. Habar n-am.
Depinde de paradigma de discutie. De multe ori se spune ca calculatorul trece in instructiuni ASM, dar de fapt se intelege cod masina. Pentru ca (intr-o paradigma mai generala de discutie) tot aia e.
Sunt atat de multe asemanari intre cod masina si ASM incat in exprimarea fenomenelor sintagmele se folosesc interschimbabil. Si eu fac afirmatia asta cum ca procesorul executa cod ASM. Dar daca ma intreaba cineva despre modul de functionare, trebuie facute distinctii clare intre cod masina si ASM.
Tu ai initiat discutia referindu-te la tranzistori, deci trebuie facuta aceasta distinctie.
In mod curent, nu e necesara rezolutia asta atat de fina pentru a distinge cele doua aspecte.

#46
AndreiCCC

AndreiCCC

    Junior Member

  • Grup: Junior Members
  • Posts: 45
  • Înscris: 14.09.2016
Conceptual stiu ca ASM e tot aia cu cod binar. Ca si ,,water" si ,,apa". Doar ca la acest nivel (pe care vreau sa-l insusesc) nu sunt multumit daca nu fac o distinctie clara (cum in cazul exemplului precent, este vorba de limba engleza respectiv limba romana). E o alta reprezentare a ceva.

Totusi, daca am ,,water" nu trebuie sa trec in italiana ca sa ajung la echivalentul in romana.

#47
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004
Depinde de compilator, unele compilatoare produc ASM si apoi cod masina, folosind un assembler existent. Exista si compilatoare care produc cod C si apoi il compileaza pe ala cu un compilator de C... Evident ca tie ca utilizator final ti se rupe la banana...

De exemplu, la gcc daca vrei sa opresti compilarea la assembler folosesti optiunea -s:

Quote

-S
Stop after the stage of compilation proper; do not assemble. The output is in the form of an assembler code file for each non-assembler input file specified.
By default, the assembler file name for a source file is made by replacing the suffix ‘.c’, ‘.i’, etc., with ‘.s’.
Input files that don't require compilation are ignored.

https://gcc.gnu.org/...Overall-Options

Pozele de pe net nu sint "gresite", doar ca lumea compilatoarelor e vasta si de obicei prin facultati se foloseste un singur tip de compilator, adica ala pe care stie sa-l foloseasca profu :lol:

Edited by Mosotti, 19 September 2016 - 14:17.


#48
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,253
  • Înscris: 24.02.2007

View PostAndreiCCC, on 19 septembrie 2016 - 14:02, said:

Conceptual stiu ca ASM e tot aia cu cod binar.

ASM e reprezentarea sub forma de text a executabilului binar.

ASM – inventat pentru a fi citit/scris de om.
Cod binar – inventat pentru a fi citit/scris de calculator (nu ca n-ar putea si omul... dar n-are sens).

Nu exista o lege anume ce guverneaza ce trebuie sa faci pentru a obtine cod executabil. Ca mai toate in IT, exista fel si fel de metode. Ce vezi in acele poze e o astfel de metoda.

Edited by dani.user, 19 September 2016 - 16:29.


Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate