İngilizceFransızcaİspanyolca

OnWorks favicon'u

as86 - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında as86 olarak çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen as86 komutudur.

Program:

ADI


as86 - 8086..80386 işlemciler için birleştirici

SİNOPSİS


as86 [-0123yagjuw] [-lm[liste]] [-n isim] [-o obj] [-b[çöp kutusu]] [-s sym] [-t metin bölümü] src

as86_encap programlar program.v [önek_] [as86_options]

TANIM


as86 8086..80386 işlemciler için bir montajcıdır, sözdizimi şuna daha yakındır.
unix sisteminin daha normal genel biçimi yerine intel/microsoft formu
montajcı.

The src dosya standart girdiyi birleştirmek için '-' olabilir.

Bu derleyici, 6809 işlemciyi desteklemek için derlenebilir ve hatta çalışabilir.

as86_encap as86'yı çağırmak ve oluşturulan ikili dosyayı bir C dosyasına dönüştürmek için bir kabuk betiğidir.
program.v Önyükleme bloğu yükleyicileri gibi programlara dahil edilecek veya bunlarla bağlantılı olacak. bu önek_
argüman, kaynak tarafından tanımlanan tüm değişkenlere eklenecek bir önektir, varsayılan olarak
kaynak dosyanın adı. Tanımlanan değişkenler şunları içerir: önek_başlangıç önek_boyutu ve
önek_veri kodu, artı tüm değerleri içeren tam sayıları tanımlamak ve içermek için
dışa aktarılan etiketler Ya ya da her ikisi programlar ve program.v argümanlar standart için '-' olabilir
içeri/dışarı.

SEÇENEKLER


-0 16 bit kod bölümü ile başlayın, tüm talimatlar için uyar> 8086

-1 16 bit kod bölümü ile başlayın, tüm talimatlar için uyar> 80186

-2 16 bit kod bölümü ile başlayın, tüm talimatlar için uyar> 80286

-3 32 bit kod segmenti ile başlayın, herhangi bir talimat için uyarmayın. (486 bile değil veya
586)

-a Minix asld ile kısmi uyumluluğu etkinleştirin. Bu, yorumunu değiştirir
yuvarlak parantezler ve köşeli parantezlerin yanı sıra kodda değişiklik yapma
16 bit atlamalar ve çağrılar için oluşturma ve sözdizimi. ("jmp @(bx)" daha sonra geçerli bir
talimat)

-g sadece global sembolleri nesneye veya sembol dosyasına koyun

-j tüm kısa atlamaları benzer 16 veya 32 bit atlamalarla değiştirin, 16 bit koşullu
dallar kısa koşullu ve uzun koşulsuz dal olarak kodlanmıştır.

-O bu, montajcının ileriye dönük referansları kullanmaya çalışmak için fazladan geçişler eklemesine neden olur.
bazı talimatlar için gereken baytları azaltın. Etiketler son geçişte hareket ederse
montajcı, etiketlerin tümü sabitlenene kadar (maksimum
30 geçiş) Bunu elle yazılmış birleştirici ile kullanmak muhtemelen iyi bir fikir değildir.
açık olanı kullan br bmi bcc 8086 kodu için stil işlem kodları veya jmp yakın için stil
koşullu i386 talimatları ve tüm değişkenlerin önceden tanımlandığından emin olun.
kullanılmış.

-l liste dosyası üret, dosya adı takip edebilir

-m listede makro genişletmelerini yazdır

-n modülün adı takip eder (kaynak adı yerine nesneye girer)

-o nesne dosyası üret, dosya adı takip ediyor

-b ham bir ikili dosya üretin, dosya adı takip edebilir. Bu, 'ham' bir ikili dosyadır.
yoksa başlık yok -s seçenek dosya 0 konumunda başlar.

-s bir ASCII sembol dosyası üretin, dosya adı takip eder. Bu tablonun formatı
kapsülleme ve ilgili faaliyetler için ayrıştırılması kolay olacak şekilde tasarlanmıştır
ile oluşturulan ikili dosyalara -b seçenek. İkili bir dosya başlamazsa
sıfır konumu tablodaki ilk iki öğe, başlangıç ​​ve bitiş adresleridir.
ikili dosya.

-u tanımsız sembollerin belirtilmemiş segmentle içe aktarıldığını varsayalım.

-W- montajcının uyarı mesajları yazdırmasına izin verin.

-t n tüm metin segmenti verilerini segment n+3'e taşıyın.

AS86 KAYNAK


Özel karakterler

* Geçerli satırın başlangıç ​​adresi.

; ! Bunlardan herhangi biri bir yorumun başlangıcını işaretler. Ayrıca herhangi bir 'beklenmeyen'
satırın başındaki karakterin yorum olduğu varsayılır (ama aynı zamanda
terminalde görüntülenir).

