日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【嵌入式】嵌入式系统开发与应用第二版课后答案第三章(田泽)

發(fā)布時間:2023/12/13 综合教程 19 生活家
生活随笔 收集整理的這篇文章主要介紹了 【嵌入式】嵌入式系统开发与应用第二版课后答案第三章(田泽) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

自整理,復習用,考試只考前三章——海底淤泥

一、簡答題

1ARM尋址方式有幾種?舉例說明ARM如何進行不同的尋址方式

  6種

  1.立即尋址:    ADD  R0,R0,#1

  2.寄存器尋址:   ADD  R0,R1,R2,#2

  3.寄存器間接尋址: LDR  R0,[R1]

  4.基址加偏址尋址:  1.前:LDR  R0,[R1,#4]  2自動:LDR  R0,[R1,#4]!  3后:LDR  R0,[R1],#4

  5堆棧尋址:1.STMFD  SP!{R1-R7,LR}  2.LDMFD  SP!{R1-R7,LR}

  6塊拷貝尋址:1.LDMIA  R0!,{R2-R9}  2.STMIA  R1,{R2-R9}

  7相對尋址:MOV  PC,R14

2簡述ARM指令分類以及指令格式形式

  1.數(shù)據(jù)處理指令  <op>{<cond>}{S}Rd,Rn,#<32位操作數(shù)>  <op>{<cond>}{S}Rd,Rn,Rm,{<shift>}

  2.Load/Store指令  LDR|STR{<cond>}{B}{T}Rd,[Rn,<offset>]{!}  LDR|STR{<cond>}{B}{T}Rd,[Rn]<offset>  

            LDR|STR{<cond>}{B}{T}Rd,LABEL

            LDM|STM<cond>}<add mode> Rn{!},<registers>  SWP{<cond>}{B}Rd,Rm,[Rn]

  3.狀態(tài)寄存器與通用寄存器之間的傳送指令  MRS{<cond>}Rd,CPSR|SPSR

  4轉移指令  B{L}{<cond>} <target address>

  5異常中斷產(chǎn)生指令  SWI{<cond>} <24位立即數(shù)>  BKPT {immed_16}  CLZ{cond} Rd,Rm

  6協(xié)處理器指令 CDP{<cond>} <CP#>,<Copl>,CRd,CRn,CRm{,<Cop2>}

3假設SP的內(nèi)容為0x8000,寄存器R1、R2的內(nèi)容分別為0x01與0x10,存儲器內(nèi)容為空,執(zhí)行下述指令后,說明PC如何變化。存儲器以及寄存器內(nèi)容如何變化。

  STMFD  sp!,{R1,R2}  0x8000<-0x10  0x7996<-0x10  sp=0x7996

  LDMFD  sp!,{R1,R2}  r1<-[0x8000]  r2<-[0x7996]  sp=0x7996

4試比較ARM指令集與Thumb指令集的異同,并簡述各自的特點

  ARM指令是31位二進制編碼

  Thumb指令是16位二進制編碼

  支持Thumb指令的ARM微處理器都可以執(zhí)行ARM指令

5簡述Load指令與Store指令的功能

  Load  寫

  Store  讀

6ARM處理器如何進入和退出Thumb指令模式

  進入:1.BX R0  R0最低位置1  2.利用異常進入

  退出:2.BX R0  R0最低位置0  2.利用異常退出

7簡述ARM協(xié)處理器指令的分類

  1.用于ARM處理器的初始化ARM協(xié)處理器的數(shù)據(jù)操作指令

  2.用于ARM處理器的寄存器和ARM協(xié)處理器之間的數(shù)據(jù)傳送指令

  3.用于ARM協(xié)處理器的寄存器和內(nèi)存單元之間的傳送數(shù)據(jù)

8簡述ARM匯編語言中的偽操作、宏指令和偽指令的含義,偽操作和偽指令都分為哪幾類?

  偽操作:特殊指令助記符號

  宏指令:一段獨立的程序代碼,可以插入源程序

  偽指令:特殊指令助記符號

  偽操作:

    1符號定義  2數(shù)據(jù)定義  3匯編控制

    4框架描述  5信息報告  6其他

  偽指令:

    ADR、ADRL、LDR、NOP

9如何在匯編語言中定義和使用宏

  使用#define

10ARM指令與Thumb指令有何異同

  ARM指令是32位二進制編碼

  Thumb指令是16位二進制編碼

11簡述IRQ和FIQ異常中斷處理程序中所使用的的__irq的作用

  在程序內(nèi)部增加中斷保護的代碼

