Nee, de assemblagetaal voor x86 -processors is niet Hetzelfde als die voor Vax of Motorola 68x00 -systemen.
Dit is waarom:
* Verschillende architecturen: Elke processorfamilie heeft een unieke architectuur met zijn eigen instructieset, het aanpakken van modi en registerset. Dit leidt tot verschillende assemblagetalen voor elk.
* Instructieset: De instructies die beschikbaar zijn in X86 -assemblage (zoals MOV, ADD, JMP) zijn specifiek voor de X86 -architectuur en verschillen van de instructies die worden gebruikt in VAX of 68X00 -assemblage.
* Adresseringsmodi: De manieren waarop instructies toegang krijgen tot geheugen en gegevens (zoals registerindirect, basis-geïndexeerd, enz.) Zijn uniek voor elke processorfamilie.
* registers: Het aantal en soorten registers die door de processor worden gebruikt (zoals registers van algemene doeleinden, segmentregisters, enz.) Diepen ook aanzienlijk tussen architecturen.
in eenvoudiger termen: Stel je een assemblagetaal voor als een taal voor het communiceren met een specifiek type computer. Net zoals verschillende talen nodig zijn om te communiceren met mensen uit verschillende culturen, zijn verschillende assemblagetalen nodig om te communiceren met verschillende processorfamilies.
Voorbeeld:
* x86: `MOV EAX, [EBX]` (Gegevens verplaatsen van de geheugenlocatie waarnaar door EBX Register in EAX -register is geregistreerd)
* vax: `MOVL @R1, R0` (verplaats gegevens van de geheugenlocatie waarnaar op register R1 naar Register R0 is geregistreerd)
* Motorola 68x00: `Move.L (A0), D0` (verplaats gegevens van de geheugenlocatie waarnaar op Adres Register A0 wordt geregistreerd in gegevensregister D0)
Zoals u kunt zien, zijn de gebruikte syntaxis en instructies compleet anders.
Conclusie: Hoewel assemblagetaal een programmeertaal op laag niveau is, is deze afgestemd op de specifieke architectuur van de processor. Elke processorfamilie heeft zijn eigen verschillende assemblagetaal. |