《ARM嵌入式系统结构与编程》习题答1Word文件下载.docx

上传人:b****6 文档编号:19702837 上传时间:2023-01-09 格式:DOCX 页数:9 大小:23.56KB
下载 相关 举报
《ARM嵌入式系统结构与编程》习题答1Word文件下载.docx_第1页
第1页 / 共9页
《ARM嵌入式系统结构与编程》习题答1Word文件下载.docx_第2页
第2页 / 共9页
《ARM嵌入式系统结构与编程》习题答1Word文件下载.docx_第3页
第3页 / 共9页
《ARM嵌入式系统结构与编程》习题答1Word文件下载.docx_第4页
第4页 / 共9页
《ARM嵌入式系统结构与编程》习题答1Word文件下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

《ARM嵌入式系统结构与编程》习题答1Word文件下载.docx

《《ARM嵌入式系统结构与编程》习题答1Word文件下载.docx》由会员分享,可在线阅读,更多相关《《ARM嵌入式系统结构与编程》习题答1Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。

《ARM嵌入式系统结构与编程》习题答1Word文件下载.docx

3.?

Linux?

uC/OS-II?

uC/OS?

4.?

“?

5.?

1.?

3.?

5.?

2?

ARM?

ETM(EmbeddedTraceMacro),?

JTAG(JointTestActionGroup?

12?

)?

EmbeddedICE?

CPU?

ETM?

TAP(TestAccessPort)?

(?

),?

ETM,?

ICE?

2.?

ARM7TDMI-S?

ARM7TDMI–S?

AdvancedRISCMachines?

7?

;

T:

16?

Thumb?

D:

JTAG?

M:

(64?

)ARM?

;

I:

ETM,?

S:

EDA?

3.ARM?

1.?

2.FIQ?

(fast)?

3.IRQ?

:

(normal)?

IRQ?

4.SVC?

23?

5.?

6.?

7.?

User?

6?

5?

4.?

(PSR)?

C,Z,N,V?

N=1-?

0-?

0?

Z=1-?

0,0-?

C=1-?

V=1-?

0?

Q?

ARM5TE/J?

DSP?

I=1:

IRQ.?

F=1:

FIQ.?

TBit?

ARMxT?

T=0:

T=1:

Mode?

):

0b10000User?

0b10001FIQ?

0b10010IRQ?

0b10011Supervisor34?

0b10111?

0b11011?

0b11111AbortUndefinedSystem

5.?

ARM7TDMI?

BLSWIMOVPC,R14SVCUNDABTFIQIRQABTSVC66534210x000000080x000000040x0000000C0x0000001C0x000000180x000000100x00000000MOVSPC,R14_svc?

MOVSPC,R14_und?

SUBSPC,R14_abt,#4SUBSPC,R14_fiq,#4SUBSPC,R14_irq,#4SUBSPC,R14_abt,#8?

LR?

2.?

CPSR?

SPSR?

3.?

4.?

PC?

ARM7TDMI?

PC,?

CPSR;

3.?

T?

F?

I?

6.ARM?

ARM7TDMI?

(Big-endian)45?

(Little-endian)?

7~0?

31~24?

7.?

(LDR)?

LDR?

3?

)?

MOV?

8.?

ARM9?

ARM920?

.?

Cache?

ALU?

Cache)?

9.?

56?

ORR?

R4?

15?

0000000100100011010001010110011110001001101010111100110111101111?

EQNECS/HSCC/LOMIPLVSVCHILSGELTGTLEALNVZ=1Z=0C=1C=0N=1N=0V=1V=0C=1,Z=0C=0,Z=1N=VN!

=VZ=0,N=VZ=1,N!

=V?

(?

2.?

V?

1?

V—?

V=1?

67?

V?

8?

)0x54300x1080x3040x5010xfb100000x3340000x3FC0000x1FE00000x55800000x7F8000x39C0000x1FE80000?

1?

32?

2*rotate_4?

(?

0,2,4,?

30)?

0X54300000,0000,0000,0000,0101,0100,0011,0000?

0X1080000,0000,0000,0000,0000,0001,0000,10000x42?

(rotate_4=0xF)0X3040000,0000,0000,0000,0000,0011,0000,01000xC1?

(rotate_4=0xF)0x5010000,0000,0000,0000,0000,0101,0000,0001?

0xfb100000000,1111,1011,0001,0000,0000,0000,0000?

0x3340000000,0000,0011,0011,0100,0000,0000,00000Xcd?

18?

(rotate_4=0x9)0x3FC0000000,0000,0011,1111,1100,0000,0000,00000XFF?

(rotate_4=0x9)0x1FE00000000,0001,1111,1110,0000,0000,0000,0000?

