GoGPT Best VPN GoSearch

Favicon di OnWorks

as86 - Online nel cloud

Esegui as86 nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando as86 che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


as86 - Assemblatore per processori 8086..80386

SINOSSI


as86 [-0123agjuw] [- lm[stratagemma,-n Nome] [-o obj] [-b[bidone,-s sym] [-t testosega] src

as86_encap prog.s prog.v [prefisso_] [as86_opzioni]

DESCRIZIONE


as86 è un assembler per i processori 8086..80386, la sua sintassi è più vicina a
intel/microsoft piuttosto che la forma generica più normale del sistema unix
assemblatore.

. src file può essere '-' per assemblare lo standard input.

Questo assembler può essere compilato per supportare la CPU 6809 e potrebbe anche funzionare.

as86_encap è uno script di shell per chiamare as86 e convertire il binario creato in un file C
prog.v da includere o collegare a programmi come i programmi di installazione dei blocchi di avvio. Il prefisso_
argomento è un prefisso da aggiungere a tutte le variabili definite dalla sorgente, il valore predefinito è
il nome del file sorgente. Le variabili definite includono prefisso_inizio prefisso_dimensione e
prefisso_dati per definire e contenere il codice, più interi contenenti i valori di all
etichette esportate. Uno o entrambi i prog.s e prog.v gli argomenti possono essere '-' per standard
dentro fuori.

VERSIONI


-0 inizia con un segmento di codice a 16 bit, avvisa per tutte le istruzioni > 8086

-1 inizia con un segmento di codice a 16 bit, avvisa per tutte le istruzioni > 80186

-2 inizia con un segmento di codice a 16 bit, avvisa per tutte le istruzioni > 80286

-3 inizia con un segmento di codice a 32 bit, non avvisare per nessuna istruzione. (nemmeno 486 o
586)

-a abilitare la compatibilità parziale con Minix asld. Questo scambia l'interpretazione di
parentesi tonde e quadre, nonché apportare modifiche al codice
generazione e sintassi per salti e chiamate a 16 bit. ("jmp @(bx)" è quindi un valido
istruzione)

-g metti solo simboli globali nell'oggetto o nel file di simboli

-j sostituire tutti i salti brevi con salti simili a 16 o 32 bit, il condizionale a 16 bit
i rami sono codificati come un breve condizionale e un lungo incondizionato.

-O questo fa sì che l'assemblatore aggiunga passaggi extra per provare a utilizzare i riferimenti in avanti a
ridurre i byte necessari per alcune istruzioni. Se le etichette si spostano all'ultimo passaggio
l'assemblatore continuerà ad aggiungere passaggi finché tutte le etichette non si stabilizzeranno (al massimo
di 30 passaggi) Probabilmente non è una buona idea usare questo con assembler scritto a mano
usa l'esplicito br bmi bcc codici operativi di stile per il codice 8086 o il JMP vicino stile per
istruzioni i386 condizionali e assicurati che tutte le variabili siano definite prima di esse
sono usati.

-l produrre file di elenco, il nome del file può seguire

-m stampa le espansioni macro nell'elenco

-n segue il nome del modulo (va nell'oggetto invece del nome della sorgente)

-o produce file oggetto, segue il nome del file

-b produrre un file binario grezzo, il nome del file può seguire. Questo è un file binario "grezzo" con
nessuna intestazione, se non c'è -s opzione il file inizia nella posizione 0.

-s produrre un file di simboli ASCII, il nome del file segue. Il formato di questa tabella è
progettato per essere facile da analizzare per l'incapsulamento e le attività correlate in relazione
in file binari creati con il -b opzione. Se un file binario non inizia da
posizione zero i primi due elementi nella tabella sono gli indirizzi di inizio e fine di
il file binario.

-u supponiamo che i simboli non definiti siano importati con un segmento non specificato.

-w- consentire all'assemblatore di stampare messaggi di avviso.

-t n sposta tutti i dati del segmento di testo nel segmento n+3.

AS86 FONTE


Personaggi speciali

* Indirizzo dell'inizio della riga corrente.

; ! Uno di questi segna l'inizio di un commento. Inoltre qualsiasi "imprevisto"
si presume che il carattere all'inizio di una riga sia un commento (ma lo è anche
visualizzato sul terminale).

$ Prefisso per i numeri esadecimali, viene accettata anche la sintassi 'C', ad es. 0x1234.

% Prefisso per i numeri binari.

# Prefisso per operandi immediati.

[ ] Specifica un operando indiretto.
A differenza di MASM, l'assemblatore non ha informazioni sul tipo sulle etichette solo un segmento e
compensare. Ciò significa che il modo in cui funzionano questo operatore e il prefisso immediato
come gli assemblatori tradizionali.

Esempi:
mov ascia, bx
jmpbx
Indirizzamento diretto del registro, il salto copia BX nel PC.

mov ascia,[bx]
mp [bx]
Indirizzamento registro indiretto semplice, il salto sposta il contenuto della locazione
specificato da BX nel PC.

ascia mobile, n. 1234
Valore immediato, ascia diventa 1234.

mov ax, 1234
mov ax,_ciao
mov ascia,[_ciao]
Indirizzamento assoluto, ax è impostato sul contenuto della posizione 1234. Nota la terza opzione
non è strettamente coerente ma è in atto principalmente per la compatibilità con l'ASD.

mov ascia,_tabella[bx]
mov ascia,_tabella[bx+si]
mov eax,_tabella[ebx*4]

mov ascia,[bx+_tabella]
mov ascia,[bx+si+_tabella]
mov eax,[ebx*4+_tabella]
Indirizzamento indicizzato, entrambi i formati sono ok, penso che il primo sia più corretto ma io
tendono ad usare il secondo. :-)

