中华考试网·阅读新闻
软件水平 > 中级资格 > 嵌入式系统设计师 > 文章内容

计算机软考嵌入式系统设计师考试知识点(8)

2016-2-2编辑:ljnbset

ARM处理器指令系统及汇编语言程序设计(指令格式,寻址方式,指令集,伪指令,语句格式与程序结构,ARM汇编语言与C的混合编程等)

       (1)指令格式

              指令一般格式

              {}{S}  ,{,}     其中<>不可省

              指令格式说明:

项目

含义

备注

指令的操作码

即助记符,如MOV、ADD、B等

{cond}

条件域,满足条件才执行指令

可不加条件即可省略条件,如EQ、NE等

{S}

指令执行时是否需要更新CPSR

可省略

Rd

目的寄存器

Rd可为任意通用寄存器

Rn

第一个源操作数

Rd可为任意通用寄存器,可以与Rd相同

Op2

第二个源操作数

可为#imm8m、寄存器Rm及任意移位寄存器

              关于#imm8m的说明:#表示立即数,其后可以是十进制或十六进制数

       对于ARM指令集,#imm8m表示一个由8位立即数经循环右移任意偶数位次形成的32位操作数。

       对于Thumb指令集,#imm8m表示一个由8位立即数经左移任意位次形成的32位操作数。

指令的条件码

条件码

助记符

标    志

含    义

0000

EQ

Z置位

相等

0001

NE

Z清零

不相等

0010

CS

C置位

无符号数大于或等于

0011

CC

C清零

无符号数小于

0100

MI

N置位

负数

0101

PL

N清零

正数或零

0110

VS

V置位

溢出

0111

VC

V清零

未溢出

1000

HI

C置位Z清零

无符号数大于

1001

LS

C清零Z置位

带符号数小于或等于

1010

GE

N等于V

带符号数大于或等于

1011

LT

N不等于V

带符号数小于

1100

GT

Z清零且N等于V

带符号数大于

1101

LE

Z置位或N不等于V

带符号数小于或等于

1110

AL

忽略

无条件执行

2)寻址方式

       1)立即寻址(立即数寻址)

例如:MOV R0,#0x1212121212

              ADC R0,R0,#100                                       ;R0       R0+100+C      

2)寄存器寻址(执行效率较高)

例如:ADD R0,R1,R2                        ;R0         R1+R2

3)寄存器间接寻址

寄存器间接转址就是以寄存器中的值作为操作数地址,而操作数本身存放在存储器中。用间接寻址的寄存器必须用[ ]括起来。

例如:LDR R5,[R4]                     ;R5         [R4],间接寻址的寄存器是R4

 

 

STR R1,[R2]                                          ;[R2]    R1,间接寻址的寄存器是R2     

4)基址加变址寻址

常见的几种形式:

       LDR R0,[R1,#4]                          

       STR R1,[R2,#8]

       LDR R0,[R1,#4]!    (!表示指令在完成数据传输后更新基址存储器)

       LDR R0,[R1],#4

       LDR R0, [R1, R2]

       STR R0, [R1, R2]

5)相对寻址

相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加后得到操作数的有效地址。

下列程序中跳转指令BL利用相对寻址方式:

       BL Subroutine_A            ;跳转子程序Subroutine_A处执行

       …

       Subroutine_A:

                     …

                     MOV PC ,LR                     ;从子程序返回

6)堆栈寻址

7)块拷贝寻址

(3

(4

(5

(6)
计算机软考嵌入式系统设计师考试知识点(7)
咨询热线:4000-525-585(免长途费)