$ Onaltılı sayılar için önek, 'C' sözdizimi, örneğin 0x1234 de kabul edilir.

% İkili sayılar için önek.

# Anında işlenenler için önek.

[ ] Dolaylı bir işleneni belirtir.
MASM'den farklı olarak, birleştiricinin etiketlerde tip bilgisi yoktur, sadece bir segment ve
telafi etmek. Bu, bu operatörün ve ön ekin çalışma şeklinin
geleneksel montajcılar gibi.

Örnekler:
hareket baltası,bx
jmp bx
Doğrudan kayıt adresleme, atlama BX'i PC'ye kopyalar.

hareket baltası,[bx]
jmp [bx]
Basit dolaylı kayıt adresleme, atlama konumun içeriğini taşır
BX tarafından PC'ye belirtilir.

hareket baltası,#1234
Anlık değer, ax 1234 olur.

hareket baltası,1234
mov balta,_merhaba
hareket baltası,[_merhaba]
Mutlak adresleme, ax 1234 konumunun içeriğine ayarlanmıştır. Üçüncü seçeneğe dikkat edin
kesinlikle tutarlı değildir, ancak esas olarak asld uyumluluğu için geçerlidir.

mov balta,_table[bx]
mov balta,_table[bx+si]
hareket eax,_table[ebx*4]

mov balta,[bx+_table]
mov balta,[bx+si+_table]
hareket eax,[ebx*4+_table]
İndeksli adresleme, her iki formatta da tamam, sanırım ilki daha doğru ama ben
ikinciyi kullanma eğilimindedir. :-)

Şartlılar

EĞER, BAŞKA, BAŞKA, ENDIF
sayısal koşul

IFC, BAŞKA
Dize karşılaştırması (str1,str2)

FAIL .BAŞARISIZ
Kullanıcı hatası oluştur.

Segmentle ilgili

.METİN .ROM .VERİ .BSS
Geçerli segmenti ayarlayın. Bunlar anahtar kelimeden önce gelebilir .MEZHEP

LOC Sayısal segment 0=METİN, 3=VERİ,ROM,BSS, 14=MAKS. tarafından belirlenen segment sırası
bağlayıcı şimdi 0,4,5,6,7,8,9,A,B,C,D,E,1,2,3. Segment 0 ve 3'ün üzerindeki tüm segmentler
metin bölümü olduğu varsayılır. 64k boyut kısıtlamalarının uygulanmadığını unutmayın:
bölümler 3-14.

Etiket türü tanımı

İHRACAT HALKA AÇIK .TANIMLAMAK
Bu nesnede tanımlanan dışa aktarma etiketi

GİRİŞ Bağlayıcıyı belirtilen etiketi a.out dosyasına dahil etmeye zorla

.GLOBL .KÜRESEL
Etiketi harici olarak tanımlayın ve kullanılmasa bile içe aktarmayı zorlayın.

HARİCİ DIŞ İTHALAT .HARİCİ
Harici olarak tanımlanmış etiketlerin listesini içe aktar
Not: Ham ikili dosyalar için içe aktarmayı kullanmak mantıklı değildir.

.GİRMEK Eski ikili dosya (obs) için girişi işaretleyin

Veri tanımı

DB .VERİ1 .BAYT FCB
1 baytlık nesnelerin listesi.

DW .VERİ2 .KISA FDB .KELİME
2 baytlık nesnelerin listesi.

DD .VERİ4 .UZUN
4 baytlık nesnelerin listesi.

.ASCII FCC
Ascii dizesi çıktıya kopyalandı.

.ASCIZ Ascii dizesi, sonundaki çıktıya kopyalandı boş bayt.

Uzay tanımı

.BLKB RMB .UZAY
Boşluk bayt olarak sayılır.

.BLKW .SIFIR
Boşluk kelimelerle sayılır. (her biri 2 bayt)

HAB .COMM LCOMM .LCOMM
Ortak alan veri tanımı

Diğer faydalı sözde işlemler.

.HİZALA .BİLE
hiza

EQU Etiketi tanımla

SET Yeniden tanımlanabilir etiketi tanımlayın

ORG ORG
Montaj yerini ayarla

BLOK Montaj yerini belirleyin ve eskisini istifleyin

ENDB Yığılmış montaj konumuna geri dön

GET DAHİL
Yeni dosya ekle (ad üzerinde tırnak işareti yok)

KULLANIM16 [cpu]
Varsayılan işlenen boyutunu 16 bit olarak tanımlayın, argüman cpu türüdür, kodun olması beklenir
cpus için belirtilenden daha sonra çalıştır (86, 186, 286, 386, 486, 586) yönergeleri
bir uyarı verin.

KULLANIM32 [cpu]
Varsayılan işlenen boyutunu 32 bit olarak tanımlayın, argüman cpu türüdür, kodun olması beklenir
cpus için belirtilenden daha sonra çalıştır (86, 186, 286, 386, 486, 586) yönergeleri
bir uyarı verin. İşlemciden bahsedilmiyorsa, montajcı >= 80386 olmasını sağlar.