Condizionali

SE, ALTRO, ALTRO SE, ENDIF
Condizione numerica

IFC, ELSEIF
Confronto di stringhe (str1,str2)

FAIL .FALLIRE
Genera errore utente.

Relativo al segmento

.TESTO .CAMERA .DATI .bss
Imposta il segmento corrente. Questi possono essere preceduti dalla parola chiave .SETTA

LOC Imposta il segmento numerico 0=TESTO, 3=DATI,ROM,BSS, 14=MAX. L'ordine dei segmenti impostato da
il linker è ora 0,4,5,6,7,8,9,A,B,C,D,E,1,2,3. Segmento 0 e tutti i segmenti sopra 3
si presume che siano segmenti di testo. Nota che le restrizioni sulla dimensione di 64k non sono imposte per
segmenti 3-14.

Definizione del tipo di etichetta

ESPORTARE PUBBLICO .DEFINIRE
Esporta etichetta definita in questo oggetto

ISCRIZIONE Forza il linker a includere l'etichetta specificata in a.out

.GLOBALE .GLOBALE
Definisci l'etichetta come esterna e forza l'importazione anche se non viene utilizzata.

ESTERNO ESTERNO IMPORTARE .ESTERNO
Importa elenco di etichette definite esternamente
NB: Non ha senso utilizzare le importazioni per i file binari grezzi.

.ACCEDERE Segna la voce per il vecchio file binario (obs)

Definizione dei dati

DB .DATI1 .BYTE FCB
Elenco di oggetti a 1 byte.

DW .DATI2 .BREVE FDB .PAROLA
Elenco di oggetti a 2 byte.

DD .DATI4 .LUNGO
Elenco di oggetti a 4 byte.

.ascii FCC
Stringa Ascii copiata nell'output.

.ASCIZ Stringa Ascii copiata nell'output con finale nullo byte.

Definizione dello spazio

.BLKB RMB .SPAZIO
Lo spazio è conteggiato in byte.

.BLKW .ZERO
Lo spazio si conta a parole. (2 byte ciascuno)

COMM .COMM LCOMM .LCOMM
Definizione dei dati dell'area comune

Altre utili pseudo operazioni.

.ALLINEARE .ANCHE
allineamento

EQUIPAGGIARE Definisci etichetta

SET Definisci etichetta ridefinibile

ORG .ORG
Imposta posizione di assemblaggio

BLOCCO Imposta la posizione di assemblaggio e impila quella vecchia

FINE Ritorna alla posizione di assemblaggio impilata

GET INCLUDERE
Inserisci nuovo file (senza virgolette sul nome)

USARE16 [cpu]
Definisci la dimensione dell'operando predefinita come 16 bit, l'argomento è il tipo di CPU che dovrebbe essere il codice
eseguire su (86, 186, 286, 386, 486, 586) istruzioni per cpus più tardi di quanto specificato
mettere in guardia.

USARE32 [cpu]
Definisci la dimensione dell'operando predefinita come 32 bit, l'argomento è il tipo di CPU che dovrebbe essere il codice
eseguire su (86, 186, 286, 386, 486, 586) istruzioni per cpus più tardi di quanto specificato
mettere in guardia. Se la CPU non è menzionata, l'assemblatore assicura che sia >= 80386.

FINE Fine della compilazione per questo file.

.AVVISARE Avvisi di commutazione

.ELENCO Annunci on/off (1,-1)

.MACLIST
Elenchi macro on/off (1,-1)

Macro, ora funzionanti, la forma generale è così.

sax MACRO
mov ascia,#?1
MEND
sassofono(1)

Non implementato/non utilizzato.

IDENT Definire la stringa di identità dell'oggetto.

SETDP Imposta il valore DP su 6809

MAP Imposta il numero di mappa della tabella dei simboli binari.

registri
BPBXDISI
EAX EBP EBX ECX EDI EDX ESI ESP
AXE CX DX SP
AH AL BH BL CH CL DH DL
CS DS ES FS GS SS
CR0 CR2 CR3 DR0 DR1 DR2 DR3 DR6 DR7
TR3 TR4 TR5 TR6 TR7 ST

Identificatori del tipo di operando
BYTE DWORD FWORD FAR PTR PWORD QWORD TBYTE WORD VICINO

