영어프랑스어스페인어

Ad


온웍스 파비콘

as31 - 클라우드에서 온라인

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

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

프로그램:

이름


as31 - 인텔 8031/8051 어셈블러

개요


as31 [-h] [-l] [-s] [-v] [-인수] [-Ffmt] [-Ofile] infile.asm

기술


As31 조립하다 infile.asm 여러 출력 형식 중 하나로 변환합니다. 출력은
infile.obj라는 파일에서. .asm 확장자가 필요합니다.

옵션


옵션은 입력 파일 이름 앞에 나타나야 합니다. 두 옵션 모두 선택 사항입니다. 의 텍스트
각 플래그는 플래그와 동일한 인수에 나타나야 합니다. 예를 들어 "-Fod"는 유효한
인수이지만 "-F od"는 그렇지 않습니다.

-h 이로 인해 어셈블러는 해당 옵션을 설명하는 자세한 메시지를 출력합니다.
메시지는 표준 오류에 기록됩니다.

-l 이 옵션은 어셈블러에게 목록 파일도 생성하도록 지시합니다. 목록은
파일 infile.lst에 배치됩니다. 여기서 'infile'은 조립 중인 파일입니다.
이 옵션은 infile.asm 앞의 아무 곳에나 나타날 수 있습니다. 옵션은 격리되어 발생해야 합니다.
명령 행에서.

목록 파일은 60진수 및 최대 XNUMX자의 어셈블러 생성 코드를 보여줍니다.
소스 파일에서 유지됩니다.

-s 이렇게 하면 어셈블러가 출력을 표준 출력에 씁니다.

-v 이렇게 하면 어셈블러가 표준 출력에 버전 번호를 인쇄합니다.

-아르그 이 옵션은 형식에 전달되는 형식별 문자열을 지정합니다.
발전기. "tdr" 형식과 srecord 형식 모두 이 옵션을 사용합니다.

-형식
이 옵션은 사용할 출력 형식을 지정합니다.

현재 사용할 수 있는 유일한 옵션은 다음과 같습니다.

hex 이 형식은 여러 EPROM에서 예상되는 Intel HEX 형식입니다.
프로그래머와 PAULMON 디버거. 일부 프로그래머와 함께 사용하기 위해
출력 파일의 확장자를 .HEX로 변경해야 인식할 수 있습니다.
프로그래머. 아니오 - 옵션이 사용됩니다. 이 형식은 다음과 같은 경우 기본값이어야 합니다.
-F 옵션이 사용되지 않습니다.

tdr 이 형식은 이러한 방식으로 형식화된 XNUMX진수의 asci 파일을 생성하므로
tdr의 디버거에서 읽을 수 있습니다. 인수를 지정할 수 있습니다(참조
-A 옵션) 형식 특정 문자열을 형식 생성기에 전달합니다.
이 경우 인수 문자열은 추가할 오프셋을 나타냅니다.
위치 카운터. 이 오프셋은 XNUMX진수로 지정되며 기본값은
64*1024(0x10000). 100을 지정하고 오프셋하려면 "-Ftdr
-A100" 어셈블러를 호출할 때.

byte 이 형식은 단순히 ascii에서 각 줄의 주소와 바이트입니다. 아니오 -A
옵션이 사용됩니다.

od 이 형식은 다음의 출력과 유사합니다. od(1). 형식은
주소 다음에 XNUMX진수 바이트가 오고 그 뒤에 등가
ASCII. 아니오 - 옵션이 사용됩니다.

srec2, srec3, srec4
srecord 생성기는 2, 3,
또는 4바이트 주소. -A 옵션을 사용하여 기본 주소를 설정할 수 있습니다.
오프셋, 여기서 기본값은 0x0000입니다. TDR).

참고: 이 어셈블러를 사용하면 출력 형식을 확장하여 많은 것을 포함할 수 있습니다.
다른 출력 형식.

-오파일 이 옵션은 출력을 파일에 쓰도록 어셈블러에 지시합니다.

어셈블러 등록절차


이 어셈블러는 표준 8031/8051 명령어 형식을 허용합니다. 아래는
명령 및 주소 지정 모드.

