嵌入式开发面试题2
嵌入式 面试题

嵌入式面试题一、介绍嵌入式系统嵌入式系统是一种专门设计用于特定应用的计算机系统,通常被嵌入在其他设备或系统中,以完成特定的功能。
这些系统通常运行在微处理器或微控制器上,并且具有实时性要求。
嵌入式系统广泛应用于各个领域,如汽车、通信、医疗、家电等。
二、嵌入式系统面试题1:嵌入式系统的特点1. 实时性要求:嵌入式系统通常需要满足实时性要求,能够在给定的时间范围内响应和执行任务。
2. 资源受限:由于嵌入式系统的应用场景多样,往往会受到资源限制,包括处理器性能、存储器容量、功耗等。
3. 可靠性要求:嵌入式系统在应用中通常需要长时间运行,并且对系统的稳定性和可靠性要求较高。
4. 实时操作系统:嵌入式系统通常使用实时操作系统(RTOS)来满足实时性要求,并提供多任务处理和资源管理等功能。
5. 低功耗设计:嵌入式系统往往需要在有限的电源条件下运行,因此需要对功耗进行优化设计,延长系统的使用寿命。
三、嵌入式系统面试题2:嵌入式软件开发1. 嵌入式软件开发语言:嵌入式系统的软件通常使用C、C++等高级语言进行开发,也有部分系统使用汇编语言进行优化。
2. 嵌入式系统的BOOT流程:嵌入式系统的启动流程通常包括上电初始化、引导加载、系统初始化等步骤。
3. 驱动程序开发:嵌入式系统中的各种外设通常需要开发相应的驱动程序来进行控制和管理。
4. 通信协议:嵌入式系统通常需要使用各种通信协议与其他系统进行交互,如UART、SPI、I2C等。
5. 调试和测试:嵌入式系统的软件开发过程中需要进行调试和测试,以保证系统的正常运行和稳定性。
四、嵌入式系统面试题3:硬件相关知识1. 微控制器和微处理器:嵌入式系统通常由微控制器或微处理器作为核心部件,进行数据处理和控制操作。
2. 存储器:嵌入式系统中的存储器包括闪存、存储芯片等,用于存储程序代码和数据。
3. 外设接口:嵌入式系统通常需要与各种外设进行连接和通信,如显示屏、传感器、通信模块等。
嵌入式开发人员面试题目

1 / 2姓名:__________ 电话:_________________ 期望薪水:_______ 一,C 语言基础语言基础1,用变量a 给出下面的定义给出下面的定义a) 一个整型数(An integer )b)一个指向整型数的指针(一个指向整型数的指针( A pointer to an integer )c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an integer )d)一个有10个整型数的数组(个整型数的数组( An array of 10 integers )e) 一个有10个指针的数组,该指针是指向一个整型数的。
(An array of 10 pointers to integers ) f) 一个指向有10个整型数数组的指针(个整型数数组的指针( A pointer to an array of 10 integers )g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function thattakes an integer as an argument and returns an integer )h) 一个有10个指针的数组,个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数(该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )2,关键字static 的作用是什么?的作用是什么?3,关键字const 有什么含意?有什么含意?4,关键字volatile 有什么含意?5,中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C 支持中断。
嵌入式面试题目及答案