Il 'vicino e 'lontano' non consentono la programmazione multi-segmento, tutte le operazioni 'lontano'
sono specificati esplicitamente attraverso l'uso delle istruzioni: jmpi, jmpf, callf,
retf, ecc. L'operatore 'Vicino' può essere utilizzato per forzare l'uso di 80386 16bit
rami condizionali. Gli operatori 'Dword' e 'word' possono controllare la dimensione di
operandi su salti e chiamate lontani.

Istruzioni generali.
Queste sono in generale le stesse istruzioni che si trovano in qualsiasi assembler 8086, le
le principali eccezioni sono alcune istruzioni "Ccn" (BCC, BNE, BGE, ecc.)
abbreviazioni per un ramo corto più un salto in lungo e "BR" che è il più lungo
salto incondizionato (16 o 32 bit).

rami lunghi
BCC BCS BEQ BGE BGT BHI BHIS BLE BLO BLOS BLT BMI BNE BPC BPL BPS BVC BVS BR

Intersegmento
CALLI CALLF JMPI JMPF

Istruzioni per il modificatore di segmento
ESEG FSEG GSEG SSEG

Byte istruzioni operative
ADCB ADDB ANDB CMPB DECB DIVB IDIVB IMULB INB INCB MOVB MULB NEGB NOTB ORB OUTB
RCLB RCRB ROLB RORB SALB SARB SHLB SHRB SBBB SUBB TESTB XCHGB XORB

Istruzioni standard
AAA AAD AAM AAS ADC ADD E ARPL BOUND BSF BSR BSWAP BT BTC BTR BTS CALL CBW CDQ
CLC CLD CLI CLTS CMC CMP CMPS CMPSB CMPSD CMPSW CMPW CMPXCHG CSEG CWD CWDE DAA DAS
DEC DIV DSEG INSERIRE HLT IDIV IMUL IN INC INS INSB INSD INSW INT IN INVD INVLPG INW
IRET IRETD J JA JAE JB JBE JC JCXE JCXZ JE JECXE JECXZ JG JGE JL JLE JMP JNA JNAE
JNB JNBE JNC JNE JNG JNGE JNL JNLE JNO JNP JNS JNZ JO JP JPE JPO JS JZ LAHF LAR LDS
LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW BLOCCO LODB LODS LODSB LODSD LODSW LODW
LOOP LOOPE LOOPNE LOOPNZ LOOPZ LSL LSS LTR MOV MOVS MOVSB ​​MOVSD MOVSW MOVSX MOVW
MOVZX MUL NEG NOP NON O OUT OUT OUTSB OUTSD OUTSW OUTW POP POPA POPAD POPF POPFD
PUSH PUSHA PUSHAD PUSH PUSHFD RCL RCR RDMSR REP REPE REPNE REPNZ REPZ RET RETF
RETI ROL ROR SAHF SAL SAR SBB SCAB SCAS SCASB SCASD SCASW SCAW SEG SETA SETAE SETB
SETBE SETC SETE SETG SETGE SETL SETLE SETNA SETNAE SETNB SETNBE SETNC SETNE SETNG
SETNGE SETNL SETNLE SETNO SETNP SETNS SETNZ SETO SETP SETPE SETPO SETZ SGDT
SHL SHLD SHR SHRD SIDT SLDT SMSW STC STD STI STOB STOS STOSB STOSD STOSW STOW STR
SUB TEST VERR VERR ATTENDERE WBINVD WRMSR XADD XCHG XLAT XLATB XOR

Virgola mobile
F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX FCOM FCOMP FCOMPP FCCOS FDECSTP FDISI
FDIV FDIVP FDIVR FDIVRP FENI FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD FIMUL
FINCSTP FINIT FIST FISTP FISUB FISUBR FLD FLD1 FLDL2E FLDL2T FLDCW FLDENV FLDLG2
FLDLN2 FLDPI FLDZ FMUL FMULP FNCLEX FNDSI FNENI FNINIT FNOP FNSAVE FNSTCW FNSTENV
FNSTSW FPATAN FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FSCALE FSETPM FSIN FSINCOS
FSQRT FST FSTCW FSTENV FSTP FSTSW FSUB FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP FUCOMPP
FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1

utilizzando GASP


Il preprocessore assembler Gnu fornisce alcune implementazioni ragionevoli di user biased
pseudo codici operativi.

Può essere invocato in una forma simile a:

(orrore!) [-un...] File [file2.s] |
as86 [...] - [-o obj] [-b bidone]

Tieni presente però che Gasp genera un errore per .org comandi, se non li stai usando
sintassi alternativa che puoi usare org invece, altrimenti usa bloccare e fine. La direttiva
export è tradotto in .globale, che forza un'importazione, se stai creando un file usando
-b uso la percezione or .definire anziché.

Le opzioni dell'elenco GASP non hanno supporto in as86.

Usa as86 online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad




×
Cookie per pubblicità
❤️Fai acquisti, prenota o acquista qui: nessun costo, aiuta a mantenere i servizi gratuiti.