ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:49.50KB ,
资源ID:1335490      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1335490.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】嵌入式系统设计师-64及答案解析.doc)为本站会员(ideacase155)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】嵌入式系统设计师-64及答案解析.doc

1、嵌入式系统设计师-64 及答案解析(总分:36.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)阅读以下关于某嵌入式处理器和 8255 的叙述。 说明 图 1 为使用某嵌入式处理器和 8255 对打印机进行控制的电路图,其中 8255 的中断请求 PC3 接到处理器的中断请求输入端 上,打印机的数据口接在 8255 的 PAOPA7 上,打印机的输出电平 接在8255 的 PC6 上。 为了使用嵌入式处理器对打印机进行控制,在程序设计时,需要将 8255 的 PA 口设置为工作方式 1:PB 口设置在工作方式 0,配置为输入;PC 口的 PCO、PC1、PC2、PC3 和

2、 PC4 定义为输出。 为了在打印机输出为低电平时通过 8255 的 PC3 产生有效的中断请求信号 INTRA,必须使得 A 口的中断请求使能 INTE-1,实际上就是通过 C 口的按位复位操作将 PC6 置 1,整个程序分为四部分:依次是 8255 的初始化,嵌入式处理器的中断初始化,嵌入式处理器的主程序和打印字符的中断处理程序。其中 8255 的端口配置功能如表 1 所示。嵌入式处理器的中断使能控制字含义如表 2 所示,该处理器的典型汇编指令如表 3 所示。 (分数:15.00)(1).根据图 1 所示,通过嵌入式处理器访问 8255 的 PA 口、PB 口和 PC 口对应的地址分别是什

3、么?(请用十六进制描述) 对应的地址: PA 口:_ PB 口:_ PC 口:_(分数:5.00)_(2).在嵌入式处理器的汇编语言中,最简单的指令寻址方式为立即寻址和直接寻址,请回答下面两个汇编语言语句所描述的含义,将答案填写在答题纸的对应栏中。 MOV A, #3AH:_ MOV R4, 3AH:_(分数:5.00)_(3).以下汇编程序用于打印机输出控制,请将下面汇编程序的空白处补充完整,并将解答填入对应栏中。 8255 的 A 口工作在方式 1 输出,初始化程序: INTI55:MOV DPTR, #8003H MOV A, 10100 010B MOVX DPTR,A ;配置 A 口

4、在工作方式 1、B 口在工作方式 0 MOV A, 00001101B MOVX DPTR,A ;将 PC6 口置位 嵌入式处理器的中断初始化程序: INT031: MOV IE,_:开总中断及所有五个中断源用十六进制表示 ANL TCON,#OFEH;规定 INTO 下降沿低电平产生中断请求 嵌入式处理器主程序: (打印存储单元 20H 开始向后的内容,中断处理程序中每次从 20H 中取到需要打印的存储单元地址,直到遇到存储单元里面内容不是 OAH 为止) ORG 0100H MOV RO,#20H ;取打印缓冲区地址 MOV DPTR, #8000H MOV A,_ ;取打印字符 INC

5、RO MOV 20H, RO MOVX DPTR,A ;输出打印 当字符打印结束会产生一次中断,中断服务程序如下: ORG 1300H PRINTER:PUSH PSW :压栈操作 PUSH Acc PUSH RO PUSH DPH PUSH DPL MOV RO,_ ;用十六进制表示 MOV DPTR, #8000H MOVX A,RO ;取打印字符 MOVX DPTR,A ;输出打印 INC RO MOV 20H,RO ;将需要取打印内容的地址放置到 20H 单元 CJNE A,#OAH, NEXT ANL IE,_ ;关 INTO 中断,用十六进制表示 NEXT:POP DPL POP

6、DPH POP _ POP Acc POP PSW RETI(分数:5.00)_二、试题二(总题数:1,分数:21.00)阅读以下关于 C 语言及 C 代码的叙述。 说明 在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中: C 代码 1 是李工为了在嵌入式平台上开发一段可变参数函数,在 X86 平台上实现的一个参数个数可变函数实例。 C 代码 2 是王工在编写软件时,自己编写的内存拷贝函数。 C 代码 3 是赵工编写的一段数据处理的程序,其中 fun0 的含义为从已创建的一个单向链表中查找倒数第 index 个结点。他的设计思路为:首先创建两个指针 ptr1,ptr2

