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” 两条指令的异同点。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$