Dit is de opdrachtyasm die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
yasm - De Yasm modulaire assembler
KORTE INHOUD
yasm [-f formaat] [-o uitbestand] [anders opties...] {in bestand}
yasm -h
PRODUCTBESCHRIJVING
De Yasm Modular Assembler is een draagbare, retargetable assembler geschreven onder de "nieuwe"
(2- of 3-clausule) BSD-licentie. Yasm ondersteunt momenteel de x86- en AMD64-instructiesets,
accepteert NASM- en GAS-assembler-syntaxis, voert binair, ELF32, ELF64, COFF, Win32 en
Win64-objectformaten en genereert bronfoutopsporingsinformatie in STABS, DWARF 2 en
CodeView 8 formaten.
YASM bestaat uit de yasm command, libyasm, de kern-backend-bibliotheek en een groot aantal
van modules. Momenteel zijn libyasm en de laadbare modules statisch ingebouwd in het yasm
uitvoerbaar.
De yasm command assembleert het bestand infile en stuurt de uitvoer naar het bestand uitbestand if
opgegeven. Als uitbestand is niet gespecificeerd, yasm zal een standaarduitvoerbestandsnaam afleiden van
de naam van het invoerbestand, meestal door .o of .obj toe te voegen, of door alle extensies te verwijderen
voor een onbewerkt binair bestand. Als dat niet lukt, zal de naam van het uitvoerbestand yasm.out zijn.
Indien gebeld met een in bestand van "-", yasm verzamelt de standaardinvoer en stuurt de uitvoer ernaar
het bestand uitbestand, of yasm.out als nee uitbestand is gespecificeerd.
OPTIES
Veel opties kunnen in twee vormen worden gegeven: een streepje gevolgd door een enkele letter,
of twee streepjes gevolgd door een lange optienaam. Opties worden in alfabetische volgorde weergegeven.
Algemeen Opties
-a boog or --boog=boog: Selecteer doelarchitectuur
Selecteert de doelarchitectuur. De standaardarchitectuur is “x86”, die ondersteuning biedt
zowel de IA-32 en derivaten als AMD64-instructiesets. Om een lijst af te drukken van
beschikbare architecturen naar standaarduitvoer, gebruik “help” as boog. Zien yasm_arch(7) voor een
lijst met ondersteunde architecturen.
-f formaat or --oformat=formaat: Selecteer objectformaat
Selecteert het formaat van het uitvoerobject. Het standaardobjectformaat is “bin”, wat een flat is
binair formaat zonder verplaatsing. Om een lijst met beschikbare objectformaten af te drukken naar
standaarduitvoer, gebruik “help” as formaat. Zien yasm_objfmts(7) voor een lijst met ondersteunde
objectformaten.
-g debug or --dformat=debug: Selecteer het foutopsporingsformaat
Selecteert het foutopsporingsformaat voor foutopsporingsinformatie. Er kan gebruik worden gemaakt van foutopsporingsinformatie
door een debugger om uitvoerbare code terug te koppelen aan het bronbestand of om gegevens op te halen
structuur- en type-informatie. Beschikbare foutopsporingsformaten variëren per object
formaten; yasm zal een foutmelding geven wanneer een ongeldige combinatie wordt geselecteerd. Het standaardobject
formaat wordt geselecteerd door het objectformaat. Om een lijst met beschikbare foutopsporing af te drukken
formaten naar standaarduitvoer, gebruik “help” als debug. Zien yasm_dbgfmts(7) voor een lijst van
ondersteunde foutopsporingsformaten.
-L lijst or --lformat=lijst: Selecteer het lijstbestandsformaat
Selecteert het formaat/de stijl van het uitvoerlijstbestand. Lijstbestanden vermengen doorgaans de
originele bron met de machinecode gegenereerd door de assembler. De standaardlijst
formaat is “nasm”, wat het NASM-lijstbestandsformaat nabootst. Om een lijst met beschikbare bestanden af te drukken
lijst bestandsformaten naar standaarduitvoer, gebruik “help” as lijst.
-l lijstbestand or --lijst=lijstbestand: Geef de bestandsnaam van de lijst op
Specificeert de naam van het uitvoerlijstbestand. Als deze optie niet wordt gebruikt, is er geen lijstbestand
is gegenereerd.
-m machine or --automaat=machine: Selecteer de architectuur van de doelmachine
Selecteert de architectuur van de doelmachine. In wezen een subtype van de geselecteerde
architectuur, het machinetype selecteert tussen de belangrijkste subsets van een architectuur. Voor
Voor de “x86”-architectuur zijn de twee beschikbare machines bijvoorbeeld “x86”.
gebruikt voor de IA-32 en afgeleide 32-bits instructieset, en “amd64”, die wordt gebruikt
voor de 64-bits instructieset. Deze differentiatie is nodig om de
juiste objectbestand voor verplaatsbare objectformaten zoals COFF en ELF. Voor het afdrukken van een
lijst met beschikbare machines voor een bepaalde architectuur naar standaarduitvoer, gebruik “help” as
machine en de gegeven architectuur die gebruikt wordt -a boog. Zien yasm_arch(7) voor meer details.
-o bestandsnaam or --objbestand=bestandsnaam: Geef de objectbestandsnaam op
Specificeert de naam van het uitvoerbestand, waarbij elke standaardnaam die door Yasm is gegenereerd, wordt overschreven.
-p parser or --parser=parser: Selecteer parser
Selecteert de parser (de syntaxis van de assembler). De standaardparser is “nasm”, die
emuleert de syntaxis van NASM, de Netwide Assembler. Een andere beschikbare parser is “gas”,
die de syntaxis van GNU AS emuleert. Om een lijst met beschikbare parsers af te drukken naar standard
uitvoer, gebruik “help” als parser. Zien yasm_parsers(7) voor een lijst met ondersteunde parsers.
-r voorbereiden or --preproces=voorbereiden: Selecteer preprocessor
Selecteert de preprocessor die moet worden gebruikt voor het invoerbestand voordat het wordt doorgegeven aan de parser.
Preprocessors bieden vaak macrofunctionaliteit die niet in de hoofdprocessor is opgenomen
parser. De standaard preprocessor is “nasm”, wat een geïmporteerde versie is van de werkelijke
NASM-preprocessor. Er is ook een “raw” preprocessor beschikbaar, die de
voorverwerkingsstap, waarbij het invoerbestand rechtstreeks aan de parser wordt doorgegeven. Om een lijst af te drukken van
beschikbare preprocessors naar standaarduitvoer, gebruik “help” als voorbereiden.
-h or --help: een overzicht van de opties afdrukken
Drukt een samenvatting van de aanroepopties af. Alle andere opties worden genegeerd en er is geen uitvoer
bestand wordt gegenereerd.
--versie: Download de Yasm-versie
Deze optie zorgt ervoor dat Yasm het versienummer van Yasm afdrukt, evenals een licentie
samenvatting naar standaarduitvoer. Alle andere opties worden genegeerd en er wordt geen uitvoerbestand gegenereerd
gegenereerd.
waarschuwing Opties
-W opties hebben twee tegengestelde vormen: -Wnaam en -Wnee-naam. Alleen de niet-standaardformulieren zijn dat
hier getoond.
De waarschuwingsopties worden afgehandeld in de volgorde die op de opdrachtregel wordt aangegeven, dus als -w is
gevolgd door -Worphan-labels, zijn alle waarschuwingen uitgeschakeld behalve voor weeslabels.
-w: Alle waarschuwingsberichten blokkeren
Deze optie zorgt ervoor dat Yasm alle waarschuwingsberichten blokkeert. Zoals hierboven besproken, dit
optie kan worden gevolgd door andere opties om gespecificeerde waarschuwingen opnieuw in te schakelen.
-fout: Behandel waarschuwingen als fouten
Deze optie zorgt ervoor dat Yasm alle waarschuwingen als fouten behandelt. Normaal gesproken doen waarschuwingen dat niet
voorkomen dat een objectbestand wordt gegenereerd en resulteren niet in een foutieve afsluitstatus
van yasm, terwijl fouten dat wel doen. Deze optie maakt waarschuwingen gelijk aan fouten in termen
van dit gedrag.
-Wno-niet-herkende-char: geen waarschuwing geven bij niet-herkende invoertekens
Zorgt ervoor dat Yasm niet waarschuwt voor niet-herkende tekens in de invoer. Normaal gesproken Yasmin
genereert een waarschuwing voor elk niet-ASCII-teken dat in het invoerbestand wordt aangetroffen.
-Worphan-labels: Waarschuw voor labels zonder volgoptie
Wanneer de NASM-compatibele parser wordt gebruikt, waarschuwt Yasm voor labels die alleen worden gevonden
een regel zonder dubbele punt. Hoewel dit legale labels zijn in de NASM-syntaxis, kan dat wel het geval zijn
onbedoeld zijn, vanwege typefouten of volgorde van macrodefinities.
-X stijl: Wijzig de rapportagestijl voor fouten/waarschuwingen
Selecteert een specifieke uitvoerstijl voor fout- en waarschuwingsberichten. De standaardwaarde is “gnu”
stijl, die de uitvoer nabootst van gcc. De “vc”-stijl is ook beschikbaar, die nabootst
de uitvoer van de Visual C++-compiler van Microsoft.
Deze optie is beschikbaar zodat Yasm op natuurlijkere wijze in IDE-omgevingen kan worden geïntegreerd
zoals Visual Studio of Emacs, waardoor de IDE de
fout-/waarschuwingsbericht als zodanig en link terug naar de overtredende regel van de broncode.
preprocessor Opties
Hoewel deze preprocessor-opties theoretisch van invloed zullen zijn op elke preprocessor, is de enige
preprocessor die momenteel in Yasm aanwezig is, is de “nasm” preprocessor.
-D macro[=waarde]: een macro vooraf definiëren
Definieert vooraf een macro met één regel. De waarde is optioneel (als er geen waarde wordt opgegeven, wordt de
macro is nog steeds gedefinieerd, maar met een lege waarde).
-e or --preproc-alleen: Alleen voorbewerken
Stopt de montage na de voorbewerkingsfase; voorverwerkte uitvoer wordt naar de
opgegeven uitvoernaam of, als er geen uitvoernaam is opgegeven, de standaarduitvoer. Nee
objectbestand wordt geproduceerd.
-I pad: Inclusief bestandspad toevoegen
Voegt map toe pad naar het zoekpad voor include-bestanden. Het zoekpad is standaard ingesteld op
alleen inclusief de map waarin het bronbestand zich bevindt.
-P bestandsnaam: Voeg vooraf een bestand toe
Bevat vooraf een bestand bestandsnaam, waardoor het lijkt alsof bestandsnaam werd voorafgegaan aan de
invoer. Kan handig zijn voor het voorafgaan van macro's met meerdere regels die de -D kan niet ondersteunen.
-U macro: Definieer een macro
Maakt de definitie van een macro met één regel ongedaan (kan een ingebouwde macro zijn of een macro die eerder is gedefinieerd).
op de opdrachtregel met -D.
Voorbeelden
Om de NASM-syntaxis samen te stellen, 32-bit x86-bron source.asm in ELF-bestand source.o, waarschuwing aan
weeslabels:
yasm -f elf32 -Worphan-labels source.asm
Om de NASM-syntaxis AMD64 source x.asm samen te stellen in het Win64-bestand object.obj:
yasm -f win64 -o object.obj x.asm
Om de reeds voorbewerkte NASM-syntaxis x86-bron y.asm samen te stellen tot een plat binair bestand y.com:
yasm -f bin -r raw -o y.com y.asm
DIAGNOSE
De yasm opdracht eindigt op 0 bij succes, en niet op nul als er een fout optreedt.
COMPATIBILITEIT
Yasm's NASM-parser en preprocessor, terwijl ze ernaar streven zo compatibel mogelijk te zijn
met NASM, hebben enkele incompatibiliteiten vanwege de verschillende interne structuur van YASM.
De GAS-parser en preprocessor van Yasm missen een aantal functies die aanwezig zijn in GNU AS.
BEPERKINGEN
Omdat objectbestanden vaak architectuur- en machineafhankelijk zijn, zijn niet alle combinaties van
objectformaten, architecturen en machines zijn legaal; proberen een ongeldige te gebruiken
combinatie zal resulteren in een fout.
Er is geen ondersteuning voor symboolkaarten.
Gebruik yasm online met behulp van onworks.net-services