7、,并且都指向链表头,然后 ptr1 向前走 index 步,这样 ptr1 和 ptr2 之间就间隔 index 个结点,然后 ptr1 和 ptr2 同时向前步进,当 ptr1 到达最后一个结点时,ptr2 就是倒数第 index 个结点了。ReverseList()为赵工编写的对已有单向链表进行逆序重排的函数。 C 代码 1 long sum (int i,) int*p,j; long s=0; p= for(j=0;ji;j+) s+=pj; return s; long Sum=sum(3,1,2,3); C 代码 2 static int pent; void*MyMemcpy(v

8、oid*dest, const void*src, int n) char*pDest=(char*)dest; char*pSrc=(char*)src; for(int i=0; in; i+) *(pDest +i)=*(pSrc+i); return dest; C 代码 3 node *fun(node*head, int index) node *ptr1,*ptr2; int i=0: ptr1=head; ptr2=head; if( head=NULL | head-next=NULL ) return ptr1; while (iindex) _; if (ptrl=NUL

9、L) return head; i+; while (ptr1-next !=NULL) ptr1=ptr1-next; _; return_; node* ReverseList (node *head) node *temp1=NULL; node *temp2=NULL; node *temp3=NULL; if (head-next=NULL) | (head=NULL) return head; temp1=head; temp3=temp1-next; temp1-next=NULL; while (temp3-next !=NULL) temp2=temp3; temp3=tem

10、p3-next; _; temp1=temp2; temp3-next=temp1; return_; (分数:21.00)(1).执行 C 代码 1 后,Sum 的值应为多少?请用十进制表示。(分数:7.00)_(2).请问 C 代码 2 中 static 的作用是什么?const 的作用是什么?王工自己编写的内存拷贝函数安全吗?如存在缺陷,请指出缺陷在哪里。(分数:7.00)_(3).仔细阅读并分析 C 代码 3,填补其中的空白处。(分数:7.00)_嵌入式系统设计师-64 答案解析(总分:36.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)阅读以下关于某嵌入式处理

11、器和 8255 的叙述。 说明 图 1 为使用某嵌入式处理器和 8255 对打印机进行控制的电路图,其中 8255 的中断请求 PC3 接到处理器的中断请求输入端 上,打印机的数据口接在 8255 的 PAOPA7 上,打印机的输出电平 接在8255 的 PC6 上。 为了使用嵌入式处理器对打印机进行控制,在程序设计时,需要将 8255 的 PA 口设置为工作方式 1:PB 口设置在工作方式 0,配置为输入;PC 口的 PCO、PC1、PC2、PC3 和 PC4 定义为输出。 为了在打印机输出为低电平时通过 8255 的 PC3 产生有效的中断请求信号 INTRA,必须使得 A 口的中断请求使

12、能 INTE-1,实际上就是通过 C 口的按位复位操作将 PC6 置 1,整个程序分为四部分:依次是 8255 的初始化,嵌入式处理器的中断初始化,嵌入式处理器的主程序和打印字符的中断处理程序。其中 8255 的端口配置功能如表 1 所示。嵌入式处理器的中断使能控制字含义如表 2 所示,该处理器的典型汇编指令如表 3 所示。 (分数:15.00)(1).根据图 1 所示,通过嵌入式处理器访问 8255 的 PA 口、PB 口和 PC 口对应的地址分别是什么?(请用十六进制描述) 对应的地址: PA 口:_ PB 口:_ PC 口:_(分数:5.00)_正确答案:()解析:8000H 8001H

13、 8002H 解析 本题考查嵌入式处理器硬件及汇编语言相关知识。 从题中给出的电路图中可以看出,8255 控制芯片的 CS 信号的有效电平为低电平。其对应的 CS 由嵌入式处理器地址线中的 A15A2 通过“或门”进行控制,从这里可以看出,要使得 8255 的片选信号 CS 有效,必须使得 A15 为 1,A14A2 都为 0。 由题中表 1 提供的端口访问控制表及电路图可知,如果要访问 8255 的 PA 口,必须使得 A1、AO 都为0,PB 口访问时 Al 为 0、A0 为 1,PC 口访问时 A1 为 1,A0 为 0。 因此,结合 8255 的片选信号 CS 控制,以及 A1、A0