嵌入式面试题目及答案嵌入式系统是当今科技领域中不可或缺的一部分,它在我们日常生活和工业生产中起到了重要的作用。
而嵌入式系统的开发与设计需要专业的技术和知识,因此在面试过程中,相应的题目是必不可少的。
本文将为您提供一些常见的嵌入式面试题目并给出相应的答案,以供参考。
1. 请简要解释什么是嵌入式系统?嵌入式系统(Embedded System)是一种特定功能电子设备中的计算机系统,它嵌入到其他产品中,以执行特定的任务或控制特定的功能。
嵌入式系统的关键特点包括实时性、低功耗、体积小、成本低以及对于硬件和软件的高度整合。
2. 嵌入式系统与通用计算机有何区别?嵌入式系统与通用计算机之间存在以下区别:- 功能:嵌入式系统的设计旨在执行特定任务,如控制、数据采集、嵌入式通信等,而通用计算机则具备更多的通用性,能够执行各种不同的任务。
- 硬件:嵌入式系统通常使用嵌入式处理器,集成了所需的硬件接口和外设,以适应特定的功能要求,而通用计算机则侧重于提供更高的计算和存储能力。
- 实时性:嵌入式系统通常需要满足实时性需求,能够及时响应输入和输出,而通用计算机则更关注处理复杂的用户交互和计算任务。
3. 请列举一些常见的嵌入式操作系统。
常见的嵌入式操作系统包括:- 实时操作系统(RTOS):如FreeRTOS、VxWorks、QNX等,具有实时性、可靠性和可嵌入性等特点。
- Linux嵌入式系统:如Linux内核、Debian、Buildroot等,提供了完整的开发环境和强大的功能。
- 嵌入式Windows系统:如Windows CE、Windows Embedded等,提供了Windows桌面操作系统的子集。
4. 请简要介绍一下嵌入式系统的调试方法。
常用的嵌入式系统调试方法包括:- 打印调试:通过在代码中插入打印语句,输出调试信息,用于查看程序流程以及变量的值。
- 软件仿真调试:使用仿真器或调试器连接到目标硬件上,在宿主机上进行调试操作,方便观察和跟踪代码的执行。
嵌入式系统工程师常见面试题

嵌入式系统工程师常见面试题在嵌入式系统工程领域,面试是企业筛选合适人才的重要环节。
以下是一些常见的嵌入式系统工程师面试题,涵盖了硬件、软件、操作系统等多个方面。
一、硬件相关1、请简述一下电阻、电容、电感的基本特性及其在电路中的作用。
电阻主要用于限制电流、分压和产生热量。
电容可以存储电荷,用于滤波、耦合和定时等电路。
电感则能储存磁场能量,常用于滤波、谐振和变压器等。
2、解释一下什么是 PCB(印刷电路板)布线的阻抗控制,以及为什么它很重要?PCB 布线的阻抗控制是确保信号在传输过程中保持稳定和减少反射的关键。
不同的信号速率和频率对阻抗有特定要求。
如果阻抗不匹配,会导致信号失真、噪声增加和传输错误,影响系统的性能和可靠性。
3、谈谈你对ADC(模数转换器)和DAC(数模转换器)的理解,包括它们的工作原理和主要性能指标。
ADC 将模拟信号转换为数字信号,工作原理有逐次逼近型、积分型等。
主要性能指标包括分辨率、转换精度、转换速度等。
DAC 则相反,将数字信号转换为模拟信号。
其性能指标类似 ADC,但还包括建立时间等。
4、如何降低系统的功耗,特别是在嵌入式设备中?可以从多个方面入手,如选择低功耗的芯片和器件,优化电路设计,合理设置电源管理模式,采用动态电压频率调整技术,以及在软件中控制硬件模块的电源开关等。
二、软件相关1、解释一下什么是中断,以及在嵌入式系统中如何处理中断?中断是指 CPU 在执行正常程序时,由于外部事件或内部异常而暂停当前程序,转而去执行相应的中断服务程序。
在嵌入式系统中,需要设置中断向量表,配置中断优先级,编写中断服务程序,并确保中断处理的及时性和准确性。
2、描述一下你对实时操作系统(RTOS)的理解,以及它与普通操作系统的区别。
实时操作系统强调任务的确定性和及时性,能在规定的时间内完成关键任务。
与普通操作系统相比,它具有更短的中断响应时间、更严格的任务调度策略和更高的可靠性。
3、谈谈你对 C 和 C++在嵌入式系统开发中的应用和优缺点。
嵌入式系统工程师面试题