명령 바이트 주기
----------- ----- ------
ACALL 주소11 2 24
추가 A, #data8 2 12
추가 A, @Ri 1 12
A 추가, Rn 1 12
ADD, 직접 2 12
ADDC A, #data8 2 12
ADDC A, @Ri 1 12
ADDC A, Rn 1 12
ADDC A, 직접 2 12
AJMP 주소11 2 24
ANL A, #data8 2 12
ANL A, @Ri 1 12
ANL A, Rn 1 12
ANL A, 직접 2 12
ANL C, /비트 2 24
ANL C, !비트 2 24
ANL C, 비트 2 24
ANL 다이렉트, #data8 3 24
ANL 다이렉트, A 2 12
CJNE @Ri, #data8, 상대 3 24
CJNE A, #data8, 상대 3 24
CJNE A, 직접, 관계 3 24
CJNE Rn, #data8, 상대 3 24
CLR A 1 12
CLR C 1 12
CLR 비트 2 12
CPL A 1 12
CPL C 1 12
CPL 비트 2 12
DA A 1 12
1월 @Ri 12 XNUMX
1월 12일 XNUMX
1월 DPTR 12 XNUMX
1월 12일 XNUMX일
2월 직행 12 XNUMX
DIV AB 1 48
DJNZ Rn, 관계 2 24
DJNZ 직접, 관계 3 24
INC @리 1 12
INC A 1 12
INC DPTR 1 24
INC Rn 1 12
INC 다이렉트 2 12
JB 비트, 관계 3 24
JBC 비트, 관계 3 24
JC 친척 2 24
JMP @A + DPTR 1 24
JMP @DPTR + A 1 24
JNB 비트, 관계 3 24
JNC 친척 2 24
JNZ 친척 2 24
JZ 친척 2 24
LCALL 주소16 3 24
LJMP 주소16 3 24
운동 @Ri, #data8 2 12
MOV @리, 에이 1 12
MOV @Ri, 직접 2 24
MOV A, #data8 2 12
운동 A, @Ri 1 12
MOV A, Rn 1 12
MOV A, 직접 2 12
MOV C, 비트 2 12
MOV DPTR, #data16 3 24
MOV Rn, #data8 2 12
운동 Rn, A 1 12
MOV Rn, 직접 2 24
MOV 비트, C 2 24
MOV 직접, #data8 3 24
MOV 직접 @Ri 2 24
MOV 직접, A 2 12
MOV 직접, Rn 2 24
MOV 직접, 직접 3 24
MOVC A, @A + DPTR 1 24
MOVC A, @A + PC 1 24
MOVC A, @DPTR + A 1 24
MOVC A, @PC + A 1 24
MOVX @DPTR, 에이 1 12
MOVX @리, A 1 24
MOVX A, @DPTR 1 24
MOVX A, @Ri 1 24
MUL AB 1 48
NOP 1 12
ORL A, #data8 2 12
ORL A, @Ri 1 12
ORL A, Rn 1 12
ORL A, 직접 2 12
ORL C, /비트 2 24
ORL C, !비트 2 24
ORL C, 비트 2 24
ORL 다이렉트, #data8 3 24
ORL 다이렉트, A 2 12
POP 다이렉트 2 24
PUSH 다이렉트 2 24
레트 1 24
레티 1 24
RL A 1 12
RLC A 1 12
RR A 1 12
RRC A 1 12
세트 A 1 12
SETB 비트 2 12
SJMP 친척 2 24
자막 A, #data8 2 12
자막 A, @Ri 1 12
서브 A, Rn 1 12
SUBB A, 직접 2 12
스왑 A 1 12
XCH A, # 데이터8 2 12
XCH A, @Ri 1 12
XCH A, Rn 1 12
XCH A, 직접 2 12
XCHD A, #data8 2 12
XCHD A, @리 1 12
XCHD A, Rn 1 12
XCHD A, 직접 2 12
XRL A, #data8 2 12
XRL A, @Ri 1 12
XRL A, Rn 1 12
XRL A, 직접 2 12
XRL 다이렉트, #data8 3 12
XRL 다이렉트, A 2 12

어셈블러 지시문


As31에는 다음과 같은 어셈블러 지시문이 포함됩니다.

.ORG 만료
표현식 expr로 지정된 주소에서 조립을 시작합니다. 오류가 발생합니다
어셈블러가 이전에 생성된 주소 공간에서 어셈블을 시작하면
로 조립.

.EQU 기호, expr
기호를 expr 값으로 설정합니다. expr에 대한 값은 첫 번째 중에 알려야 합니다.
통과, .EQU가 포함된 라인을 만나면.

.BYTE expr, expr, ...
식으로 지정된 바이트를 메모리에 어셈블합니다. 문자열이 될 수도 있습니다.
이 지시문으로 지정됩니다.

.WORD expr, expr, ...
표현식으로 지정된 단어를 메모리에 어셈블합니다. 바이트 순서
used는 8031에서 사용하는 것입니다.

.FLAG 기호1, 기호.[0-7]
symbol1을 symbol.[0-7] 표현식으로 지정된 비트 주소로 설정합니다. 어디
[0-7]은 0과 7 사이의 문자를 나타냅니다. 결과 비트 주소는
유효한 비트 주소인지 확인하십시오.

