GoGPT Best VPN GoSearch

온웍스 파비콘

as86 - 클라우드에서 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 공급자에서 as86 실행

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 as86 명령입니다.

프로그램:

이름


as86 - 8086..80386 프로세서용 어셈블러

개요


as86 [-0123agjuw] [-lm[명부]] [-n name] [-o obj] [-b[큰 상자]] [-s SYM] [-t 텍스트 세그먼트] SRC

as86_encap 프로그램 prog.v [접두사_] [as86_옵션]

기술


as86 8086..80386 프로세서용 어셈블러이며 구문은
유닉스 시스템의 보다 일반적인 일반 형식이 아닌 인텔/마이크로소프트 형식
어셈블러.

The SRC 파일은 표준 입력을 어셈블하기 위해 '-'일 수 있습니다.

이 어셈블러는 6809 CPU를 지원하도록 컴파일할 수 있으며 작동할 수도 있습니다.

as86_encap as86을 호출하여 생성된 바이너리를 C파일로 변환하는 쉘 스크립트
prog.v 부트 블록 설치 프로그램과 같은 프로그램에 포함되거나 연결됩니다. 그만큼 접두사_
인수는 소스에서 정의한 모든 변수에 추가할 접두사이며 기본값은 다음과 같습니다.
소스 파일의 이름. 정의된 변수는 다음과 같습니다. 접두사_시작 접두사_크기 그리고
접두사_데이터 코드와 모든 값을 포함하는 정수를 정의하고 포함합니다.
내보낸 라벨. 둘 중 하나 또는 둘 다 프로그램 그리고 prog.v 인수는 표준의 경우 '-'일 수 있습니다.
인/아웃.

옵션


-0 16비트 코드 세그먼트로 시작, 모든 명령어 > 8086에 대해 경고

-1 16비트 코드 세그먼트로 시작, 모든 명령어 > 80186에 대해 경고

-2 16비트 코드 세그먼트로 시작, 모든 명령어 > 80286에 대해 경고

-3 32비트 코드 세그먼트로 시작하고 명령에 대해 경고하지 마십시오. (심지어 486 또는
586)

-a Minix asld와의 부분적 호환성을 활성화합니다. 이것은 다음의 해석을 바꿉니다.
둥근 괄호와 대괄호 및 코드 변경
16비트 점프 및 호출을 위한 생성 및 구문. ("jmp @(bx)"는 유효한
지침)

-g 개체 또는 기호 파일에 전역 기호만 넣습니다.

-j 모든 짧은 점프를 유사한 16비트 또는 32비트 점프로 대체합니다. 16비트 조건부
분기는 짧은 조건 분기와 긴 무조건 분기로 인코딩됩니다.

-O 이로 인해 어셈블러는 전방 참조를 사용하기 위해 추가 패스를 추가해야 합니다.
일부 명령어에 필요한 바이트를 줄입니다. 레이블이 마지막 패스에서 이동하는 경우
어셈블러는 레이블이 모두 안정화될 때까지 패스를 계속 추가합니다(최대
~ 30 패스) 손으로 작성한 어셈블러와 함께 사용하는 것은 좋은 생각이 아닐 수 있습니다.
명시적 사용 br 비엠 아이 숨은 참조 8086 코드 또는 JMP ... 스타일
조건부 i386 명령어를 사용하고 모든 변수가 정의되기 전에
사용됩니다.

-l 목록 파일 생성, 파일 이름이 따를 수 있음

-m 목록에 매크로 확장 인쇄

-n 모듈 이름이 뒤따름(소스 이름 대신 개체에 들어감)

-o 객체 파일 생성, 파일 이름은 다음과 같습니다.

-b 원시 이진 파일을 생성하면 파일 이름이 따를 수 있습니다. 이것은 '원시' 바이너리 파일입니다.
헤더 없음, 없는 경우 -s 옵션 파일은 위치 0에서 시작합니다.

-s ASCII 기호 파일을 생성하면 파일 이름이 이어집니다. 이 테이블의 형식은
캡슐화 및 관련 활동에 대해 쉽게 구문 분석할 수 있도록 설계되었습니다.
로 생성된 바이너리 파일에 -b 옵션. 바이너리 파일이 다음에서 시작하지 않는 경우
위치 XNUMX 테이블의 처음 두 항목은 시작 주소와 끝 주소입니다.
바이너리 파일.

-u 정의되지 않은 기호가 지정되지 않은 세그먼트와 함께 가져온 것으로 가정합니다.

-w- 어셈블러가 경고 메시지를 인쇄하도록 허용합니다.

-t n 세그먼트 n+3의 모든 텍스트 세그먼트 데이터를 이동합니다.