嵌入式系统工程师面试题在当今科技迅速发展的时代,嵌入式系统工程师的需求日益增长。
对于招聘企业来说,如何筛选出合适的嵌入式系统工程师至关重要。
以下是一些常见的嵌入式系统工程师面试题,希望能帮助企业找到理想的人才。
一、基础知识1、请简要介绍一下嵌入式系统的概念和特点。
嵌入式系统是一种以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。
其特点包括专用性强、实时性高、资源受限、可靠性高、软件固化等。
2、谈谈你对微控制器(MCU)和微处理器(MPU)的理解,以及它们在嵌入式系统中的应用场景。
微控制器通常集成了处理器核心、存储器、I/O 接口等,具有体积小、成本低、功耗低的特点,适用于控制简单、成本敏感的应用,如家电控制、小型仪器仪表等。
微处理器则具有更强大的计算能力和更丰富的接口,常用于复杂的计算任务和高性能的嵌入式系统,如智能手机、平板电脑等。
3、解释一下什么是实时操作系统(RTOS),并列举几种常见的RTOS。
实时操作系统是指能够在规定的时间内完成特定任务的操作系统。
它具有响应迅速、确定性高的特点。
常见的 RTOS 有 FreeRTOS、RTX、uC/OS 等。
4、简述嵌入式系统中常见的存储设备类型,如 Flash、EEPROM、SRAM 等,并说明它们的特点和应用场景。
Flash 具有非易失性、大容量、成本低的特点,常用于存储程序和数据。
EEPROM 可以按字节擦写,适用于存储少量需要频繁修改的数据。
SRAM 速度快,但成本高、容量小,常用于高速缓存。
二、编程语言和开发工具1、您在嵌入式系统开发中常用的编程语言是什么?请分享一些使用该语言的经验和技巧。
C 和C++是嵌入式系统开发中常用的编程语言。
在使用C 语言时,要注意指针的正确使用,避免内存泄漏和越界访问。
C++中的面向对象特性可以提高代码的可维护性和可扩展性,但要注意资源的管理。
2、谈谈你对嵌入式系统开发中交叉编译的理解,以及如何进行交叉编译。
嵌入式软件工程师面试题

嵌入式软件工程师面试题1. 题目描述:嵌入式软件工程师是一个专业领域的岗位,需要有扎实的编程技能和深厚的硬件知识。
本文通过提供一些典型的嵌入式软件工程师面试题,帮助读者了解该岗位要求以及面试过程中可能遇到的问题。
2. 问题一:请简要介绍什么是嵌入式系统。
嵌入式系统是指集成了计算机硬件和软件的特定功能的计算机系统。
与通用计算机系统不同,嵌入式系统通常被用于特定应用领域,具有紧凑的尺寸、低功耗、实时性和可靠性等要求。
3. 问题二:嵌入式软件工程师的主要职责是什么?嵌入式软件工程师的主要职责包括:- 设计、开发和测试嵌入式软件系统;- 理解硬件平台和相关的技术要求;- 编写高效的代码并进行性能优化;- 解决系统的稳定性和兼容性问题;- 进行单元测试和集成测试。
4. 问题三:请列举一些您在嵌入式软件开发中常用的编程语言和工具。
嵌入式软件开发中常用的编程语言包括:- C/C++:C语言和C++语言是嵌入式软件开发的主要编程语言,具有高效、灵活和跨平台的特性;- Assembly语言:用于对硬件进行底层编程的语言,可以直接操作寄存器和内存;- Python:用于快速原型开发、脚本编写和测试等。
常用的嵌入式软件开发工具包括:- 嵌入式集成开发环境(IDE):如Eclipse、IAR Embedded Workbench等,用于编写、编译和调试嵌入式软件;- 仿真器和调试器:如JTAG、OpenOCD等,用于调试和监控嵌入式系统;- 版本控制工具:如Git、SVN等,用于团队协作和代码版本管理。
5. 问题四:请谈谈您在嵌入式系统开发中遇到的最大挑战是什么?您是如何解决的?在嵌入式系统开发中,最大的挑战之一是硬件与软件的协同工作。
硬件和软件开发之间需要密切合作,以确保系统的正确性和稳定性。
解决这个问题的关键在于团队合作和良好的沟通。
我在项目中与硬件工程师进行频繁的讨论和协作,以确保软件与硬件的接口设计是一致的。
此外,我也学习了硬件方面的基础知识,能够更好地理解硬件需求和限制,从而更好地进行软件开发。
嵌入式软件工程师面试题

