汇编语言

X86指令集介绍

X86指令集的基本特色

  • 向下兼容
  • 变长指令
    • 1-15字节,多为2-3字节长度
  • 多种寻址方式(可访问不对齐内存地址)
image-20210517203416861

X86寄存器

指令集的通用寄存器个数有限

X86-32下指令集通用寄存器数量为8个,x86-64下为16个

至多只有一个操作数在内存中,另一个操作数为立即数或寄存器

image-20210517204354665
image-20210517204446891

源自 网络PDF——X86处理器架构

SHARC汇编

《Assembler and Preprocessor Manual(including the ADSP-BFxxx, ADSP-21xxx, ADSP-TSxxx)》

VisualDSP++

以下是ADI官网对VisualDSP++(以下简称VDSP)的解释,本质上是个集成软件开发和调试环境(IDDE)。

image-20210520005659254

汇编器的操作取决于两种类型的控制:汇编器指令和汇编器开关。

Assembler operations depend on two types of controls: assembler directives and assembler switches.

VDSP支持以下三种不同的汇编器:

image-20210520010438229

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文件就是其编译结果。

image-20210520011656751

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).

image-20210520012328329

编写

  • 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-filemakefile 这样的命令行工具来汇编你的源文件。

列表文件还提供了关于导入的C语言数据结构的信息。

问题解决

问题一

现象:出现如下图所示的头文件缺少

image-20210520090023689

原因.boj文件和其所依赖的 .h 头文件相对路径不一致,或项目文件的绝对路径与原来创建时不一致。

例如:从文件 Debug/system/startup_Idf/app_IVT.doj 中可以看出,该文件的创作者是将其放置在 D:\ADSP\workspace\LED_test\Debug 下的,因此需要改变该项目文件的位置。

解决方法:在原创作者的绝对路径下放置该项目文件。

image-20210520090936369