3.5-3.6 逻辑运算类指令、控制转移类指令(练习)-《单片机技术与应用》(高教版第二版) 同步精品课堂
|
2份
|
11页
|
77人阅读
|
1人下载
内容正文:
逻辑运算类指令. 控制转移类指令
一、名词解释
1. 逻辑运算类指令
【答案】逻辑运算类指令共 24 条,其中逻辑指令有与. 或. 异或. 累加器 A 清 0 和求反等 20 条,移位指令有 4 条。该类指令中,累加器 A 清 0 和取反、移位指令都是针对累加器 A 进行操作的单操作数指令。与、或、异或操作指令除操作码助记符不同外,后跟两个操作数的寻址方式组合完全相同,且有一部分寻址方式组合与加. 减法指令相同。这类指令的特点是不影响程序状态字寄存器 PSW 中的算术标志位,只有带进位循环移位指令才影响 CY,所有逻辑运算均按位进行。
2. 控制转移类指令
【答案】凡是能够使程序改变执行顺序的指令称为控制转移类指令,又称跳转指令。控制转移类指令共有 17 条,可分为无条件转移指令、条件转移指令、子程序调用及返回指令。有了丰富的控制转移类指令,就能很方便地实现程序向前. 向后转移,并根据条件实现分支运行. 循环运行及调用子程序等。
二、单项选择题
1. 逻辑运算类指令中,不影响程序状态字寄存器 PSW 中算术标志位的是( )
A. 逻辑与. 或. 异或指令
B. 带进位循环移位指令
C. 所有逻辑运算类指令
D. 除带进位循环移位指令外的其他逻辑运算类指令
【答案】D
【解析】逻辑运算类指令的特点是不影响程序状态字寄存器 PSW 中的算术标志位,只有带进位循环移位指令才影响 CY,所以除带进位循环移位指令外的其他逻辑运算类指令不影响 PSW 中算术标志位,答案选 D。
2. 在逻辑与指令 “ANL A,Rn” 中,操作结果保存在( )
A. 累加器 A
B. Rn 寄存器
C. @Ri 所指单元
D. direct 所指单元
【答案】A
【解析】“ANL A,Rn” 的操作功能是 A←(A)∧(Rn),即操作结果保存在累加器 A 中,答案选 A。
3. 逻辑或指令 “ORL direct,#data” 的字节数和机器周期数分别是( )
A. 2,1
B. 2,2
C. 3,1
D. 3,2
【答案】D
【解析】由表格可知 “ORL direct,#data” 的字节数是 3,机器周期数是 2,答案选 D。
4. 逻辑异或指令常用来( )
A. 使字节中某些位进行取反操作,其他位保持不变
B. 使累加器 A 清 0
C. 对累加器 A 取反
D. 实现算术运算
【答案】A
【解析】逻辑异或指令常用来使字节中某些位进行取反操作,其他位保持不变。欲使某位取反,则该位与 1 相异或;欲使某位保留,则该位与 0 相异或。还可利用逻辑异或指令对某单元自身异或,以实现清 0 操作,答案选 A。
5. 累加器 A 清 0 指令 “CLR A” 的功能是( )
A. 将累加器 A 的内容按位逻辑取反
B. 使累加器 A 清 0
C. 对累加器 A 进行移位操作
D. 对累加器 A 进行逻辑与操作
【答案】B
【解析】“CLR A” 的功能是累加器 A 清 0,不影响 CY、 AC、OV 等标志,答案选 B。
6. 无条件转移指令中,可在 64KB 范围内无条件转移的是( )
A. LJMP addr16
B. AJMP addr11
C. SJMP rel
D. JMP @A+DPTR
【答案】A
【解析】长转移指令 LJMP addr16 执行时把指令操作数提供的 16 位目标地址 A15~A0 装入 PC 中,可使程序从当前地址转移到 64KB 程序存储器地址空间的任意地址,答案选 A。
7. 绝对转移指令 AJMP addr11 的转移范围是( )
A. 64KB
B. 2KB
C. 256 字节
D. 相对 PC 当前值向前转移 128 字节,向后转移 127 字节
【答案】B
【解析】绝对转移指令 AJMP addr11 提供 11 位地址,可在 2KB 范围内无条件转移到由 A0~A10 所指出的地址单元中去,答案选 B。
8. 短转移指令 SJMP rel 的转移范围是( )
A. 64KB
B. 2KB
C. 256 字节
D. 相对 PC 当前值向前转移 128 字节,向后转移 127 字节
【答案】D
【解析】SJMP 指令的操作数 rel 用 8 位带符号数补码表示,转移范围是相对 PC 当前值向前转移 128 字节,向后转移 127 字节,答案选 D。
9. 条件转移指令中,判断累加器是否为零转移指令是以( )作为转移的条件。
A. 累加器 A 的内容是否为 0
B. 两个操作数是否相等
C. 源操作数减 1 后是否为 0
D. 进位标志 CY 的值
【答案】A
【解析】判断累加器是否为零转移指令是以累加器 A 的内容是否为 0 作为转移的条件,累加器 A 为 0,则转移,累加器 A 不为 0,则顺序执行,答案选 A。
10. 子程序调用指令执行时,首先( )
A. 将断点地址压栈保存
B. 转向子程序入口地址
C. 执行子程序
D. 返回主程序
【答案】A
【解析】子程序调用指令使程序执行转向子程序入口,执行完子程序要返回主程序继续执行。为了实现返回,执行子程序调用指令时,首先将断点地址压栈保存,然后才转向子程序入口地址,答案选 A。
三、判断题
1. 逻辑运算类指令都会影响程序状态字寄存器 PSW 中的算术标志位。( )
【答案】×
【解析】逻辑运算类指令的特点是不影响程序状态字寄存器 PSW 中的算术标志位,只有带进位循环移位指令才影响 CY,所以该说法错误。
2. 逻辑与指令 “ANL direct,A” 的操作功能是将 direct 单元的内容与累加器 A 的内容进行逻辑与操作,结果保存在 direct 单元。( )
【答案】√
【解析】“ANL direct,A” 的操作功能是 direct←(direct)∧(A),即将 direct 单元的内容与累加器 A 的内容进行逻辑与操作,结果保存在 direct 单元,所以该说法正确。
3. 无条件转移指令 JMP @A+DPTR 可以实现多分支转移功能。( )
【答案】√
【解析】间接转移指令 JMP @A+DPTR 是以数据指针 DPTR 的内容为基址,以累加器 A 的内容为相对偏移量,在 64KB 范围内无条件转移。该指令的特点是当 DPTR 作为基地址时,根据 A 的不同值就可以实现多分支转移,所以该说法正确。
4. 条件转移指令中的比较转移指令执行时,会保存两个操作数比较的差值。( )
【答案】×
【解析】比较转移指令是先对两个规定的操作数进行比较,根据比较的结果来决定是否转移。比较是做一次减法运算,但其差值不保存,两个数的原值不受影响,而标志位要受到影响,所以该说法错误。
5. 子程序调用指令和转移指令没有本质区别。( )
【答案】×
【解析】子程序调用指令和转移指令相似,但两者有本质的区别:子程序调用指令使程序执行转向子程序入口,执行完子程序要返回主程序继续执行。为了实现返回,执行子程序调用指令时,首先将断点地址压栈保存,然后才转向子程序入口地址。而转移指令只是使程序转移到目标地址,不涉及返回主程序的操作,所以该说法错误。
四、简答题
1. 简述逻辑运算类指令的分类及特点。
【答案】逻辑运算类指令分类及特点如下:
· 分类:包括逻辑指令(与. 或. 异或. 累加器 A 清 0 和求反等 20 条)和移位指令(4 条)。
· 特点:累加器 A 清 0 和取反. 移位指令都是针对累加器 A 进行操作的单操作数指令。与. 或. 异或操作指令除操作码助记符不同外,后跟两个操作数的寻址方式组合完全相同,且有一部分寻址方式组合与加. 减法指令相同。这类指令的特点是不影响程序状态字寄存器 PSW 中的算术标志位,只有带进位循环移位指令才影响 CY,所有逻辑运算均按位进行。
2. 说明控制转移类指令的分类及各类指令的功能。
【答案】控制转移类指令分为以下几类及功能如下:
· 无条件转移指令:当程序执行到无条件转移指令时,程序将无条件地转移到指令所提供的目标地址处执行。包括长转移指令 LJMP addr16(可使程序从当前地址转移到 64KB 程序存储器地址空间的任意地址). 绝对转移指令 AJMP addr11(可在 2KB 范围内无条件转移). 短转移指令 SJMP rel(转移范围是相对 PC 当前值向前转移 128 字节,向后转移 127 字节). 间接转移指令 JMP @A+DPTR(可实现多分支转移功能)。
· 条件转移指令:按照某一标志或特定条件转移的指令,当条件满足时,程序转移执行;当条件不满足时,程序仍按原来顺序执行。可分为判断累加器是否为零转移指令(以累加器 A 的内容是否为 0 作为转移的条件). 比较转移指令(先对两个规定的操作数进行比较,根据比较结果决定是否转移). 减 1 条件转移指令(把源操作数减 1,判断结果是否为 0,不为 0 则转移,为 0 则终止循环)。
· 子程序调用与返回指令:子程序调用指令使程序执行转向子程序入口,执行完子程序要返回主程序继续执行。包括长调用指令 LCALL addr16(可调用 64KB 范围内的子程序). 绝对调用指令 ACALL addr11(只能调用与 PC 在同一 2KB 范围内的子程序)。返回指令包括子程序返回指令 RET(必须作为子程序的最后一条指令)和中断服务程序的返回指令 RETI(必须作为中断服务程序的最后一条指令)。
3. 阐述逻辑异或指令的用途及使用方法。
【答案】逻辑异或指令的用途及使用方法如下:
· 用途:常用来使字节中某些位进行取反操作,其他位保持不变,还可利用逻辑异或指令对某单元自身异或,以实现清 0 操作。
· 使用方法:欲使某位取反,则该位与 1 相异或;欲使某位保留,则该位与 0 相异或。例如,若 (A)=B5H = 10110101B,执行指令 “XRL A,#0F0H”,A 的高 4 位取反,低 4 位保留,(A)=01000101B = 45H;执行 “XRL A,30H”(假设 30H 单元内容为 45H),可使 A 清 0。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
逻辑运算类指令. 控制转移类指令
一、名词解释
1. 逻辑运算类指令
2. 控制转移类指令
二、单项选择题
1. 逻辑运算类指令中,不影响程序状态字寄存器 PSW 中算术标志位的是( )
A. 逻辑与. 或. 异或指令
B. 带进位循环移位指令
C. 所有逻辑运算类指令
D. 除带进位循环移位指令外的其他逻辑运算类指令
2. 在逻辑与指令 “ANL A,Rn” 中,操作结果保存在( )
A. 累加器 A
B. Rn 寄存器
C. @Ri 所指单元
D. direct 所指单元
3. 逻辑或指令 “ORL direct,#data” 的字节数和机器周期数分别是( )
A. 2,1
B. 2,2
C. 3,1
D. 3,2
4. 逻辑异或指令常用来( )
A. 使字节中某些位进行取反操作,其他位保持不变
B. 使累加器 A 清 0
C. 对累加器 A 取反
D. 实现算术运算
5. 累加器 A 清 0 指令 “CLR A” 的功能是( )
A. 将累加器 A 的内容按位逻辑取反
B. 使累加器 A 清 0
C. 对累加器 A 进行移位操作
D. 对累加器 A 进行逻辑与操作
6. 无条件转移指令中,可在 64KB 范围内无条件转移的是( )
A. LJMP addr16
B. AJMP addr11
C. SJMP rel
D. JMP @A+DPTR
7. 绝对转移指令 AJMP addr11 的转移范围是( )
A. 64KB
B. 2KB
C. 256 字节
D. 相对 PC 当前值向前转移 128 字节,向后转移 127 字节
8. 短转移指令 SJMP rel 的转移范围是( )
A. 64KB
B. 2KB
C. 256 字节
D. 相对 PC 当前值向前转移 128 字节,向后转移 127 字节
9. 条件转移指令中,判断累加器是否为零转移指令是以( )作为转移的条件。
A. 累加器 A 的内容是否为 0
B. 两个操作数是否相等
C. 源操作数减 1 后是否为 0
D. 进位标志 CY 的值
10. 子程序调用指令执行时,首先( )
A. 将断点地址压栈保存
B. 转向子程序入口地址
C. 执行子程序
D. 返回主程序
三、判断题
1. 逻辑运算类指令都会影响程序状态字寄存器 PSW 中的算术标志位。( )
2. 逻辑与指令 “ANL direct,A” 的操作功能是将 direct 单元的内容与累加器 A 的内容进行逻辑与操作,结果保存在 direct 单元。( )
3. 无条件转移指令 JMP @A+DPTR 可以实现多分支转移功能。( )
4. 条件转移指令中的比较转移指令执行时,会保存两个操作数比较的差值。( )
5. 子程序调用指令和转移指令没有本质区别。( )
四、简答题
1. 简述逻辑运算类指令的分类及特点。
2. 说明控制转移类指令的分类及各类指令的功能。
3. 阐述逻辑异或指令的用途及使用方法。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$