0x55800000000,0101,0101,1000,0000,0000,0000,0000?

0x7F8000000,0000,0000,0111,1111,1000,0000,0000?

0x39C0000000,0000,0011,1001,1100,0000,0000,00000XE7?

(rotate_4=0x9)0x1FE800000001,1111,1110,1000,0000,0000,0000,0000?

LSL?

:

3100LSR?

3100ASR?

78310ROR?

310RRX?

31C0

5.ARM?

1)?

2)?

3)?

4)?

5)?

RRX?

PC(R15)?

6.?

Load/Store?

1)Addressing_mode?

2)Addressing_mode?

3)Addressing_mode?

7.?

IA(IncrementAfter):

4;

IB(IncrementBefore):

4;

DA(DecrementAfter):

DB(DecrementBefore):

8.?

FA:

FD:

EA:

89?

ED:

9.?

/?

LDR/STR?

Addressing_mode?

•?

[<

Rn>

#+/-<

imm_offset8>

*4]?

Rn?

imm_offset8?

4,?

[<

*4]!

寄存器。

•后变址回写形式:

],#+/-<

*4内存地址为基址寄存器Rn的值,当存储器操作完成后,将基地址寄存器Rn值加上/减去imm_offset8的4倍,后续的每一个地址是前一个内存地址加4,直到协处理器发出信号,结束本次数据传输为止。

最后将Rn值加上/减去imm_offset8的4倍写回到基址寄存器Rn(更新基地址寄存器)。

10.写出下列指令的机器码,并分析指令操作功能。

MOVR0,R1MOVR1,,0X198ADDEQSR1,R2,,0xABCMPR2,#0XabLDRR0,[R1,#4]STRR0,[R1,R1,LSL#2]!

LDRHR0,[R1,#4]LDRSBR0,[R2,#-2]!

STRBR1,[R2,#0Xa0]910LDMIAR0,{R1,R2,R8}STMDBR0!

{R1-R5,R10,R11}STMEDSP!

{R0-R3,LR}答:

机器码部分略。

MOVR0,R1;

R0《-----R1MOVR1,,0X198;

R0《----0X198ADDEQSR1,R2,,0xAB;

当Z=1时,R1《---R2+0xAB并影响标志位CMPR2,#0Xab;

R2-0xAB,并影响标志位LDRR0,[R1,#4];

R0《---【R1+4】STRR0,[R1,R1,LSL#2]!

【R1+R1*4】《---R0,R1=R1+R1*4LDRHR0,[R1,#4];

R0《---【R1+4】半字,R0的高16位清零LDRSBR0,[R2,#-2]!

R0《---【R2-2】字节,R0有符号扩展为32位,R2=R2-2STRBR1,[R2,#0Xa0];

【R2+0Xa0】《----R1低8位,LDMIAR0,{R1,R2,R8};

将内存单元【R0】~【R+11】以字为单位读取到R1,R2,R8中STMDBR0!

{R1-R5,R10,R11}将寄存器R1~R5,R10,R11的值以字为单位依次写入【R0】中,每写一个字之前R0=R0-4STMEDSP!

{R0-R3,LR}将寄存器R0~R3,LR的的值以字为单位依次写入【SP】中,每写一个字之后SP=SP-4

第4章ARM指令集系统

1.ARM指令可分为哪几类?

说出哪几条指令是无条件执行的。

答:

ARM微处理器的指令集可以分为:

数据处理指令,分支指令,加载/存储指令,批量加载/存储指令,交换指令,程序状态寄存器(PSR)处理指令,协处理器操作指令和异常产生指令八大类。

几乎所有的ARM指令都是可以有条件执行的。

带链接和状态切换的跳转指令BLX,当目标地址由程序标号给出时,即:

BLX<

target_address>

由于指令码中是没有条件编码位的,所以指令是无条件执行的。

2.如何实现两个64位数的加法操作,如何实现两个64位数的减法操作,如何求一个64位数的负数?

1)使用ADC实现64位加法,结果存于R1、R0中:

ADDSR0,R0,R2;

R0等于低32位相加,并影响标志位ADCR1,R1,R3;

R1等于高32位相加,并加上低位进位2)使用SBC实现64位减法,结果存于R1、R0中:

SUBSR0,R0,R2;

低32位相减,并影响标志位SBCR1,R1,R3;

高32位相减,并减去低位借位3)使用RSC指令实现求64位数值的负数:

RSBSR2,R0,#0RSCR3,R1,#0

3.写出LDRB指令与LDRSB指令的二进制编码格式,并指出它们之间的区别。

LDRB指令的二进制编码格式:

1011LDRSB?

LDRB?

24?

LDRSB?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1