Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
59
Добавлен:
14.04.2015
Размер:
2.03 Mб
Скачать

Keil Software — A51/AX51/A251 Macro Assembler and Utilities

99

 

 

Chapter 4. Assembler Directives

This chapter describes the assembler directives. It shows how to define symbols and how to control the placement of code and data in program memory.

Introduction

The Ax51 assembler has several directives that permit you to define symbol values, reserve and initialize storage, and control the placement of your code.

The directives should not be confused with instructions. They do not produce

 

executable code, and with the exception of the DB, DW and DD directives, they

 

have no direct effect on the contents of code memory. These directives change

 

the state of the assembler, define user symbols, and add information to the object

 

4

file.

 

 

 

 

 

The following table provides an overview of the assembler directives. Page

refers to the page number in this user’s guide where you can find detailed

 

 

information about the directive.

 

 

 

 

 

 

 

 

Directive / Page

Format

Description

 

 

BIT

114

symbol BIT bit_address

Define a bit address in bit data space.

 

 

BSEG

111

BSEG

[AT absolute address]

Define an absolute segment within the

 

 

 

 

 

 

bit address space.

 

 

CODE

114

symbol CODE code_address

Assign a symbol name to a specific

 

 

 

 

 

 

address in the code space.

 

 

CSEG

111

CSEG

[AT absolute address]

Define an absolute segment within the

 

 

 

 

 

 

code address space.

 

 

DATA

114

symbol

DATA data_address

Assign a symbol name to a specific

 

 

 

 

 

 

on-chip data address.

 

 

DB

119

[label:]

DB expression [, expr ...]

Generate a list of byte values.

 

 

DBIT

122

[label:] DBIT expression

Reserve a space in bit units.

 

 

DD

121

[label:]

DD expression [, expr ...]

Generate a list of double word values.

 

 

DS

123

[label:] DS expression

Reserve space in byte units.

 

 

DSB

124

[label:] DSB expression

Reserve space in byte units.

 

 

DSD

126

[label:] DSD expression

Reserve space in double word units.

 

 

DSEG

111

DSEG

[AT absolute address]

Define an absolute segment within the

 

 

 

 

 

 

indirect internal data space.

 

 

Shaded directives and options are available only in AX51 and A251.

 

100

 

 

 

 

 

 

 

 

 

 

 

Chapter 4. Assembler Directives

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Directive / Page

 

 

Format

 

Description

 

 

 

DSW

125

 

 

[label:]

DSW expression

 

Reserve space in word units;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

advances the location counter of the

 

 

 

 

 

 

 

 

 

 

 

 

 

 

current segment.

 

 

 

DW

120

 

 

[label:]

DW expression [, expr. ...]

 

Generate a list of word values.

 

 

 

END

136

 

 

END

 

 

 

 

 

Indicate end of program.

 

 

 

EQU

113

 

 

EQU expression

 

Set symbol value permanently.

 

 

 

_ _ERROR_ _136

 

_ _ERROR_ _ text

 

Generate a standard error message.

 

 

 

EVEN

134

 

EVEN

 

 

 

 

 

Ensure word alignment for variables.

 

 

 

EXTRN

131

 

EXTRN class

 

(symbol [, ...])

 

Defines symbols referenced in the

 

 

 

 

[:type]

 

 

 

EXTERN

 

 

 

 

EXTERN class [:type] (symbol [, ...])

 

 

current module that are defined in

 

 

 

 

 

 

 

 

 

 

 

 

 

 

other modules.

 

 

 

IDATA

114

 

symbol

IDATA idata_address

 

Assign a symbol name to a specific

 

 

 

 

 

 

 

 

 

 

 

 

 

 

indirect internal address.

 

 

 

ISEG

111

 

ISEG [AT absolute address]

 

Define an absolute segment within the

 

 

 

 

 

 

 

 

 

 

 

 

 

 

internal data space.

 

 

 

LABEL

129

 

 

name[:]

LABEL [type]

 

Assign a symbol name to a address

 

4

 

 

 

 

 

 

 

 

 

 

 

 

location within a segment.

 

 

LIT

116

 

 

symbol

LIT ’literal string’

 

Assign a symbol name to a string.

 

 

NAME

132

 

NAME modulname

 

Specify the name of the current

 

 

 

 

module.

 

 

 

ORG

133

 

ORG expression

 

Set the location counter of the current

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

segment.

 

 

 

 

 

 

 

 

 

 

 

 

PROC

127

 

 

name PROC [type]

 

Define a function start and end.

 

 

 

ENDP

 

 

 

name ENDP

 

 

 

 

 

PUBLIC

130

 

PUBLIC symbol [, symbol ...]

 

Identify symbols which can be used

 

 

 

 

 

 

 

 

 

 

 

 

 

 

outside the current module.

 

 

 

RSEG

110

 

RSEG

seg

 

Select a relocatable segment.

 

 

 

SEGMENT

106

 

seg SEGMENT class [reloctype]

 

Define a relocatable segment.

 

 

 

 

 

 

 

[alloctype]

 

 

 

 

 

SET

113

 

SET expression

 

Set symbol value temporarily.

 

 

 

sfr,

116

 

sfr symbol = address;

 

Define a special function register

 

 

 

sfr16

 

 

sfr16 symbol = address;

 

(SFR) symbol or a SFR bit symbol.

 

 

 

sbit

 

 

sbit symbol = address;

 

 

 

 

 

USING

134

 

USING

expression

 

Set the predefined symbolic register

 

 

 

 

 

 

 

 

 

 

 

 

 

 

address and reserve space for the

 

 

 

 

 

 

 

 

 

 

 

 

 

 

specified register bank.

 

 

 

XDATA

114

 

symbol

XDATA xdata_address

 

Assign a symbol name to a specific

 

 

 

 

 

 

 

 

 

 

 

 

 

 

off-chip data address.

 

 

 

XSEG

111

 

XSEG

[AT absolute address]

 

Define an absolute segment within the

 

 

 

 

 

 

 

 

 

 

 

 

 

 

external data address space.

 

Shaded directives and options are available only in AX51 and A251.

Keil Software — A51/AX51/A251 Macro Assembler and Utilities

101

 

 

The directives are divided into the following categories:

 

Segment Control

 

 

 

 

 

 

 

 

Generic Segments: SEGMENT, RSEG

 

 

Absolute Segments: CSEG, DSEG, BSEG, ISEG, XSEG

 

 

Symbol Definition

 

 

 

 

 

 

 

 

Generic Symbols: EQU, SET

 

 

Address Symbols: BIT, CODE, DATA, IDATA, XDATA

 

 

SFR Symbols:

sfr, sfr16, sbit

 

 

 

Text Replacement: LIT

 

 

 

 

 

 

Memory Initialization

 

 

DB, DW,

DD

 

 

 

 

 

 

 

 

 

Memory Reservation

 

 

DBIT, DS,

DSB, DSW, DSD

 

 

 

 

 

 

 

 

 

 

 

 

 

Procedure Declaration

4

 

PROC / ENDP, LABEL

 

 

Program Linkage

 

 

 

 

 

 

 

PUBLIC, EXTRN /

EXTERN

, NAME

 

 

 

 

Address Control

 

 

 

 

 

 

 

 

ORG,

EVEN

, USING

 

 

Others

 

 

 

 

 

 

 

 

END, _ _ERROR_ _

 

The Ax51 assembler is a multi-pass assembler. In the first pass, symbol values are determined. In the subsequent passes, forward references are resolved and object code is produced. This structure imposes a restriction on the source program: expressions which define symbol values (refer to “Symbol Definition” on page 113) and expressions which control the location counter (refer to “ORG” on page 133, “DS” on page 123, and “DBIT” on page 122) may not have forward references.

Shaded directives and options are available only in AX51 and A251.

Соседние файлы в папке HLP