嵌入式软件工程师面试题嵌入式软件工程师主要从事嵌入式软件开发工作。
涉及应用层以及底层软件开发和设计工作。
下面就由店铺为大家介绍一下嵌入式软件工程师面试题的文章,欢迎阅读。
嵌入式软件工程师面试题篇11、将一个链表逆序LinkList *reverse(LinkList *head){LinkList *p1,*p2 =NULL,*p3 =NULL;if(head ==NULL||head->next ==NULL)return head;p1 =head->next;while(p1!=NULL){p3 =p1->next;p1->next =p2;p2 =p1;p1 =p3;}head->next =p2;// head = p2;return head;}2、计算一个字节里(byte)里面有多少bit被置1int cc =c;while(i++<8){if((cc&1)==1){count++;}cc =cc>>1;}return count;}int main(){const int c =0xcf;printf("%d\n",comb(c));return1;}嵌入式软件工程师面试题篇21、在一个字符串中找到可能的最长的子字符串memcpy(substring,&shortstring[j],i);substring[i]='\0';if(strstr(longstring,substring)!=NULL)return substring;}}return NULL;}void main(void){char*str1 ="aocdfe";char*str2 ="pmcdfa";char*comman =NULL;if(strlen(str1)>strlen(str2))comman=commanstring(str2,str1);elsecomman =commanstring(str1,str2);printf("the longest comman string is:%s\n",comman); }2、字符串转换为整数}void IntegerToString(char s[],int n){int i=0,sign;if((sign=n)<0)//如果是负数,先转成正数n=-n;do//从个位开始变成字符,直到最高位,最后应该反转{s[i++]=n%10+'0';}while((n=n/10)>0);//如果是负数,补上负号if(sign<0)s[i++]='-';s[i]='\0';//字符串结束reverse(s);}void main(){int m;char c[100];m =215;IntegerToString(c,m);printf("integer = %d string = %s\n",m,c);}嵌入式软件工程师面试题篇31、整数转换为字符串int rtn =0;// 用作返回for(i =strlen(str)-1;i >=0;i--) {rtn +=(str[i]-'0')*weight;//weight *=10;// 增重}return rtn;}void main(){char str[32];printf("Input a string :");gets(str);printf("%d\n",Atoi(str));}2、将一个字符串逆序。
嵌入式开发面试题

嵌入式开发面试题1.你平时会看哪些方面的书籍?喜欢浏览哪些网站?2.当你遇到问题时通常如何解决?3.谈谈你对.Net与Java的看法4.你对公司要求加班有什么样的看法?5.简述你对XML Web Service 的原理的认识?答:利用SOAP(简单对象访问协议)在http上执行远程方法的调01. 为什么要在一个团队中开展软件测试工作?因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。
在测试的过程发现软件中存在的问题,及时让开发人员得知1. 有没有一个工具可以帮助查找python的bug和进行静态的代码分析?有,PyChecker是一个python代码的静态分析工具,它可以帮助查找python代码的bug, 会对代码的复杂度和格式提出警告Pylint是另外一个工具可以进行coding standard检查。
2. 如何在一个functio1.抽象类和接口有什么异同?10分答:接口用于规范,抽象类用于共性。
接口中只能声明方法,属性,事件,索引器。
而抽象类中可以有方法的实现,也可以定义非静态的类变量。
抽象类是类,所以只能被单继承,但是接口却可以一次实现多个。
抽象类可以提供某些方法的解:#include #include struct fenshu { int fz; int fm; }; main() { int I; struct fenshu f1,f2,result; printf(“input f1.fz:”); scanf(“%d”, printf(“input f1.fm:”); scanf(“%d”, printf(“input f2.fz:”); scanf(“input f2.fz); printf(“iEJB能为我们提供中间件服务Remote Method Invocations(RMI)远程方法调用(跨越JVM,网络,实现一个对象调用另一个对象的方法) Load Balancing负载均衡(如多个Tomcat组成一个Server集群)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
●8086的堆栈采取向下生长的方式,在压入时__(41)__。
(41) A. SP 先减,再压入数据 B. 先压入数据,SP 再减C. SP 先加,再压入数据D. 先压入数据,SP 再加<解析>:考查8086堆栈的基础知识。
个人觉得,堆栈是嵌入式的基础东西,自然就是考试重点,以后或许会多考单片机ARM的结构。
8086处理器均采用满递减堆栈。
入栈时,先减地址,后进数据;出栈时,先出数据,后减地址。
PUSH SRL:先将栈顶指针SP向上移两位,即SP-2,指向一个新的字存储单元,再将操作数的内容存入SP所指的字存储单元。
POP DST:将当前栈顶指针SP所指向字单元内容送向DST,然后将SP下移两位,SP-2。
参考答案:A。
●若对某一寄存器某几位清零,可用一条指令__(42)__处理。
今天老大让我针对一个面试者出些嵌入式方面的面试题,主要是想对他的技术深度进一步了解。
我就出了下面这些问题,每个问题背后都是考察一个嵌入式程序员应该具备的相关技能。
当然这些只是我的个人理解,不一定正确。
在此与大家分享,只是希望朋友们能够得到一点点启发:如何抓住每一个契机展现你的与众不同?同样的技术问题,很多人可能都能够回答得对,但有些人只是知其然而不知所以然。
其实面试官每一个问题背后通常都隐藏着一个考察点。
如果我们能够透过问题看到背后的实质,在回答出答案的时候还能够借机发挥,我相信90和100分的差别就出来了。
哪个面试官不喜欢招一个喜欢思考、能透过现象看本质的员工呢~下面我们来看看嵌入式C面试题背后到底藏何玄机~。
以下仅是个人的一些想法,欢迎大家讨论,拍砖的轻点~~////////////////////////////1、 int a=2,b=11,c=a+b++/a++; 则c值为多少?【考点】编码规范。
表面上考察你对运算符优先级的掌握程度,但实际上优先级这些玩意很难死记硬背得住?大家的疑惑不就是运算符的结合顺序么?那么如何去避免呢?c=a+((b++)/(a++))不就行了么,其实问题背后考察的是你的编码规范,如何写清晰易懂的代码,如何在一个团队中让自己的代码狠容易毫无偏差的让新人看懂~2、 Static用在全局变量定义和函数内部局部变量定义有何区别?【考点】编码规范及模块化设计。
Static变量的两个属性涉及存储位置及可见域。
在大型的程序设计中static全局变量可以有效的避免名字空间的重复及无意的变量引用,这样可以有效的提高程序设计的安全性,同时也利用模块化作业3、在程序设计中哪些地方需要使用define?如何用define来定义一年内有多少小时的常量?【考点】可移植性。
嵌入式程序设计的特点就是软硬件平台可变性,有效利用define常量可以提高程序的可移植性,这样改动方便,不易出错4、 Define宏语句和inline函数有什么区别?【考点】时空效率及宏的副作用。
嵌入式系统平台通常存储资源有限,但同时又对实时性有一定的要求,二者如何权衡需要考虑。
Define宏语句相对于函数调用能提高运行时间性能,但消耗了空间,并且不标准的宏语句定义在不标准的编码中更容易出现副作用,因此inline函数则是define语句的完美替代品。
小资金干大事正是嵌入式的终极目标!5、哪些地方可以用到const?const变量和函数输入参数用const修饰有哪些作用?【考点】程序设计可靠性。
Const只读变量可以有效克服define常量的一些弊端,如无类型安全检查。
Const形参可以有效避免程序内部更改无意的更改。
人非圣贤孰能无误,所以我们要将这些可能的失误统统交给智能的编译器,这样就可以将错误扼杀在摇篮中6、 Int,short,char在32位平台下各占几个字节?一个结构体含有int、short、char变量各一个,结构体占据的总内存空间多少?【考点】跨平台移植。
嵌入式并非x86,其硬件平台具备很大的差异性,同为int在不同的架构体系下可能占据的字节数是不一样的。
不同的平台也有不同的编译器,其在变量对齐方面可能有不同的特性。
因此在结构体定义时如何设计成员变量的顺序以有效减少占据的内存空间,以及如何填充特定字段保证访问对齐问题,都是嵌入式系统结构体设计时应该考虑的跨平台可移植性问题7、如何将unsigned int明确定义为一个32位类型?define和typedef有何区别?【考点】跨平台移植。
define和typedef都可以实现变量类型重定义,但是typedef类型的指针变量可以有效去除变量定义的二义性。
在嵌入式的工程项目中,通常为了保证数据类型的统一且便于跨平台移植时修改数据类型方便,通常都会单独定义一个数据类型的头文件,把所有用到的数据类型typedef成所熟悉的形式8、有没有用过volatile?有哪些典型的适用场合?【考点】编译优化的副作用。
通常为了提高程序运行的效率,编译器会自动进行一些优化,如将变量放在寄存器中,以减少存储器访问次数,在数据长期未变时不重新读取内存等等。
但是优化有时会带来问题,如硬件寄存器、多任务共享变量、中断和主程序共享变量,优化有可能带来数据访问不一致性的问题,因此对于这些个别变量,我们需要用volatile声明告诉编译器取消优化9、参数传递有哪些形式?寄存器和堆栈传递各有什么优缺点?【考点】编译优化、调用性能、接口设计。
每种体系结构及对应的编译器对参数传递都有自己的规定。
参数传递并非总是通过堆栈进行的,参数入栈出栈是需要耗费时间的,编译器总是尽量优化利用寄存器来传递参数,因为寄存器的访问效率要高,但当参数过多时,将放弃优化从而用栈传递参数。
因此为了提高调用性能,应尽量减少参数个数,太多时可以将所有参数重新定义为一个结构体,利用结构体指针来传递参数。
在函数接口设计时应考虑硬件平台和编译器的特性,以灵活定义参数形式10、中断服务程序设计应注意的问题?中断触发方式的选择?中断处理太长怎么办?中断处理程序如何与主应用程序交互?【考点】中断服务程序设计。
嵌入式程序最大的特点是经常需要和硬件打交道,中断是接收外界输入的典型方式,通常都决定了系统运行流程,因此如何高效不丢失的处理中断是每个嵌入式程序员应考虑的问题11、 TCP/IP和OSI七层模型是如何划分的?各层的功能,这么设计有什么好处?【考点】层次化软件设计保证可移植性。
分层模型最大的好处就是某一层变化了,只要其提供上层的接口未变,那么上层就无需做任何改动。
因此只需要更改本层的实现即可。
嵌入式平台因为软硬件多变性,为了最大限度的利用先前的成果,软件设计一定要遵循这种层次化模型,这样才能保证其可移植性12、 TCP和UDP的区别?各种网络互连设备都用在哪一层?如何建立链接?如何进行拥塞控制?【考点】协议设计可靠性及缓冲区设计管理。
TCP和UDP的最大区别在于可靠性,TCP通过三次握手协议及超时机制安全可靠的建立或者释放连接。
协议设计最大的问题就是如何保证效率合可靠性,TCP的设计为我们提供了一个参考。
而滑动窗口机制可以有效的进行拥塞控制,但窗口大小的设计则关系到内存利用率及缓冲效率可靠性等问题。
在嵌入式的驱动程序设计中,经常会开辟缓冲区来进行流量控制及防止数据覆盖,缓冲区的大小设计则需要更加具体的应用情况设计才能保证可靠性合灵活性(42)A. AND B. OR C. NOT D. XOR<解析>:考查汇编语言的基础知识,简单到极点了,这个分数拿不到,基本过不了。
AND(与):有0为0。
OR(或):有1为1。
NOT(非):取反。
XOR(异或):相同为0,不同为1。
要对寄存器的某几位清零,应用AND。
例如对11011010的中间四位清零:11011010 AND 11000011 得11000010。
个人认为:用XOR指令,一条指令是做不到的,实际中不可取。
参考答案:A。
●指令周期是指__(43)__。
(43) A. CPU 从主存取出一条指令的时间B. CPU 执行一条指令的时间C. CPU 从主存取出一条指令加上执行该条指令的时间D. 时钟周期的时间<解析>:考嵌入式最最基本的概念了,记住就行,这个分数必拿。
指令周期:CPU从内存取出一条指令并执行这条指令的时间总和。
包括取指令,分析指令,执行指令整个过程。
<补充>:时钟周期、机器周期、指令周期的概念辨析。
时钟周期:时序中的最小单位,就是1/fosc。
例如:晶振为12MHz,那么时钟周期为1/12us。
机器周期:完成某一规定操作所需的时间,通常由若干时钟周期构成。
例如:单片机是12周期的话,那么在12MHz晶振的情况下,其机器周期为1us。
指令周期:完成一条指令的所有时间。
例如RET是一个2周期指令,在上述的条件下,它的指令周期为2us。
参考答案:C。
●在汇编过程中,不产生机器码,只用来指示汇编程序如何汇编的指令是__(44)__。
(44)A. 宏指令 B. 伪指令 C. 汇编指令 D. 机器指令<解析>:考查汇编语言的基础知识。
不想多说了,太简单了,自己看看概念吧。
或者这样记住:伪指令就是假的指令,假得指令是给人看的,不是给机器看的,所以机器不能产生代码。
注意一下宏指令的用法,说不好下次就考了。
参考答案:B。
●在8086微处理器中,若(SS) = 2000H,(SP) = 0100H,(AX) = 2107H,执行指令PUSH AX 后存放数据21H 的物理地址是__(45)__。
(45)A. 20102H B. 20101H C. 200FEH D. 200FFH<解析>:这道题目不容易,需要对X86汇编语言有深入的理解,拿不到分就算了。
41题是会做对这道题目的基础。
由41题可知,8086的堆栈数据操作是,SP先减,再压入数据,以字为单位对堆栈操作。
因此压入数据时的起始SP应为0100H-2=00FEH。
而8086中数据采用小端模式存取,即一个字数据中低字节存放低位地址。
(X86越向上的地址越小)8086逻辑地址到物理地址的形成机制为:物理地址=段地址*16+偏移地址(或物理地址=段地址左移4位+偏移地址)。
压栈后,内容存储的物理地址为2000*16+00FEH=200FE,21H是AX 中的高位,其存储位置为200FFH。
参考答案:D。
●在串行通信中,根据数据传输方向不同,可以分成三种方式,不包括__(46)__方式。
(46)A. 单工 B. 双工 C. 半单工 D. 半双工<解析>:考查接口通信的基础知识。
没有必要多说,是我们搞嵌入式必须知道的基本常识。
什么是单工、双工、半双工得搞搞清楚。
参考答案:C。
●寄存器间接寻址方式中,操作数处在__(47)__。
(47)A. 通用寄存器 B. 主存单元 C. 程序计数器 D. 堆栈<解析>:考查寻址方式的基础概念,需要有一点的理解,但是其选项会让很多人答对。