汇编语言
X86指令集介绍
X86指令集的基本特色
- 向下兼容
- 变长指令
- 1-15字节,多为2-3字节长度
- 多种寻址方式(可访问不对齐内存地址)
X86寄存器
指令集的通用寄存器个数有限
X86-32下指令集通用寄存器数量为8个,x86-64下为16个
至多只有一个操作数在内存中,另一个操作数为立即数或寄存器
源自 网络PDF——X86处理器架构
SHARC汇编
《Assembler and Preprocessor Manual(including the ADSP-BFxxx, ADSP-21xxx, ADSP-TSxxx)》
VisualDSP++
以下是ADI官网对VisualDSP++(以下简称VDSP)的解释,本质上是个集成软件开发和调试环境(IDDE)。
汇编器的操作取决于两种类型的控制:汇编器指令和汇编器开关。
Assembler operations depend on two types of controls: assembler directives and assembler switches.
VDSP支持以下三种不同的汇编器:
DSP汇编开发者需要先熟悉以下内容:
“Writing Assembly Programs” on page 1-3
“Using Assembler Support for C Structs” on page 1-21
“Preprocessing a Program” on page 1-24
“Using Assembler Feature Macros” on page 1-25
“Generating Make Dependencies” on page 1-37
“Reading a Listing File” on page 1-38
“Enabling Statistical Profiling for Assembly Functions” on page 1-38
“Specifying Assembler Options in VisualDSP++” on page 1-173
总览
汇编器 将 汇编源(.asm)、数据(.dat) 和 头文件(.h) 三者整理成可执行可链接的格式(ELF),也就是一个标准的 二进制文件(.doj)。
另外,汇编器还将生成一个 列表文件(.lst),展示二进制文件和源文件之间的联系。
也就是说,编译成功后,.doj和.lst文件就是其编译结果。
Figure 1-1 shows a graphical overview of the assembly process. The figure shows the preprocessor processing the assembly source (.asm) and header (.h) files.
By default, the assembler processes an intermediate file to produce a binary object file (.doj) and an optional listing file (.lst).
编写
Assembler directives are coded in assembly source files.
The directives allow you to define variables, set up hardware features, and identify program sections for placement within processor memory.
The assembler uses directives for guidance as it translates a source program into object code.
注意:
Do not use a word processor that embeds special control codes in the text.
Use an
.asm
extension to source file names to identify them as assembly source files.
可以使用像 batch-file
和 makefile
这样的命令行工具来汇编你的源文件。
列表文件还提供了关于导入的C语言数据结构的信息。
问题解决
问题一
现象:出现如下图所示的头文件缺少
原因:.boj
文件和其所依赖的
.h
头文件相对路径不一致,或项目文件的绝对路径与原来创建时不一致。
例如:从文件
Debug/system/startup_Idf/app_IVT.doj
中可以看出,该文件的创作者是将其放置在
D:\ADSP\workspace\LED_test\Debug
下的,因此需要改变该项目文件的位置。
解决方法:在原创作者的绝对路径下放置该项目文件。