Dit is de opdrachtnasm 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
nasm - de Netwide Assembler, een draagbare 80x86 assembler
KORTE INHOUD
nasm [-@ antwoordbestand] [-f formaat] [-o uitbestand] [-l lijstbestand] [opties...] bestandsnaam
PRODUCTBESCHRIJVING
De nasm commando assembleert het bestand bestandsnaam en stuurt uitvoer naar het bestand uitbestand if
opgegeven. Als uitbestand is niet gespecificeerd, nasm zal een standaarduitvoerbestandsnaam afleiden van
de naam van het invoerbestand, meestal door '.o' of '.obj' toe te voegen, of door alles te verwijderen
extensies voor een onbewerkt binair bestand. Als dat niet lukt, is de naam van het uitvoerbestand 'nasm.out'.
OPTIES
-@ bestandsnaam
Oorzaken nasm om opties uit de bestandsnaam te verwerken alsof ze in de opdracht zijn opgenomen
lijn.
-a
Oorzaken nasm om het gegeven invoerbestand samen te stellen zonder eerst de macro toe te passen
voorverwerker.
-D|-d macro[=waarde]
Definieert vooraf een enkelregelige macro.
-E|-e
Oorzaken nasm om het gegeven invoerbestand voor te verwerken en de uitvoer naar te schrijven stdout (Of
opgegeven uitvoerbestandsnaam), en eigenlijk niets samenstellen.
-f formaat
Specificeert het formaat van het uitvoerbestand. Gebruik de -hf
optie.
-F formaat
Specificeert het foutopsporingsinformatieformaat. Gebruik de
-y optie (bijv -fel -y).
-g
Oorzaken nasm om foutopsporingsinformatie in het geselecteerde formaat te genereren.
-h
Oorzaken nasm om onmiddellijk af te sluiten, na een samenvatting van de aanroepopties te hebben gegeven.
-hf
Hetzelfde als -h , maar somt ook alle geldige uitvoerformaten op.
-I|-i directory
Voegt een map toe aan het zoekpad voor include-bestanden. De directoryspecificatie
moet de afsluitende schuine streep bevatten, omdat deze direct wordt toegevoegd aan de naam van de
inclusief bestand.
-l lijstbestand
Zorgt ervoor dat een assembly-lijst wordt omgeleid naar het opgegeven bestand, waarin het origineel
bron wordt aan de rechterkant weergegeven (plus de bron voor opgenomen bestanden en de
uitbreidingen van macro's met meerdere regels) en de gegenereerde code wordt links in hex weergegeven.
-M
Oorzaken nasm om afhankelijkheden in Makefile-stijl uit te voeren naar stdout; normale uitvoer is
onderdrukt.
-MG filet
Hetzelfde als -M maar gaat ervan uit dat ontbrekende Makefile-afhankelijkheden worden gegenereerd en toegevoegd
afhankelijkheidslijst zonder voorvoegsel.
-MF filet
Voer afhankelijkheden in Makefile-stijl uit naar het opgegeven bestand.
-MD filet
Hetzelfde als een combinatie van -M en -MF opties.
-MT filet
Overschrijf de standaardnaam van de naam van het afhankelijkheidsdoel. Dit is
normaal gesproken hetzelfde als de naam van het uitvoerbestand, opgegeven door de -o optie.
-MQ filet
Hetzelfde als -MT behalve dat het probeert tekens te citeren die een speciale betekenis hebben in
Makefile-syntaxis. Dit is niet onfeilbaar, aangezien niet alle tekens met een speciale betekenis dat zijn
aanhaalbaar in Make.
- MP
Zend nep doelwit uit.
-O aantal
Optimaliseer vertakkingsoffsets.
· -O0: Geen optimalisatie
· -O1: Minimale optimalisatie
· -Os: Multipass-optimalisatie (standaard)
-o uitbestand
Specificeert een precieze naam voor het uitvoerbestand, met voorrang nasm's standaardmiddel van
het bepalen ervan.
-P|-p filet
Specificeert een bestand dat vooraf moet worden opgenomen, voordat het hoofdbronbestand begint te worden
verwerkt.
-s
Oorzaken nasm om zijn foutmeldingen en/of helptekst naar stdout te sturen in plaats van naar stderr.
-t
Oorzaken nasm te assembleren in SciTech TASM-compatibele modus.
-U|-u macro
Maakt de definitie van een enkelregelige macro ongedaan.
-v
Oorzaken nasm om onmiddellijk af te sluiten, na het weergeven van het versienummer.
*-W[no-]foo'
Oorzaken nasm om bepaalde soorten waarschuwingsberichten in of uit te schakelen, in gcc-achtige
stijl bijvoorbeeld -Worphan-labels or -Wno-wees-labels.
-w[+-]foe
Oorzaken nasm om bijvoorbeeld bepaalde soorten waarschuwingsberichten in of uit te schakelen
-w+weeslabels or -w-macro-parameters.
-X formaat
Specificeert formaat voor foutrapportage (gnu of vc).
-y
Oorzaken nasm om ondersteunde foutopsporingsindelingen weer te geven.
-Z bestandsnaam
Oorzaken nasm om foutmeldingen naar om te leiden bestandsnaam. Deze optie bestaat om te ondersteunen
besturingssystemen waarop stderr niet gemakkelijk wordt omgeleid.
--voorvoegsel, --achtervoegsel
Voeg (respectievelijk) het gegeven argument toe aan of voeg toe aan alle globale of externe variabelen.
SYNTAXIS
Deze man-pagina beschrijft niet volledig de syntaxis van nasm's assembleertaal, maar doet
geef een samenvatting van de verschillen met andere assemblers.
registers hebben geen leidend '%'-teken, in tegenstelling tot gas, en drijvende-komma stapelregisters zijn
verwezen naar Als st0, st1, Enzovoort.
Drijvend punt instructies kan de enkele operandvorm of de dubbele vorm gebruiken. A TO
trefwoord is opgegeven; dus zou men ofwel kunnen schrijven
fadd st0, st1
fadd st1, st0
of men zou de alternatieve vormen met één operand kunnen gebruiken
mode st1
snel naar st1
Niet geïnitialiseerd mediaopslag is gereserveerd met behulp van de RESB, RESW, RESD, RESQ, REST en GEMAAKT
pseudo-opcodes, elk met één parameter die het aantal bytes, woorden,
doublewords, quadwords of tien-byte woorden te reserveren.
Herhaling van gegevensitems wordt niet gedaan door de DUP trefwoord zoals te zien in DOS-assemblers, maar door
het gebruik van de TIJDEN voorvoegsel, zoals dit:
bericht: maal 3 db 'abc'
maal 64-$+bericht db 0
die de tekenreeks abcabcabc definieert, gevolgd door het juiste aantal nul bytes om de
totale lengte tot 64 bytes.
Symbool referenties worden altijd als onmiddellijk beschouwd (dwz het adres van het symbool),
tenzij vierkante haken worden gebruikt, in welk geval de inhoud van de geheugenlocatie is
gebruikt. Dus:
mov bijl, wordvar
laadt AX met het adres van de variabele wordvar, terwijl
mov bijl,[wordvar]
bewegende bijl,[wordvar+1]
mov bijl,[es:wordvar+bx]
verwijzen allemaal naar de inhoud van geheugenplaatsen. De syntaxen
mov ax,es:wordvar[bx]
es mov bijl,wordvar[1]
zijn helemaal niet legaal, hoewel het gebruik van een segmentregisternaam als instructievoorvoegsel
is geldig en kan worden gebruikt met instructies zoals LODSB die niet kan worden overschreven
andere manier.
constanten kan in de meeste formaten numeriek worden uitgedrukt: een H, Q of B achteraan geeft hex aan,
respectievelijk octaal of binair, en een leidende '0x' of '$' geeft ook hex aan. Voorloopnullen
worden helemaal niet speciaal behandeld. Tekenconstanten kunnen tussen enkele of dubbele tekens staan
citaten; er is geen ontsnappingskarakter. De volgorde is little-endian (omgekeerd), dus dat
de karakterconstante 'abcd' geeft 0x64636261 aan en niet 0x61626364.
Lokale labels beginnen met een punt en hun 'lokaliteit' wordt toegekend door de samensteller
voorafgegaan door de naam van het vorige niet-lokale symbool. Dus een label '.loop' erna declareren
een label 'label' heeft eigenlijk een symbool gedefinieerd met de naam 'label.loop'.
RICHTLIJNEN
SECTIE naam or SEGMENT naam oorzaken nasm om alle volgende code naar het named
sectie. Sectienamen variëren met het uitvoerbestandsformaat, hoewel de meeste formaten de
namen .tekst, .gegevens en .bss. (De uitzondering is de obj formaat, waarin alle segmenten zijn
door de gebruiker te definiëren.)
ABSOLUTE adres oorzaken nasm om zijn denkbeeldige verzamelpunt op een absoluut punt te plaatsen
adres: er mag dus geen code of data worden gegenereerd, maar je kunt wel gebruiken RESB, RESW en RESD bewegen
het verzamelpunt verderop, en u kunt labels definiëren. Dus deze richtlijn mag er aan gewend zijn
gegevensstructuren definiëren. Wanneer u klaar bent met absolute montage, moet u uitgeven
ander SECTIE richtlijn om terug te keren naar de normale montage.
BITS 16, BITS 32 or BITS 64 schakelt de standaard processormodus waarvoor nasm is
code genereren: het is gelijk aan GEBRUIK16 or GEBRUIK32 in DOS-assemblers.
EXTERNE symbool en GLOBAL symbool importeer en exporteer respectievelijk symbooldefinities van
en naar andere modules. Merk op dat de GLOBAL richtlijn moet verschijnen vóór de definitie van
het symbool waar het naar verwijst.
STRUCTUUR structuurnaam en EINDSTRUC, wanneer gebruikt om een aantal tussen haakjes te plaatsen RESB, RESW of vergelijkbaar
instructies, definieer een gegevensstructuur. Naast het definiëren van de offsets van de
structuurelementen definieert de constructie ook een symbool voor de grootte van de structuur,
dat is gewoon de structuurnaam met lengte van de duwkabel tot het einde doorgereden.
FORMAAT-SPECIFIEK RICHTLIJNEN
ORG adres wordt gebruikt door de bak flat-form binair uitvoerformaat en specificeert het adres
waarop de uitvoercode uiteindelijk zal worden geladen.
GROEP groepsnaam sec1 sec2... wordt gebruikt door het uitvoerformaat obj (Microsoft 16-bit), en
definieert segmentgroepen. Dit formaat gebruikt ook HOOFDLETTERS, die dat alle segment regisseert,
groeps- en symboolnamen die naar het objectbestand worden uitgevoerd, moeten in hoofdletters zijn. Merk op dat de
daadwerkelijke montage is nog steeds hoofdlettergevoelig.
BIBLIOTHEEK libnaam wordt gebruikt door de rdf uitvoerformaat en zorgt ervoor dat een afhankelijkheidsrecord wordt
geschreven naar het uitvoerbestand wat aangeeft dat het programma een bepaalde bibliotheek nodig heeft
bevel om te rennen.
MACRO VOORVERWERKER
Enkelregelige macro's worden gedefinieerd met behulp van de %definiëren or % definiëren commando's, in een soortgelijke
mode naar de C-preprocessor. Ze kunnen worden overbelast met betrekking tot het aantal
parameters, hoewel het definiëren van een macro zonder parameters de definitie ervan verhindert
macro met dezelfde naam neemt parameters, en vice versa. %definiëren definieert macro's waarvan
namen komen hoofdlettergevoelig overeen, terwijl % definiëren definieert hoofdlettergevoelige macro's.
Meerlijnige macro's worden gedefinieerd met behulp van % macro en % imacro (het onderscheid is hetzelfde als
dat tussen %definiëren en % definiëren), waarvan de syntaxis als volgt is
%macro naam minprm[-maxprm][+][.nolist] [standaard]
%eindmacro
Nogmaals, deze macro's kunnen overbelast zijn. Het afsluitende plusteken geeft aan dat any
parameters na de laatste worden, met hun scheidingskomma's, ondergebracht in de laatste
parameter. De defaults part kan worden gebruikt om standaardinstellingen voor niet-gespecificeerde macro's op te geven
parameters na minparam. %endm is een geldig synoniem voor %eindmacro.
Om te verwijzen naar de macroparameters binnen een macro-uitbreiding, gebruikt u %1, %2 enzovoort. Jij
kan ook afdwingen dat een macroparameter een voorwaardecode moet bevatten door te gebruiken %+1en
u kunt de conditiecode omkeren door te gebruiken -1%. U kunt ook een label definiëren dat specifiek is voor een
macro-aanroep door er een dubbel '%'-teken voor te plaatsen.
Bestanden kunnen worden toegevoegd met behulp van de %erbij betrekken richtlijn, die werkt als C.
De preprocessor heeft een 'contextstack', die gebruikt kan worden om één macro op te slaan
informatie die een latere zal ophalen. U kunt een context op de stapel pushen met behulp van
%duw, verwijder er een met behulp van %knal, en verander de naam van de topcontext (zonder storende
eventuele bijbehorende definities) gebruiken %verv. Etiketten en %definiëren macro's die specifiek zijn voor de top
context kan worden gedefinieerd door hun namen vooraf te laten gaan door %$, en dingen die specifiek zijn voor de volgende
context naar beneden met %$$, enzovoort.
Voorwaardelijke montage gebeurt door middel van %ifdef, %ifndef, %anders en %stop als zoals in C.
(Behalve dat %ifdef kan verschillende vermeende macronamen accepteren en zal indien van toepassing TRUE evalueren
van hen is gedefinieerd.) Bovendien zijn de richtlijnen %ifctx en %ifnctx kan worden gebruikt
condition op de naam van de bovenste context op de contextstapel. De voor de hand liggende set van
'anders-als' richtlijnen, %elifdef, %elifndef, %eliftx en %elifnctx worden ook ondersteund.
Gebruik nasm online met behulp van onworks.net-services