AS86 SOURCE


특수 문자

* 현재 줄의 시작 주소입니다.

; ! 이 중 하나는 주석의 시작을 표시합니다. 또한 '예기치 않은'
줄 시작 부분의 문자는 주석으로 간주됩니다(하지만
터미널에 표시됨).

$ 0진수에 대한 접두어인 'C' 구문(예: 1234xXNUMX)도 허용됩니다.

% 이진수의 접두사입니다.

# 즉시 피연산자의 접두사입니다.

[ ] 간접 피연산자를 지정합니다.
MASM과 달리 어셈블러에는 레이블에 대한 유형 정보가 없고 세그먼트만 있습니다.
오프셋. 이는 이 연산자와 직접 접두사가 작동하는 방식이
전통적인 어셈블러처럼.

예 :
이동 도끼, bx
jmp bx
직접 레지스터 주소 지정, 점프는 BX를 PC로 복사합니다.

이동 도끼,[bx]
점프 [bx]
간단한 간접 레지스터 주소 지정, 점프는 위치의 내용을 이동합니다.
BX에 의해 지정된 PC로.

이동 도끼,#1234
즉치값, ax는 1234가 됩니다.

이동 도끼,1234
mov ax_hello
이동 도끼,[_hello]
절대 주소 지정, ax는 위치 1234의 내용으로 설정됩니다. 세 번째 옵션에 유의하십시오.
엄격하게 일관성이 있는 것은 아니지만 주로 asld 호환성을 위해 마련되었습니다.

이동 도끼,_테이블[bx]
mov ax,_table[bx+si]
mov eax,_table[ebx*4]

이동 도끼,[bx+_table]
이동 도끼,[bx+si+_table]
mov eax,[ebx*4+_table]
인덱스 주소 지정, 두 형식 모두 괜찮습니다. 첫 번째가 더 정확하다고 생각하지만
두 번째를 사용하는 경향이 있습니다. :-)

조건부

만약, 또 다른, 엘세이프, 엔디 프
숫자 조건

IFC, ELSEIFC
문자열 비교(str1,str2)

실패 .실패하다
사용자 오류를 생성합니다.

세그먼트 관련

.텍스트 .ROM .데이터 .BSS
현재 세그먼트를 설정합니다. 키워드 앞에 올 수 있습니다. .분파

LOC 숫자 세그먼트를 0=TEXT, 3=DATA,ROM,BSS, 14=MAX로 설정합니다. 에서 설정한 세그먼트 순서
링커는 이제 0,4,5,6,7,8,9,A,B,C,D,E,1,2,3입니다. 세그먼트 0 및 3 위의 모든 세그먼트
텍스트 세그먼트로 간주됩니다. 64k 크기 제한은
세그먼트 3-14.

라벨 유형 정의

수출 공공의 .정의하다
이 개체에 정의된 레이블 내보내기

ENTRY 링커가 a.out에 지정된 레이블을 포함하도록 합니다.

.GLOBL .글로벌
레이블을 외부로 정의하고 사용하지 않더라도 강제로 가져옵니다.

외부 통근자 수입 .통근자
외부 정의 라벨 목록 가져오기
NB: 원시 바이너리 파일에 가져오기를 사용하는 것은 이치에 맞지 않습니다.

.입력하다 이전 바이너리 파일(obs)에 대한 항목 표시

데이터 정의

DB .DATA1 .바이트 FCB
1바이트 객체 목록입니다.

DW .DATA2 .짧은 FDB .단어
2바이트 객체 목록입니다.

DD .DATA4 .긴
4바이트 객체 목록입니다.

.ASCII FCC
Ascii 문자열이 출력에 복사되었습니다.

.ASCIZ 후행과 함께 출력에 복사된 Ascii 문자열 널 (null) 바이트.

공간 정의

.BLKB RMB .공간
공간은 바이트 단위로 계산됩니다.

.BLKW .ZEROW
공백은 단어로 계산됩니다. (각각 2바이트)

통신 .COMM LCOMM .LCOMM
공통 영역 데이터 정의

기타 유용한 유사 연산.

.맞추다 .심지어
조정

EQU 레이블 정의

SET를 재정의 가능한 레이블 정의

ORG .ORG
조립 위치 설정

블록 조립 위치 설정 및 기존 스택 쌓기

엔디비 쌓인 조립 위치로 돌아가기

바로 포함
새 파일 삽입(이름에 따옴표 없음)

사용16 [CPU]
기본 피연산자 크기를 16비트로 정의하고 인수는 코드가 예상되는 cpu 유형입니다.
지정된 것보다 늦게 cpus에 대한 (86, 186, 286, 386, 486, 586) 명령어 실행
경고를 주다.