END Bu dosya için derleme sonu.

.UYARMAK Uyarıları değiştir

.LİSTE Listeleme açık/kapalı (1,-1)

.MACLİSTE
Makro listeleri açık/kapalı (1,-1)

Makrolar şu anda çalışıyor, genel şekli bu şekilde.

MAKRO saksafon
hareket baltası,#?1
DEĞİŞTİR
saksofon(1)

Uygulanmamış/kullanılmamış.

KİMLİK Nesne kimlik dizesini tanımlayın.

SETDP DP değerini 6809'da ayarla

MAP İkili sembol tablosu harita numarasını ayarlayın.

Kayıtlar
BP BX DI SI
EAX EBP EBX ECX EDI EDX ESI ESP
AX 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

İşlenen türü belirteçleri
BYTE DWORD FWORD FAR PTR PWORD QWORD TBYTE WORD YAKIN

'Yakın' ve 'uzak' çok segmentli programlamaya izin vermez, tüm 'uzak' işlemler
yönergeler kullanılarak açıkça belirtilir: jmpi, jmpf, callf,
retf, vb. 'Near' operatörü 80386 16bit kullanımını zorlamak için kullanılabilir
koşullu dallar 'Dword' ve 'word' operatörleri,
uzak atlamalarda ve aramalarda işlenenler.

Genel talimatlar.
Bunlar genel olarak herhangi bir 8086 derleyicisinde bulunan talimatlarla aynıdır.
ana istisnalar birkaç 'Bcc' (BCC, BNE, BGE, vb.) talimatıdır.
kısa bir dal artı uzun bir atlama ve en uzun olan 'BR' için kısayollar
koşulsuz atlama (16 veya 32 bit).

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

Bölümler arası
ÇALI CALLF JMPI JMPF

Segment değiştirici talimatları
ESEG FSEG GSEG GSEG

Bayt işlem talimatları
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

Standart talimatlar
AAA AAD AAM AAS ADC ADD VE ARPL BAĞLI BSF BSR BSWAP BT BTC BTR BTS ÇAĞRI CBW CDQ
CLC CLD CLI CLTS CMC CMP CMPS CMPSB CMPSD CMPSW CMPW CMPXCHG CSEG CWD CWDE DAA DAS
DEC DIV DSEG ENTER HLT IDIV IMUL IN INC INS INS INS INSW INSW INT INTO 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
LEAVE LES LFS LGDT LGS LIDT LLDT LMSW KİLİT 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 DEĞİL OR ÇIKIŞLAR ÇIKIŞLAR ÇIKIŞLAR ÇIKIŞLAR ÇIKIŞLAR ÇIKIŞLAR ÇIKIŞLAR POP POPA POPAD POPF POPFD
PUSH PUSHAD PUSHAD PUSHF PUSHFD RCL RCR RDMSR REP REPE REPNE REPNZ REPZ RET RETF
RETİ ROL ROR SAHF SAL SAR SBB SCAB SCAS SCASB SCASD SCASW SCAW SEG SETA SETAE SETB
AYARLA AYARLA AYARLA AYARLA AYARLA
SETNGE SETNL SETNLE SETNO SETNP AYARLAR SETNZ SETO SETP SETPE SETPO SETLER SETZ SGDT
SHL SHLD SHR SHRD SIDT SLDT SMSW STC STD STI STOB STOS STOSB STOSD STOSW STOW STR
ALT TEST VER VERW BEKLE WBINVD WRMSR XADD XCHG XLAT XLATB XOR

Kayan nokta
F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX FCOM FCOMP FCOMPP FCOS FDECSTP FDISI
FDIV FDIVP FDIVR FDIVRP FENI SERBEST 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 FNDISI 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

kullanma GASP


Gnu birleştirici önişlemcisi, kullanıcı yanlılığının bazı makul uygulamalarını sağlar.
sözde işlem kodları.

Şuna benzer bir biçimde çağrılabilir:

nefesi kesilmek [-A...] Dosyalar [dosya2.s] |
as86 [Kendi ID’n ile mağazalarını oluştur] - [-o obj] [-b çöp kutusu]

Gasp'in aşağıdakiler için bir hata oluşturduğunun farkında olun. Org. komutları, kullanmıyorsanız
kullanabileceğiniz alternatif sözdizimi org bunun yerine, aksi takdirde kullanın blok ve son. direktif
ihracat tercüme edilir Küreselkullanarak bir dosya oluşturuyorsanız, içe aktarmayı zorlayan
-b kullanım halka açık or .tanımlamak yerine.

GASP liste seçeneklerinin as86'da desteği yoktur.

onworks.net hizmetlerini kullanarak çevrimiçi olarak as86 kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad