3.3 数据传送类指令(练习)-《单片机技术与应用》(高教版第二版) 同步精品课堂

| 2份
| 11页
| 56人阅读
| 1人下载

内容正文:

数据传送类指令 一、名词解释 1. 数据传送类指令 【答案】数据传送类指令有 29 条,是指令系统中使用非常频繁的一类指令,几乎所有的应用程序都要用到这类指令,属于 “复制” 类型,而不是 “搬家”。 2. 堆栈操作指令 【答案】堆栈操作指令分为进栈和出栈,即压入和弹出数据,常用于保存或恢复现场。进栈指令用于保存片内 RAM 单元(低 128 字节)或特殊功能寄存器 SFR 的内容;出栈指令用于恢复片内 RAM 单元(低 128 字节)或特殊功能寄存器 SFR 的内容。 二、单项选择题 1. 数据传送类指令的 “复制” 类型特点是指( ) A. 源地址单元和目的地址单元内容都改变 B. 源地址单元内容改变,目的地址单元内容不变 C. 源地址单元内容不变,目的地址单元内容改变 D. 源地址单元和目的地址单元内容都不变 【答案】C 【解析】数据传送类指令属于 “复制” 类型,指令执行后,源地址单元的操作数不变,目的地址单元的操作数则修改为源地址单元的操作数,所以选 C。 2. 指令 “MOV A,#data” 的字节数和机器周期数分别是( ) A. 2,1 B. 2,2 C. 3,1 D. 3,2 【答案】A 【解析】“MOV A,#data” 的字节数是 2,机器周期数是 1,所以选 A。 3. 在指令 “MOV Rn,#data” 中,n 的取值范围是( ) A. 0~5 B. 0~6 C. 0~7 D. 0~8 【答案】C 【解析】“MOV Rn,#data” 中 n = 0,1,…,7,所以选 C。 4. 堆栈操作指令中,进栈操作时( ) A. SP 先加 1,再将数据存入 SP 指向的单元 B. 先将数据存入 SP 指向的单元,SP 再加 1 C. SP 先减 1,再将数据存入 SP 指向的单元 D. 先将数据存入 SP 指向的单元,SP 再减 1 【答案】A 【解析】进栈指令操作功能为 SP←(SP)+1,(SP)←(direct),即 SP 先加 1,再将数据存入 SP 指向的单元,所以选 A。 5. 数据交换指令 “XCH A,@Ri” 的功能是( ) A. 将 A 的内容与 @Ri 的内容交换 B. 将 A 的低 4 位与 @Ri 的低 4 位交换 C. 将 A 的高 4 位与低 4 位交换 D. 将 A 的内容传送到 @Ri 【答案】A 【解析】“XCH A,@Ri” 的操作功能是 (A)←→((Ri)),即把 A 的内容与 @Ri 的内容交换,所以选 A。 6. MCS - 51 系列单片机 CPU 对片外扩展的数据存储器 RAM 或 I/O 口进行数据传送时,采用的寻址方法是( ) A. 立即寻址 B. 直接寻址 C. 寄存器间接寻址 D. 变址寻址 【答案】C 【解析】MCS - 51 系列单片机 CPU 对片外扩展的数据存储器 RAM 或 I/O 口进行数据传送时,必须采用寄存器间接寻址的方法,通过累加器 A 来完成,所以选 C。 7. 执行 “MOVX A,@DPTR” 指令时,在 P3 口的第( )位引脚输出 RD 读有效信号。 A. 6 B. 7 C. 8 D. 9 【答案】B 【解析】执行输入指令 “MOVX A,@DPTR” 时,在 P3 口的第 7 位引脚(P3.7)上输出 RD 读有效信号,所以选 B。 8. 访问程序存储器的数据传送指令采用的寻址方式是( ) A. 基址寄存器加变址寄存器间接寻址 B. 寄存器间接寻址 C. 直接寻址 D. 相对寻址 【答案】A 【解析】访问程序存储器的数据传送指令又称查表指令,采用基址寄存器加变址寄存器间接寻址方式,把程序存储器中存放的表格数据读出,传送到累加器 A,所以选 A。 9. 指令 “MOVC A,@A+DPTR” 可以实现( )的数据传送。 A. 整个 32KB 程序存储器单元到累加器 A B. 整个 64KB 程序存储器单元到累加器 A C. 256 字节范围内程序存储器单元到累加器 A D. 128 字节范围内程序存储器单元到累加器 A 【答案】B 【解析】“MOVC A,@A+DPTR” 采用 DPTR 作为基址寄存器,可以很方便地把一个 16 位地址送到 DPTR,实现在整个 64KB 程序存储器单元到累加器 A 的数据传送,所以选 B。 10. 指令 “MOVC A,@A+PC” 的查表范围是( ) A. 以 PC 为基址的 256 字节范围内 B. 以 PC 为基址的 128 字节范围内 C. 以 DPTR 为基址的 256 字节范围内 D. 以 DPTR 为基址的 128 字节范围内 【答案】A 【解析】“MOVC A,@A+PC” 以 PC 作为基址寄存器,查表范围只能在 256 字节范围内 即 (PC)+1H~(PC)+100H,所以选 A。 三、判断题 1. 数据传送类指令属于 “搬家” 类型,会改变源地址单元的内容。( ) 【答案】× 【解析】数据传送类指令属于 “复制” 类型,而不是 “搬家”,指令执行后,源地址单元的操作数不变,所以该说法错误。 2. 指令 “MOV DPTR,#data16” 的字节数是 2,机器周期数是 1。( ) 【答案】× 【解析】“MOV DPTR,#data16” 的字节数是 3,机器周期数是 2,所以该说法错误。 3. 数据交换指令进行数据双向传送,传送双方互为源地址和目的地址,指令执行后每方的操作数都修改为另一方的操作数。( ) 【答案】√ 【解析】数据交换指令进行数据双向传送,涉及传送的双方互为源地址. 目的地址,指令执行后每方的操作数都修改为另一方的操作数,所以该说法正确。 4. MCS - 51 系列单片机 CPU 对片外扩展的数据存储器 RAM 或 I/O 口进行数据传送时,不需要通过累加器 A。( ) 【答案】× 【解析】MCS - 51 系列单片机 CPU 对片外扩展的数据存储器 RAM 或 I/O 口进行数据传送时,必须采用寄存器间接寻址的方法,通过累加器 A 来完成,所以该说法错误。 5. 指令 “MOVC A,@A+PC” 可以在整个 64KB 程序存储器单元范围内查表。( ) 【答案】× 【解析】“MOVC A,@A+PC” 查表范围只能在 256 字节范围内 即 (PC)+1H~(PC)+100H,“MOVC A,@A+DPTR” 可以实现在整个 64KB 程序存储器单元到累加器 A 的数据传送,所以该说法错误。 四、简答题 1. 简述数据传送类指令的分类及特点。 【答案】数据传送类指令分为以下几类及特点如下: · 访问片内数据存储器的一般数据传送指令:实现片内数据存储器不同单元之间的数据传送,有多种指令形式,如 MOV A,#data. MOV Rn,#data 等,指令执行时源地址单元内容不变,目的地址单元内容修改为源地址单元的操作数。 · 访问片内特殊传送指令:包括堆栈操作指令和数据交换指令。堆栈操作指令用于保存或恢复现场,分为进栈和出栈;数据交换指令进行数据双向传送,传送双方互为源地址和目的地址,指令执行后每方的操作数都修改为另一方的操作数。 · 访问片外数据存储器的数据传送指令:MCS - 51 系列单片机 CPU 对片外扩展的数据存储器 RAM 或 I/O 口进行数据传送时,必须采用寄存器间接寻址的方法,通过累加器 A 来完成。 · 访问程序存储器的数据传送指令:又称查表指令,采用基址寄存器加变址寄存器间接寻址方式,把程序存储器中存放的表格数据读出,传送到累加器 A。 2. 说明堆栈操作指令的进栈和出栈过程。 【答案】堆栈操作指令分为进栈和出栈: · 进栈操作:指令为 PUSH direct,操作过程是 SP 先加 1,即 SP←(SP)+1,然后将 direct 单元的内容存入 SP 指向的单元,即 (SP)←(direct)。 · 出栈操作:指令为 POP direct,操作过程是先将 SP 指向单元的内容取出存入 direct 单元,即 direct←((SP)),然后 SP 减 1,即 SP←(SP)-1。 3. 比较 “MOVC A,@A+DPTR” 和 “MOVC A,@A+PC” 两条指令的异同点。 【答案】 · 相同点:两条指令都是访问程序存储器的数据传送指令,又称查表指令,都采用基址寄存器加变址寄存器间接寻址方式,把程序存储器中存放的表格数据读出,传送到累加器 A。 · 不同点: (1) 基址寄存器不同:“MOVC A,@A+DPTR” 采用 DPTR 作为基址寄存器;“MOVC A,@A+PC” 以 PC 作为基址寄存器。 (2) 查表范围不同:“MOVC A,@A+DPTR” 可以实现在整个 64KB 程序存储器单元到累加器 A 的数据传送,数据表格可以存放在程序存储器 64KB 地址范围的任何地方;“MOVC A,@A+PC” 查表范围只能在 256 字节范围内 即 (PC)+1H~(PC)+100H,表格地址空间分配受到限制。 (3) 编程难度不同:“MOVC A,@A+DPTR” 使用方便,不需要进行复杂的偏移量计算;“MOVC A,@A+PC” 编程时需要进行偏移量的计算,即计算 MOVC A,@A+PC 指令所在地址与表格存放首地址间的距离字节数,并需要一条加法指令进行地址调整。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 数据传送类指令 一、名词解释 1. 数据传送类指令 2. 堆栈操作指令 二、单项选择题 1. 数据传送类指令的 “复制” 类型特点是指( ) A. 源地址单元和目的地址单元内容都改变 B. 源地址单元内容改变,目的地址单元内容不变 C. 源地址单元内容不变,目的地址单元内容改变 D. 源地址单元和目的地址单元内容都不变 2. 指令 “MOV A,#data” 的字节数和机器周期数分别是( ) A. 2,1 B. 2,2 C. 3,1 D. 3,2 3. 在指令 “MOV Rn,#data” 中,n 的取值范围是( ) A. 0~5 B. 0~6 C. 0~7 D. 0~8 4. 堆栈操作指令中,进栈操作时( ) A. SP 先加 1,再将数据存入 SP 指向的单元 B. 先将数据存入 SP 指向的单元,SP 再加 1 C. SP 先减 1,再将数据存入 SP 指向的单元 D. 先将数据存入 SP 指向的单元,SP 再减 1 5. 数据交换指令 “XCH A,@Ri” 的功能是( ) A. 将 A 的内容与 @Ri 的内容交换 B. 将 A 的低 4 位与 @Ri 的低 4 位交换 C. 将 A 的高 4 位与低 4 位交换 D. 将 A 的内容传送到 @Ri 6. MCS - 51 系列单片机 CPU 对片外扩展的数据存储器 RAM 或 I/O 口进行数据传送时,采用的寻址方法是( ) A. 立即寻址 B. 直接寻址 C. 寄存器间接寻址 D. 变址寻址 7. 执行 “MOVX A,@DPTR” 指令时,在 P3 口的第( )位引脚输出 RD 读有效信号。 A. 6 B. 7 C. 8 D. 9 8. 访问程序存储器的数据传送指令采用的寻址方式是( ) A. 基址寄存器加变址寄存器间接寻址 B. 寄存器间接寻址 C. 直接寻址 D. 相对寻址 9. 指令 “MOVC A,@A+DPTR” 可以实现( )的数据传送。 A. 整个 32KB 程序存储器单元到累加器 A B. 整个 64KB 程序存储器单元到累加器 A C. 256 字节范围内程序存储器单元到累加器 A D. 128 字节范围内程序存储器单元到累加器 A 10. 指令 “MOVC A,@A+PC” 的查表范围是( ) A. 以 PC 为基址的 256 字节范围内 B. 以 PC 为基址的 128 字节范围内 C. 以 DPTR 为基址的 256 字节范围内 D. 以 DPTR 为基址的 128 字节范围内 三、判断题 1. 数据传送类指令属于 “搬家” 类型,会改变源地址单元的内容。( ) 2. 指令 “MOV DPTR,#data16” 的字节数是 2,机器周期数是 1。( ) 3. 数据交换指令进行数据双向传送,传送双方互为源地址和目的地址,指令执行后每方的操作数都修改为另一方的操作数。( ) 4. MCS - 51 系列单片机 CPU 对片外扩展的数据存储器 RAM 或 I/O 口进行数据传送时,不需要通过累加器 A。( ) 5. 指令 “MOVC A,@A+PC” 可以在整个 64KB 程序存储器单元范围内查表。( ) 四、简答题 1. 简述数据传送类指令的分类及特点。 2. 说明堆栈操作指令的进栈和出栈过程。 3. 比较 “MOVC A,@A+DPTR” 和 “MOVC A,@A+PC” 两条指令的异同点。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

3.3  数据传送类指令(练习)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第1页
1
3.3  数据传送类指令(练习)-《单片机技术与应用》(高教版第二版) 同步精品课堂-第2页
2

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。