欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1335442       资源大小:49.50KB        全文页数:9页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、嵌入式系统设计师-24 及答案解析(总分: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 和 PC4定义为输出。

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

    3、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口在工作方式 1、B 口在工作方式 0 MOV A, 0000110

    4、1B 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 RO MOV 20H, RO MOVX DPTR,A ;输出打印 当字符打印

    5、结束会产生一次中断,中断服务程序如下: 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 DPH POP _ POP Acc POP PSW RETI(分数:5.00)_

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

    7、ndex个结点,然后 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(void*dest, const void*src, int n) char*pDest=(char*)dest; ch

    8、ar*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=NULL) return head; i+; while (ptr1-next !=NULL) ptr1=ptr1-next;

    9、 _; 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=temp3-next; _; temp1=temp2; temp3-next=temp1; return_; (分数:21.0

    10、0)(1).执行 C代码 1后,Sum 的值应为多少?请用十进制表示。(分数:7.00)_(2).请问 C代码 2中 static的作用是什么?const 的作用是什么?王工自己编写的内存拷贝函数安全吗?如存在缺陷,请指出缺陷在哪里。(分数:7.00)_(3).仔细阅读并分析 C代码 3,填补其中的空白处。(分数:7.00)_嵌入式系统设计师-24 答案解析(总分:36.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)阅读以下关于某嵌入式处理器和 8255的叙述。 说明 图 1为使用某嵌入式处理器和 8255对打印机进行控制的电路图,其中 8255的中断请求 PC3接到处

    11、理器的中断请求输入端 上,打印机的数据口接在 8255的 PAOPA7 上,打印机的输出电平 接在8255的 PC6上。 为了使用嵌入式处理器对打印机进行控制,在程序设计时,需要将 8255的 PA口设置为工作方式 1:PB口设置在工作方式 0,配置为输入;PC 口的 PCO、PC1、PC2、PC3 和 PC4定义为输出。 为了在打印机输出为低电平时通过 8255的 PC3产生有效的中断请求信号 INTRA,必须使得 A口的中断请求使能 INTE-1,实际上就是通过 C口的按位复位操作将 PC6置 1,整个程序分为四部分:依次是 8255的初始化,嵌入式处理器的中断初始化,嵌入式处理器的主程序

    12、和打印字符的中断处理程序。其中 8255的端口配置功能如表 1所示。嵌入式处理器的中断使能控制字含义如表 2所示,该处理器的典型汇编指令如表 3所示。 (分数:15.00)(1).根据图 1所示,通过嵌入式处理器访问 8255的 PA口、PB 口和 PC口对应的地址分别是什么?(请用十六进制描述) 对应的地址: PA口:_ PB口:_ PC口:_(分数:5.00)_正确答案:()解析:8000H 8001H 8002H 解析 本题考查嵌入式处理器硬件及汇编语言相关知识。 从题中给出的电路图中可以看出,8255 控制芯片的 CS信号的有效电平为低电平。其对应的 CS由嵌入式处理器地址线中的 A1

    13、5A2 通过“或门”进行控制,从这里可以看出,要使得 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 对于端口访问的控制,即可得到使用嵌入式处理器进行 8255的 PA、PB、PC 口访问时的地址。(2).在嵌入式处理器的汇编语言中,最简单的指令寻址方式为立即寻址和直接寻址,请回答下面两个汇编语言语句所描述的含义,

    14、将答案填写在答题纸的对应栏中。 MOV A, #3AH:_ MOV R4, 3AH:_(分数:5.00)_正确答案:()解析:将 3AH立即数传送到 A中 将 3AH存储单元的内容传送到 R4中解析 立即数的传送指令和直接寻址指令是两种最基本的汇编指令。其中立即数的表示是在进制数前加#号。(3).以下汇编程序用于打印机输出控制,请将下面汇编程序的空白处补充完整,并将解答填入对应栏中。 8255的 A口工作在方式 1输出,初始化程序: INTI55:MOV DPTR, #8003H MOV A, 10100 010B MOVX DPTR,A ;配置 A口在工作方式 1、B 口在工作方式 0 MO

    15、V 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 RO MOV 20H, RO MOVX DPTR,A

    16、 ;输出打印 当字符打印结束会产生一次中断,中断服务程序如下: 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 DPH POP _ POP Acc POP PSW RE

    17、TI(分数:5.00)_正确答案:()解析:#09FH RO 20H #09EH RO 解析 由表 2知道,对于中断使能控制的访问也就是设置该寄存器的对应位为 1或者 0,为 1表示开启对应的中断控制,为 0表示关闭对应的中断控制,按照对应的各个位来进行立即数配置即可进行各个中断的控制。 程序中的第 2空处是表示使用寄存器寻址方式获取数据。第 3空处于中断程序的服务程序中,需要重复从20H中获取待打印的内容,使用直接寻址方式。第 4空是指使用“与指令”关闭对应的中断位。第 5空处为与入栈相对应的出栈操作。二、试题二(总题数:1,分数:21.00)阅读以下关于 C语言及 C代码的叙述。 说明 在

    18、开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中: C代码 1 是李工为了在嵌入式平台上开发一段可变参数函数,在 X86平台上实现的一个参数个数可变函数实例。 C代码 2 是王工在编写软件时,自己编写的内存拷贝函数。 C代码 3 是赵工编写的一段数据处理的程序,其中 fun0的含义为从已创建的一个单向链表中查找倒数第 index个结点。他的设计思路为:首先创建两个指针 ptr1,ptr2,并且都指向链表头,然后 ptr1向前走 index步,这样 ptr1和 ptr2之间就间隔 index个结点,然后 ptr1和 ptr2同时向前步进,当 ptr1到达最后一个结点时,p

    19、tr2 就是倒数第 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(void*dest, const void*src, int n) char*pDest=(char*)dest; char*pSrc=(char*)src; for(int i=0; in; i+) *(pD

    20、est +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=NULL) return head; i+; while (ptr1-next !=NULL) ptr1=ptr1-next; _; return_; node* ReverseList (node *head) n

    21、ode *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=temp3-next; _; temp1=temp2; temp3-next=temp1; return_; (分数:21.00)(1).执行 C代码 1后,Sum 的值应为多少?请用十进制表示。(分数:7.00)_

    22、正确答案:()解析:Sum=6 解析 本题考查嵌入式 C语言编程基础知识。 可变参数函数的应用在嵌入式 C程序设计中应用非常广泛。在 X86平台下,参数在堆栈中的存放是按照由底向上进行存储的。因此,在该程序中,sum 函数的第一个参数表示的是在该参数后面还包含有几个参数。在程序体中,使用第一个参数进行参数访问控制,参数的获取方式按照数组方法进行获取。因此,C 代码1执行后,Sum 的值为 6。(2).请问 C代码 2中 static的作用是什么?const 的作用是什么?王工自己编写的内存拷贝函数安全吗?如存在缺陷,请指出缺陷在哪里。(分数:7.00)_正确答案:()解析:1) static

    23、的作用:是将变量修饰成静态变量,静态变量的存储地址在整个程序的运行执行期间均保留,不会被别的变量占据。 2) const的作用:是用于冻结一个变量,使其值在程序中不能被进一步改变。 3)不安全,有缺陷。 4)应对形参的有效性进行检查,应判形参 dest、src 指针是否为空,形参 n是否大于 0,还应保证 dest所指向的内存空间不越界。 解析 在程序设计中,static 变量和 const变量的应用非常广泛。static变量表示将变量修饰为静态变量,其含义是指其对应的存储空间在整个程序的运行过程中都保持不变,不会像堆栈那样被重复使用。static 即可以用来修饰局部变量,也可以修饰全局变量。

    24、 一旦变量定义为是 const,则其对应的值不能再被修改。在程序运行中,此变量的值就一直维持在其初始化时候的值。 王工编写的这段程序不安全,存在严重的安全漏洞,具体的缺陷包括: (1)对于指针参数的有效性没有进行任何判断,如果指针为 NULL,这样访问存在严重的安全问题。 (2)参数 n的有效性也没有进行判断,如果参数 n对应的空间超过 src所包含的空间,则函数得到的结果和期待的结果会有所偏差。同样,如果 n对应的空间超过 dest所包含的地址空间,则会造成程序的混乱,会将内存冲掉,可能导致灾难性后果。(3).仔细阅读并分析 C代码 3,填补其中的空白处。(分数:7.00)_正确答案:()解

    25、析: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作为临时变量进行链表翻转。


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开