12簡述#include<頭文件.h>與#inlcude“頭文件.h”的區(qū)別

  <>標準頭文件

  “”自定義頭文件

13簡述局部變量和全局變量的區(qū)別

  局部變量作用域在局部范圍

  全局變量作用域在全局范圍

14函數(shù)的存儲類說明符有幾種?各自的作用是什么?

  static:表示本文件定義前和非本文件定義的文件中,該函數(shù)不能被調用

  extern:表示該函數(shù)是全程序可見的

15變量的存儲類型是有幾種?各自的作用是什么?

  auto——自帶存儲類型——局部

  register——寄存器存儲類型——寄存器提高速度

  entern——外部存儲類型——全局

  static——靜態(tài)存儲類型

16變量在內(nèi)存中存儲方式有幾種?分別是什么?

  字符,整形,浮點數(shù)

17函數(shù)的參數(shù)傳遞方式有幾種?分別是什么?

  1.參數(shù)個數(shù)固定的子程序傳遞參數(shù)——使用R0,R1,R2,R3

  2.參數(shù)個數(shù)可變的子程序傳遞參數(shù)——使用R0,R1,R2,R3和數(shù)據(jù)棧,多于4個之后的參數(shù)倒序入棧

18簡述字符串與字符數(shù)組的存儲區(qū)別

  字符串在最后一位有‘’

19修飾符const、volatile、near、far的作用是什么?用在什么地方?

  const——常量修飾符

  volatile——易失性修飾符

  near,far——遠近修飾符

20定義指針變量是如果不進行初始化,可能出現(xiàn)什么問題?

  出現(xiàn)野指針異常

21簡述const int * 和 int * const

  const int *   說明指針指向對象是常量,是常量指針

   int * const  說明指針本身是常量,是指針常量
  const int * const  常量指針常量指向常量

22 char a,int b,shot c ,int d,與char a, shot c,int b,int d各自占用的存儲空間有何區(qū)別?

    char a,int b,shot c ,int d  占4個字

    char a, shot c,int b,int d  占3個字

23ATPCS包括哪些規(guī)則?分別是什么?

  1.寄存器使用規(guī)則

  2.數(shù)據(jù)棧使用規(guī)則

24如何使用內(nèi)嵌匯編編程?使用內(nèi)嵌匯編時需要注意什么?

__asm("指令");
__asm{
  "指令"
  "指令"
  ...
}

  注意__asm是兩個_

25如何在ADS開發(fā)環(huán)境下使用malloc和free?使用 時需要注意什么?

  內(nèi)存單元分配通過C語言完成

26簡述結構類型與聯(lián)合類型的異同。

  結構:每個變量都有獨立空間

  聯(lián)合:所有變量共享一份空間

  都可以儲存不同類型變量

27結構類型中存取成員有幾種方法?簡述他們的區(qū)別。

  結構名.變量名

  結構指針名->變量名

28ARM嵌入式軟件設計中,如何在匯編程序中實現(xiàn)子程序調用?

  使用IMPORT來聲明C程序   import f

  通過BL來調用子程序     bl  f

二、程序設計題

1完成下面操作后,R0的內(nèi)容是什么?

  mov  R1,#5

  add  R0,R1,LSL #3

2請將下面C語言代碼轉換成匯編語言。

  if(a==0||b==1)

  c=d+e

3編寫一段程序實現(xiàn)在C語言中調用匯編語言程序,實現(xiàn)將1KB大小的內(nèi)存塊以字的形式復制到另一內(nèi)存地址

4編寫一段匯編語言程序,用內(nèi)嵌匯編指令實現(xiàn)中斷的使能和禁止

5編寫一段匯編語言程序,實現(xiàn)從ARM到Thumb的轉換

6編寫一段匯編語言程序,實現(xiàn)從Thumb到ARM的轉換

7編寫一段程序,實現(xiàn)匯編語言程序中訪問C語言程序中的變量

8編寫一段程序,利用跳轉表實現(xiàn)程序跳轉

9編寫以字節(jié)為單位的的字符串拷貝子程序,要求從存儲器某處拷貝到另一處。源字符串的起始地址放入R1,長度(以字節(jié)為單位)放入R2,目的字符串的起始地址放入R3

10編寫一段C語言與匯編語言的混合編程代碼,在C語言中調用匯編語言代碼,完成字符串str1和str2內(nèi)容的互換。

總結

以上是生活随笔為你收集整理的【嵌入式】嵌入式系统开发与应用第二版课后答案第三章(田泽)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。