사용32 [CPU]
기본 피연산자 크기를 32비트로 정의하고 인수는 코드가 예상되는 cpu 유형입니다.
지정된 것보다 늦게 cpus에 대한 (86, 186, 286, 386, 486, 586) 명령어 실행
경고를 주다. cpu가 언급되지 않은 경우 어셈블러는 >= 80386인지 확인합니다.

END 이 파일에 대한 컴파일 끝입니다.

.경고하다 스위치 경고

.목록 목록 켜기/끄기(1,-1)

.MACLIST
매크로 목록 켜기/끄기(1,-1)

현재 작동하는 매크로의 일반적인 형식은 다음과 같습니다.

매크로 색소폰
이동 도끼,#?1
수선
색소폰(1)

구현되지 않음/사용되지 않음.

IDENT 개체 ID 문자열을 정의합니다.

SETDP 6809에 DP 값 설정

MAP 이진 기호 테이블 맵 번호를 설정합니다.

등록
BP BX DI SI
EAX EBP EBX ECX EDI EDX ESI ESP
AX CX DX SP
아 알 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

피연산자 유형 지정자
BYTE DWORD FWORD FAR PTR PWORD QWORD TBYTE 워드 NEAR

'near'와 'far'는 다중 세그먼트 프로그래밍을 허용하지 않으며, 모든 'far' 작업은
명령어 사용을 통해 명시적으로 지정됨: jmpi, jmpf, callf,
retf 등. 'Near' 연산자를 사용하여 80386 16비트를 강제로 사용할 수 있습니다.
조건부 분기. 'Dword' 및 'word' 연산자는 크기를 제어할 수 있습니다.
멀리 점프 및 호출에 대한 피연산자.

일반 지침.
이들은 일반적으로 8086 어셈블러에서 발견되는 명령어와 동일합니다.
주요 예외는 몇 가지 'Bcc'(BCC, BNE, BGE 등) 명령입니다.
짧은 분기와 멀리뛰기의 속기 및 가장 긴 'BR'
무조건 점프(16 또는 32비트).

긴 가지
BCC BCS BEQ BGE BGT BHI BHIS BLE BLO BLOS BLT BMI BNE BPC BPL BPS BVC BVS BR

세그먼트 간
칼리 콜프 JMPI JMPF

세그먼트 수정자 지침
ESEG FSEG GSEG SSEG

바이트 연산 명령어
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 테스트B XCHGB XORB

표준 지침
AAA AAD AAM AAS ADC 추가 및 ARPL 바운드 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 ENTER HLT IDIV IMUL IN INC INS INSB INSD 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
허가 LES LFS LGDT LGS 뚜껑 LLDT LMSW 잠금 LODB LODS LODSB LODSD LODSW LODW
루프 루프 LOOPNE LOOPNZ LOOPZ LSL LSS LTR MOV MOVS MOVSB ​​MOVSD MOVSW MOVSX MOVW
MOVZX MUL NEG NOP NOT 또는 OUTS OUTSB OUTSD OUTSW OUTW POP POPA POPAD POPF POPFD
푸쉬 푸샤 푸샤드 푸쉬프 푸쉬FD 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
하위 테스트 VERR VERW 대기 WBINVD WRMSR XADD XCHG XLAT XLATB XOR

부동 소수점
F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX FCOM FCOMP FCOMPP FCOMPP FCOS FDECSTP FDISI
FDIV FDIVP FDIVR FDIVRP FENI FFREE FIADD FICOM FICOMP FIDIV FIDIVR 필드 FIMUL
FINCSTP 유한 주먹 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

사용 GASP


Gnu 어셈블러 전처리기는 사용자 편향의 합리적인 구현을 제공합니다.
의사 opcode.

다음과 유사한 형식으로 호출할 수 있습니다.

헐떡 거림 [-ㅏ...] 파일.s [파일2.s] |
as86 [...] - [-o obj] [-b 큰 상자]

Gasp는 다음에 대한 오류를 생성하지만 .ORG 명령을 사용하지 않는 경우
사용할 수 있는 대체 구문 조직 대신, 그렇지 않으면 사용 블록 그리고 종료. 지시문
수출 로 번역된다 .글로벌를 사용하여 파일을 만드는 경우 강제로 가져오기를 수행합니다.
-b 사용 공개 or .정의하다 대신.

GASP 목록 옵션은 as86에서 지원되지 않습니다.

onworks.net 서비스를 사용하여 온라인에서 as86 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad




×
광고
❤️여기에서 쇼핑, 예약, 구매하세요. 비용이 들지 않아 서비스를 무료로 유지하는 데 도움이 됩니다.