14、对于端口访问的控制,即可得到使用嵌入式处理器进行 8255 的 PA、PB、PC 口访问时的地址。(2).在嵌入式处理器的汇编语言中,最简单的指令寻址方式为立即寻址和直接寻址,请回答下面两个汇编语言语句所描述的含义,将答案填写在答题纸的对应栏中。 MOV A, #3AH:_ MOV R4, 3AH:_(分数:5.00)_正确答案:()解析:将 3AH 立即数传送到 A 中 将 3AH 存储单元的内容传送到 R4 中解析 立即数的传送指令和直接寻址指令是两种最基本的汇编指令。其中立即数的表示是在进制数前加#号。(3).以下汇编程序用于打印机输出控制,请将下面汇编程序的空白处补充完整,并将解答填入

15、对应栏中。 8255 的 A 口工作在方式 1 输出,初始化程序: INTI55:MOV DPTR, #8003H MOV A, 10100 010B MOVX DPTR,A ;配置 A 口在工作方式 1、B 口在工作方式 0 MOV A, 00001101B MOVX DPTR,A ;将 PC6 口置位 嵌入式处理器的中断初始化程序: INT031: MOV IE,_:开总中断及所有五个中断源用十六进制表示 ANL TCON,#OFEH;规定 INTO 下降沿低电平产生中断请求 嵌入式处理器主程序: (打印存储单元 20H 开始向后的内容,中断处理程序中每次从 20H 中取到需要打印的存储单

16、元地址,直到遇到存储单元里面内容不是 OAH 为止) ORG 0100H MOV RO,#20H ;取打印缓冲区地址 MOV DPTR, #8000H MOV A,_ ;取打印字符 INC RO MOV 20H, RO MOVX DPTR,A ;输出打印 当字符打印结束会产生一次中断,中断服务程序如下: ORG 1300H PRINTER:PUSH PSW :压栈操作 PUSH Acc PUSH RO PUSH DPH PUSH DPL MOV RO,_ ;用十六进制表示 MOV DPTR, #8000H MOVX A,RO ;取打印字符 MOVX DPTR,A ;输出打印 INC RO MO

17、V 20H,RO ;将需要取打印内容的地址放置到 20H 单元 CJNE A,#OAH, NEXT ANL IE,_ ;关 INTO 中断,用十六进制表示 NEXT:POP DPL POP DPH POP _ POP Acc POP PSW RETI(分数:5.00)_正确答案:()解析:#09FH RO 20H #09EH RO 解析 由表 2 知道,对于中断使能控制的访问也就是设置该寄存器的对应位为 1 或者 0,为 1 表示开启对应的中断控制,为 0 表示关闭对应的中断控制,按照对应的各个位来进行立即数配置即可进行各个中断的控制。 程序中的第 2 空处是表示使用寄存器寻址方式获取数据。第

18、 3 空处于中断程序的服务程序中,需要重复从20H 中获取待打印的内容,使用直接寻址方式。第 4 空是指使用“与指令”关闭对应的中断位。第 5 空处为与入栈相对应的出栈操作。二、试题二(总题数:1,分数:21.00)阅读以下关于 C 语言及 C 代码的叙述。 说明 在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中: C 代码 1 是李工为了在嵌入式平台上开发一段可变参数函数,在 X86 平台上实现的一个参数个数可变函数实例。 C 代码 2 是王工在编写软件时,自己编写的内存拷贝函数。 C 代码 3 是赵工编写的一段数据处理的程序,其中 fun0 的含义为从已创建的一个

