H8/300
H8/500 H8/300
H8/300 H8/500
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
as
를 어떻게 부르는지 여기에 간단한 요약이 있다. 더 자세한
것을 알려면 see section 명령행 옵션.
as [ -a[dhlns][=file] ] [ -D ] [ --defsym sym=val ] [ -f ] [ --help ] [ -I dir ] [ -J ] [ -K ] [ -L ] [ -o objfile ] [ -R ] [ --statistics ] [ -v ] [ -version ] [ --version ] [ -W ] [ -w ] [ -x ] [ -Z ] [ -Av6 | -Av7 | -Av8 | -Asparclite | -Av9 | -Av9a ] [ -xarch=v8plus | -xarch=v8plusa ] [ -bump ] [ -ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC ] [ -b ] [ -no-relax ] [ -l ] [ -m68000 | -m68010 | -m68020 | ... ] [ -nocpp ] [ -EL ] [ -EB ] [ -G num ] [ -mcpu=CPU ] [ -mips1 ] [ -mips2 ] [ -mips3 ] [ -m4650 ] [ -no-m4650 ] [ --trap ] [ --break ] [ --emulation=name ] [ -- | files … ] |
-a[dhlns]
리스트 파일을 다양한 형식으로 출력한다.
-ad
디버깅 의사작동자의 사용을 제한하며,
-ah
하이레벨 소스를 포함한다.
-al
리스트를 출력한다.
-an
리스트에 대한 형식화 처리를 하지 않는다.
-as
심볼을 추가한다.
=file
리스트의 파일이름을 결정한다.
이러한 옵션은 조합될 수 있는데 ‘-aln’과 같이 사용하면 형식화 처리를 하지 않은 어셈블리 리스트를 출력한다. ‘=file’ 옵션은 (사용된다면) 맨 마지막에 놓여야 한다. ‘-a’는 기본으로 ‘-ahls’와 같다. 이것은 리스트와 관련된 모든 것들을 켜두는 것이다.
-D
이 옵션은 다른 어셈블러들을 호출하는 데 사용되는 스크립트 호환성을
위해서 허용된다. as
에는 아무런 영향도 미치지 않는다.
-defsym sym=value
입력 파일을 어셈블하기 전에 sym 심볼을 vlaue로 정의한다. value는 정수 상수여야 한다. C에서는, ‘0x’가 앞에 오면 16진수를 나타내고, ‘0’이 앞에 오면 8진수를 나타낸다.
-f
“fast”—전처리를 생략한다.(소스가 컴파일러가 출력한 것이라고 가정한다).
--help
명령행 옵션의 요약을 출력하고 종료한다.
-I dir
.include
지시어를 위해 검색할 path에 dir 디렉토리를 추가한다.
-J
signed overflow에 대해 경고하지 않는다.
-K
장거리 위치이동에서 다른 테이블이 변경된다면 경고를 발생한다.
-L
심볼테이블에 ‘L’로 시작하는 지역 심볼을 추가한다.
-o objfile
as가 출력할 목적 파일이름을 objfile로 한다.
-R
data 섹션을 text 섹션으로 위치 시킨다.
--statistics
Print the maximum space (in bytes) and total time (in seconds) used by assembly.
-v
-version
as
버젼을 알려준다.
--version
as
버젼을 알려주고 종료한다.
-W
경고 메세지를 나타내지 않는다.
-w
Ignored.
-x
Ignored.
-Z
Generate an object file even after errors.
-- | files …
표준입력이나 어셈블할 소스파일
The following options are available when as is configured for the Intel 80960 processor.
-ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC
Specify which variant of the 960 architecture is the target.
-b
Add code to collect statistics about branches taken.
-no-relax
Do not alter compare-and-branch instructions for long displacements; error if necessary.
The following options are available when as is configured for the Motorola 68000 series.
-l
Shorten references to undefined symbols, to one word instead of two.
-m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040
| -m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -mcpu32
Specify what processor in the 68000 family is the target. The default is normally the 68020, but this can be changed at configuration time.
-m68881 | -m68882 | -mno-68881 | -mno-68882
The target machine does (or does not) have a floating-point coprocessor. The default is to assume a coprocessor for 68020, 68030, and cpu32. Although the basic 68000 is not compatible with the 68881, a combination of the two can be specified, since it’s possible to do emulation of the coprocessor instructions with the main processor.
-m68851 | -mno-68851
The target machine does (or does not) have a memory-management unit coprocessor. The default is to assume an MMU for 68020 and up.
The following options are available when as
is configured
for the SPARC architecture:
-Av6 | -Av7 | -Av8 | -Asparclite | -Av9 | -Av9a
Explicitly select a variant of the SPARC architecture.
-xarch=v8plus | -xarch=v8plusa
For compatibility with the Solaris v9 assembler. These options are equivalent to -Av9 and -Av9a, respectively.
-bump
Warn when the assembler switches to another architecture.
The following options are available when as is configured for a MIPS processor.
-G num
This option sets the largest size of an object that can be referenced
implicitly with the gp
register. It is only accepted for targets that
use ECOFF format, such as a DECstation running Ultrix. The default value is 8.
-EB
Generate “big endian” format output.
-EL
Generate “little endian” format output.
-mips1
-mips2
-mips3
Generate code for a particular MIPS Instruction Set Architecture level. ‘-mips1’ corresponds to the R2000 and R3000 processors, ‘-mips2’ to the R6000 processor, and ‘-mips3’ to the R4000 processor.
-m4650
-no-m4650
Generate code for the MIPS R4650 chip. This tells the assembler to accept the ‘mad’ and ‘madu’ instruction, and to not schedule ‘nop’ instructions around accesses to the ‘HI’ and ‘LO’ registers. ‘-no-m4650’ turns off this option.
-mcpu=CPU
Generate code for a particular MIPS cpu. This has little effect on the
assembler, but it is passed by gcc
.
--emulation=name
This option causes as
to emulated as
configured
for some other target, in all respects, including output format (choosing
between ELF and ECOFF only), handling of pseudo-opcodes which may generate
debugging information or store symbol table information, and default
endianness. The available configuration names are: ‘mipsecoff’,
‘mipself’, ‘mipslecoff’, ‘mipsbecoff’, ‘mipslelf’,
‘mipsbelf’. The first two do not alter the default endianness from that
of the primary target for which the assembler was configured; the others change
the default to little- or big-endian as indicated by the ‘b’ or ‘l’
in the name. Using ‘-EB’ or ‘-EL’ will override the endianness
selection in any case.
This option is currently supported only when the primary target
as
is configured for is a MIPS ELF or ECOFF target.
Furthermore, the primary target or others specified with
‘--enable-targets=…’ at configuration time must include support for
the other format, if both are to be available. For example, the Irix 5
configuration includes support for both.
Eventually, this option will support more configurations, with more fine-grained control over the assembler’s behavior, and will be supported for more processors.
-nocpp
as
ignores this option. It is accepted for compatibility with
the native tools.
--trap
--no-trap
--break
--no-break
Control how to deal with multiplication overflow and division by zero. ‘--trap’ or ‘--no-break’ (which are synonyms) take a trap exception (and only work for Instruction Set Architecture level 2 and higher); ‘--break’ or ‘--no-trap’ (also synonyms, and the default) take a break exception.
1.1 메뉴얼의 구조 | ||
1.2 as, the GNU Assembler | ||
1.3 목적 파일의 포맷 | ||
1.4 명령행 | ||
1.5 입력 파일들 | ||
1.6 출력(목적) 파일 | ||
1.7 에러와 경고 메세지 |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
이 메뉴얼은 GNU as
를 어떻게 사용하는가에 대해
여러분들이 알고 싶어 하는 것들을 설명할 것이다. 이곳에는 일반적으로
소스파일에서 나올 수 있는 심볼, 상수, 표현등의 표기법을 포함하는
소스파일에서의 문법을 설명한다. 그리고 as
가 이해할 수
있는 지시자들과 as
를 어떻게 불러낼 것인지에 대한 것도
포함 되어 있다.
이 메뉴얼은 또한 어셈블러의 각양각색의 기계에 의존적인 특징들에 대해서도 설명한다.
다르게 말하면, 이 메뉴얼은 어셈블리 언어에서 프로그래밍을 위한 명령어들 을 제공하지는 않을 것이다—일반적인 범주에서 홀로 프로그래밍을 하라! 마찬 가지의미로, 기계구조에 대한 기본적인 도입단계도 설명하지 않는다. 그리고 특별한 구조에만 해당되는 명령어들과, 표준 니모닉들, 레지스터 또는 어드레싱 모드도 설명하지 않을 것이다. 이러한 것들에 대해 더 자세한 것을 알고 싶다면 해당 제작사에서 만든 기계 구조 메뉴얼을 보기 바란다.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU as
는 어셈블러의 일종이다.
만일 여러분들이 GNU 어셈블러를 하나의 아키 텍쳐에서 사용해보았거나
사용하고 있고, 그것을 다른 아키텍쳐에서 사용하 려고 한다면 아주 유사한
환경을 얻을 수 있을 것이다. 각각의 버젼은 다른 버젼들과 목적 파일 포멧,
대부분의 어셈블러 지시자 (종종 의사 작동자(pseudo-ops)라고
불리기도 한다)와 어셈블러 문법적인 면 에서 많은 공통점을 가지고 있다.
as
는 처음에 GNU C 컴파일러인 gcc
의
출력물을 어셈블하기 위해 고안되었고, 이 어셈블된 것은 링커
ld
가 사용하도록 할 작정이었다. 그럼에도 불구하고,
우리들은 같은 기계상의 다른 어셈블러가 어셈블 할 수 있는 모든 것들을
정확 하게 어셈블 할 수 있게 as
를 만들어 왔다.
많은 예외들도 문서화하였다 (see section 기계에 의존하는 것들). 이것은 같은 아키텍쳐상의 다른 어셈블러에게 도 항상 꼭같은 문법을 사용한다는 것을 의미하지는 않는다. 예를 들면, 우리 들은 680x0 버젼의 어셈블리 언어 문법에서 몇개의 호환되지 않는 버젼을 알고 있다.
오래된 구닥다리 어셈블러들과는 다르게, as
는 소스파일을
1-pass 방식에 의 해 어셈블한다. 이것은 .org 지시자에서
미묘하게 충돌한다(see section .org
).
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU 어셈블러는 여러개의 다양한 목적 파일 포맷을 생성하도록 설정을 할 수 있다. 그리고 일반적으로 이것은 어셈블리 언어로 프로그램을 짜는 방 법에는 다른 영향을 미치지 않는다. 그러나 디버깅 심볼을 위한 지시자는 다 른 파일 포맷에서는 일반적으로 달라진다. See section 심볼의 속성.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
명령행에서 as
의 이름을 적은 다음, 옵션들과 파일이름을
포함 할 수 있다. 옵션은 특별한 순서없이 나타날 수 있고, 파일이름은
옵션의 앞,뒤, 중간 어디에 놓여질 것이다. 파일이름의 순서는 중요하다.
‘--’ (두개의 ‘-’)은 표준입력 파일을 명시하는 것이고,
as
는 그것을 파일로 간주하고 어셈블 할 것이다.
‘--’만 제외하고는 어떤 명령행 인자든지 ‘-’로 시작하는 것은
옵션이다. 각 각의 옵션은 as
의 행동을 변화시킨다. 하나의
옵션은 또다른 옵션이 작동하는 방법을 변화시키지 못한다. 옵션은 ‘-’
다음에 하나이상의 글자가 따라온다. 어 떤 글자인가가 중요하다. 모든
옵션은 선택적이다.
어떤 옵션 다음에는 정확히 하나의 파일이름 만이 뒤따라 와야 한다. 그 파일 이름은 아마도 그 옵션의 특정글자 다음에 바로 따라온다(구닥다리 어셈블러들과 의 호환성을 위해서)거나 파일이름이 다음 명령행 인자(GNU 표준)로 따라올 것 이다. 이 두개의 형태는 같다:
as -o my-object-file.o mumble.s as -omy-object-file.o mumble.s |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
여기서는 소스 프로그램이라는 말을 줄여서, 소스라고
사용하겠다. 소스 는 as
가 한번 실행되어서 처리할 수 있는
프로그램 입력을 이야기한다. 프로그램 은 하나 이상의 파일이 될 수 있는
데, 파일 속에서 소스가 얼마나 단편화되 어 있는냐 하는 문제는 소스의
의미를 퇴색시키지는 못한다.
소스 프로그램은 모든 파일에서 어떤 특정 순서대로 정리된 텍스트의 연속이다.
매번 여러분들은 정확히 하나의 소스 프로그램을 어셈블하기 위해
as
를 실행한 다. 소스 프로그램은 하나이상의 파일로 되어
있다. (표준입력도 하나의 파일이다.)
여러분들은 as
를 실행할 때 명령행에서 0개 이상의 입력
파일이름을 지정할 것 이다. 입력파일은 왼쪽에서 오른쪽으로 읽는다.
옵션이나 다른 특별한 의미를 지니지 않는 명령행 인자는 입력파일 이름으로
간주된다.
as
는 파일이름을 지정하지 않으면 보통 여러분의 터미널인
표준입력으로 부터 읽기를 시도한다. 쓰넣을 것이 없다면 <ctl-D>를
입력하여 as
에게 더 이상 어셈블 할 프로그램이 없다는 것을
알리면 된다.
명령행에서 표준입력을 사용하고 싶다면 ‘--’을 사용하라.
소스가 텅비어 있다면, as
는 조그마한 텅빈 목적 파일을
만들 것이다.
입력파일이나 보통 파일에서 줄을 매기는 것은 두가지 방법이 있는 데, 양쪽다 에러메세지를 출력하는 데 사용될 것이다. 하나는 물리적인 파일에서 줄번호를 참조하는 것이고 다른 하나는 “논리적인”파일의 줄번호를 참조하는 것이다. See section 애러와 경고 메세지.
물리적인 파일이란 명령행에서 as
에게 주어진
파일이름을 말한다.
논리적인 파일이란 어셈블러 지시자에 의해 선언된 이름이다. 이것은
물리적인 파일과는 상관없다. 논리적인 파일 이름은 as
소스가 다른 파일들과 함께 합쳐질 때 원래의 소스 파일을 반영하여
에러메세지를 취급하는 데 도움을 준다.
See section .app-file
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
매번 여러분들이 as
를 실행시키면 어셈블리 프로그램을
수치로 변환시킨 출력파일 을 생성할 것이다. 이 파일이 목적
파일이며,
-o 옵션으로 다른 이름을 지정하지 않았을때,
a.out
, 또는
as
가 Intel 80960으로 설정이 되면 b.out
이 될 것이다. 관습적으로 목적 파일의 이름은 ‘.o’로 끝난다.
’a.out’이라는 기본 이름은 역사적인 이 유에서 연유한다. 오래된
어셈블러들은 어셈블을 하는 데 아예 실행 가능한 프로그 램을 만들어 내는
능력도 가지고 있었다. (어떤 포맷에서는, 이러한 것은 현재 불 가능하나
포맷은 a.out
을 만들어 낼 수 있을 것이다.)
목적 파일은 링커 ld
에게는 입력파일로서의 의미가 있다.
그것은 어셈블된 코드와 어셈블된 프로그램을 실행파일로 구성하는 데 필요한
정보를 가지고 있으 며, (선택적으로) 디버거를 위한 심볼릭 정보를 가지고
있다.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
as
는 경고와 에러메세지를 표준에러파일(보통은 터미널)로 쓸
것이다. 이것은 컴파일러가 자동적으로 as
를 실행시킬
때에는 발생하지 않는다. 경고는 as
가 결함 이 있는
프로그램을 어셈블을 완수하면서 사실이라 유추되는 것을 출력한다. 에러는
치명적인 문제점을 보고하고 어셈블하기를 멈춘다.
경고 메세지는 아래의 포맷과 같이 나타난다.
file_name:NNN:Warning Message Text |
(NNN은 줄번호이다). 만일 논리적인 파일이름이 주어진다면
(see section .app-file
)
그것이 "파일이름"으 로 사용될 것이고, 아니라면 현재의 입력파일이
‘파일이름’으로 사용될 것이다. 만일 논리적인 줄번호가 주어진다면
(see section .line
)
그것은 줄번호를 출력하는 데 사용될 것이고, 아니라면 현재의 소스파일에서
활성화된 줄이 출력될 것이다. 경고문장은 설명조 로 될 것이다(유닉스
전통에 따라).
에러 메세지의 포맷은 다음과 같다.
file_name:NNN:FATAL:Error Message Text |
파일이름과 줄번호는 경고메세지 때와 같다. 활성화된 에러문장은 그리 설명적 이지 못할 것이다.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Autobuild on June 20, 2017 using texi2html 1.82.