.END 이 지시문은 무시됩니다.

.SKIP 만료
expr 값을 위치 카운터에 추가합니다. 의 블록을 예약하는 데 사용
초기화되지 않은 데이터 Expr은 바이트 단위여야 합니다.

어휘 대회


- 세미콜론 다음의 모든 문자는 새 줄을 만날 때까지 무시됩니다.

- 숫자가 다음 중 하나로 시작하지 않는 한 모든 숫자는 기본적으로 XNUMX진수입니다.

0x 또는 0X
이것은 0진수를 나타냅니다. 즉. 00xXNUMXff

0b 또는 0B
이것은 이진수를 나타냅니다. (1과 0). 즉. 0b1100110010

0 0377진수를 나타냅니다. 즉. XNUMX

- 숫자가 다음 중 하나로 끝나지 않는 한 모든 숫자는 기본적으로 XNUMX진수입니다.
문자 :

b 또는 B 이진수를 나타냅니다. 위에서 0x를 사용하지 않는 한. 즉. 1010101b

h 또는 H 이것은 항상 XNUMX진수를 나타내지만 첫 번째 문자가
숫자가 아닌 경우 0x 또는 0을 지정해야 합니다. 이것은 혼란을 피합니다
어셈블러는 0진수를 기호로 생각합니다. 예: XNUMXffh,
0xffh, 0XffH, 20h, 0x20 및 020h는 유효한 XNUMX진수를 지정하는 수단입니다. 하지만
다음은 ffh, 0ff가 아닙니다.

d 또는 D 숫자를 0진수로 만듭니다. 129X가 사용되지 않는 한. 즉. XNUMXd

o 또는 O 이렇게 하면 숫자가 377진수로 해석됩니다. 즉. XNUMXo

- 문자 상수는 'c'로 입력할 수 있습니다. 여기서 c는 문자입니다. \b, \n, \r,
\t, \' \0도 유효합니다. 문자 상수는 정수가 사용되는 모든 곳에서 사용할 수 있습니다.
값 수 있습니다.

- 문자열은 큰따옴표 ""로 묶인 문자 집합으로 입력됩니다. 문자열
.BYTE 지시문에서만 유효합니다. \b, \n, \r, \t, \"도 유효한 이스케이프입니다.
그러나 \0은 그렇지 않습니다.

- 지침, 지시문 및 기호: R0, R1, R2, R3, R4, R5, R6, R7, A, AB,
C는 어셈블러 혼동 없이 대문자 또는 소문자로 입력할 수 있습니다. 이것들
그러나 단어는 사용자 기호로 정의할 수 없습니다. 모든 사용자 기호를 사용할 수 있으며
케이스는 보존됩니다. 따라서 사용자 기호 "foo"와 "Foo"는 다르지만
"addc"는 "aDdC"와 동일합니다.

- 기호는 밑줄('_')을 더한 영숫자 문자일 수 있습니다.

- 값이나 기호가 필요한 대부분의 위치에서 표현식이 허용됩니다. 안
식은 다음 연산자로 구성됩니다. 모든 연산자는 정수로 평가됩니다.
개체(우선 순위가 높은 연산자가 먼저 나열됨):

- 단항 빼기

& 비트별 AND.

| 비트별 OR.

* 정수 곱셈.

/ 정수 나눗셈

% 정수 계수

+ 정수 덧셈.

- 정수 빼기.

- 이러한 연산자 외에도 특수 기호 '*'를 사용하여
현재 위치 카운터.

사용 예


아래는 샘플 조립 프로그램입니다.

.org 0
시작: mov P3, #0xff ; P3에서 대체 fns 사용
; P1의 LED가 반전됩니다.
설정 F0 ; 위로 오르다
이동 A, #0x01 ; 초기 비트

쓰기: cpl A ; 써
이동 P1, A
CPL A
호출 지연
jb F0, 상승 ; 어떤 방법으로 등반?

Climbdn: rr A ; 아래로 - 오른쪽으로 이동
jnb ACC.0, 쓰기 ; 더 많은 것을 위해 뒤로
설정 F0
ajmp 쓰기

상승: rl A ; 위로 - 왼쪽으로 이동
jnb ACC.7, 쓰기 ; 더 많은 것을 위해 뒤로
CLR F0
ajmp 쓰기
.끝 ; 이 지시문은 무시되었습니다.

작가


Ken Stauffer(캘거리 대학교)[이메일 보호]>
마틴 랑거[이메일 보호]>

AS31(1)

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


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad