Chinaunix首页 | 论坛 | 博客
  • 博客访问: 60355
  • 博文数量: 15
  • 博客积分: 353
  • 博客等级: 一等列兵
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-12 16:15
文章分类
文章存档

2011年(15)

我的朋友

分类: 嵌入式

2011-12-19 16:00:54

汇编器移植涉及到的接口:

需要移植修改的函数:

序号

名称

功能

1

int md_parse_option(optc,optarg)

机器相关对命令行选项处理(default处理)

2

void md_show_usage(stdout)

输出机器相关选项帮助文件

3

void md_pop_insert()

在po_hash中插入伪指令符号

4

void md_begin()

开始第一pass前的准备工作

5

void md_assemble(s)

对s(行指令)进行汇编处理

6

int md_estimate_size_before_relax(fragP,segment)

返回frag需要增长的长度值

7

void md_convert_frag(stdoutput,sec,fragP)

调整rs_machine_dependent类型fragP的大小,满足sec的要求

8

valueT md_section_align(seg,size)

调整seg的大小,使之对齐边间

9

void md_apply_fix (fixP, &add_number, this_segment);

将add_number添加到对应的fixP中

10

arelent* tc_gen_reloc (sec, fixp)

生成重定位信息

11

void md_number_to_chars(ptr,use,nbytes)

根据大端还是小端,将数字转化为字符串

12

void md_operand(expression)

处理操作数,判断表达式

13

void md_atof(type,litP,sizeP)

字符串转换为浮点

14

symbolS * md_undefined_symbol (char *name)

处理未定义的符号

需要移植修改的宏:

序号

名称

功能

1

LOCAL_LABELS_FB

是否使用局部标号(0~9)

2

tc_comment_chars

是否定义了注释符号

3

TARGET_FORMAT

确定目标文件格式

4

TARGET_ARCH

确定机器体系结构

5

md_end()

pass过源文件后的处理

6

TARGET_BYTES_BIG_ENDIAN

机器是否为大端

7

tc_fix_adjustable(fixP)

判断这个fix是否可以被gas独立完成

8

TC_FORCE_RELOCATION(fix,seg)

判断是否需要重定位

9

MD_PCREL_FROM_SECTION(fix,sec)

返回fix在sec中所要fix的偏移量

10

LISTING_HEADER

列表文件输出的开头

11

md_operand

处理操作数

12

md_undefined_symbol

处理未定义符号

需要移植修改的变量:

序号

名称

类型

作用

1

md_shortopts

const char *

命令行选项简写

2

md_longopts

struct option

命令行选项全称

3

md_longopts_size

size_t

命令行选项大小

4

md_pseudo_table

pseudo_typeS []

描述机器相关伪指令集

5

line_separator

char

行分隔符

6

comment_chars

const char []

注释符号

7

line_comment_chars

const char []

行注释符

8

md_relax_table

relax_typeS []

relax表

9

md_short_jump_size

int

short jump的最大长度

10

md_long_jump_size

int

long jump的最大长度

11

EXP_CHARS

const char []

幂指数符号

12

FLT_CHARS

const char []

浮点数符号

阅读(1708) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~