19、单向链表中查找倒数第 index 个结点。他的设计思路为:首先创建两个指针 ptr1,ptr2,并且都指向链表头,然后 ptr1 向前走 index 步,这样 ptr1 和 ptr2 之间就间隔 index 个结点,然后 ptr1 和 ptr2 同时向前步进,当 ptr1 到达最后一个结点时,ptr2 就是倒数第 index 个结点了。ReverseList()为赵工编写的对已有单向链表进行逆序重排的函数。 C 代码 1 long sum (int i,) int*p,j; long s=0; p= for(j=0;ji;j+) s+=pj; return s; long Sum=sum(3,

20、1,2,3); C 代码 2 static int pent; void*MyMemcpy(void*dest, const void*src, int n) char*pDest=(char*)dest; char*pSrc=(char*)src; for(int i=0; in; i+) *(pDest +i)=*(pSrc+i); return dest; C 代码 3 node *fun(node*head, int index) node *ptr1,*ptr2; int i=0: ptr1=head; ptr2=head; if( head=NULL | head-next=NUL

21、L ) return ptr1; while (iindex) _; if (ptrl=NULL) return head; i+; while (ptr1-next !=NULL) ptr1=ptr1-next; _; return_; node* ReverseList (node *head) node *temp1=NULL; node *temp2=NULL; node *temp3=NULL; if (head-next=NULL) | (head=NULL) return head; temp1=head; temp3=temp1-next; temp1-next=NULL; w

22、hile (temp3-next !=NULL) temp2=temp3; temp3=temp3-next; _; temp1=temp2; temp3-next=temp1; return_; (分数:21.00)(1).执行 C 代码 1 后,Sum 的值应为多少?请用十进制表示。(分数:7.00)_正确答案:()解析:Sum=6 解析 本题考查嵌入式 C 语言编程基础知识。 可变参数函数的应用在嵌入式 C 程序设计中应用非常广泛。在 X86 平台下,参数在堆栈中的存放是按照由底向上进行存储的。因此,在该程序中,sum 函数的第一个参数表示的是在该参数后面还包含有几个参数。在程序体中,使

23、用第一个参数进行参数访问控制,参数的获取方式按照数组方法进行获取。因此,C 代码1 执行后,Sum 的值为 6。(2).请问 C 代码 2 中 static 的作用是什么?const 的作用是什么?王工自己编写的内存拷贝函数安全吗?如存在缺陷,请指出缺陷在哪里。(分数:7.00)_正确答案:()解析:1) static 的作用:是将变量修饰成静态变量,静态变量的存储地址在整个程序的运行执行期间均保留,不会被别的变量占据。 2) const 的作用:是用于冻结一个变量,使其值在程序中不能被进一步改变。 3)不安全,有缺陷。 4)应对形参的有效性进行检查,应判形参 dest、src 指针是否为空,

24、形参 n 是否大于 0,还应保证 dest所指向的内存空间不越界。 解析 在程序设计中,static 变量和 const 变量的应用非常广泛。static变量表示将变量修饰为静态变量,其含义是指其对应的存储空间在整个程序的运行过程中都保持不变,不会像堆栈那样被重复使用。static 即可以用来修饰局部变量,也可以修饰全局变量。 一旦变量定义为是 const,则其对应的值不能再被修改。在程序运行中,此变量的值就一直维持在其初始化时候的值。 王工编写的这段程序不安全,存在严重的安全漏洞,具体的缺陷包括: (1)对于指针参数的有效性没有进行任何判断,如果指针为 NULL,这样访问存在严重的安全问题。

25、 (2)参数 n 的有效性也没有进行判断,如果参数 n 对应的空间超过 src 所包含的空间,则函数得到的结果和期待的结果会有所偏差。同样,如果 n 对应的空间超过 dest 所包含的地址空间,则会造成程序的混乱,会将内存冲掉,可能导致灾难性后果。(3).仔细阅读并分析 C 代码 3,填补其中的空白处。(分数:7.00)_正确答案:()解析:ptr1=ptr1-next ptr2=ptr2-next ptr2 temp2-next=temp1 temp3 解析 在单向链表中,对某元素的后继元素的访问只能通过结点中的 next 指针项来获取。按照题目要求,首先创建两个指针 ptr1,ptr2,并且都指向链表头,然后 ptr1 向前走 index 步,这样 ptr1 和ptr2 之间就间隔 index 个结点,然后 ptr1 和 ptr2 同时向前步进,当 ptr1 到达最后一个结点时,ptr2 就是倒数第 index 个结点了。因此,对于第 index 个结点的查找,只需要移动 ptr1 和 ptr2,最后 ptr2 返回的为倒数第 index 个结点。 在逆序排列中,将 temp3 移动到链表尾部,使用 temp2 作为临时变量进行链表翻转。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1