题目
3【连线题】根据下列要求,选择正确程序段[1]进行匹配第一组数据1、判断AL为负,则跳转至NEXT2、判断字节变量DA1为0,则跳转至NEXT3、判断AL的D1位为1,则跳转至NEXT4、判断字变量DA1的D1位为0,则跳转至NEXT5、比较AH与字节变量DA1中的数,若AH不等于DA1,则跳转至NEXT6、比较字节变量DA1与字符'A',若DA1>='A',则跳转至NEXT第二组数据A、TEST AL,2JNZ NEXTB、OR AL,ALJS NEXTC、CMP DA1,'A'JAE NEXTD、CMP AH,DA1JNE NEXTE、TEST DA1,0002HJZ NEXTF、CMP DA1,0JZ NEXT
3【连线题】根据下列要求,选择正确程序段[1]进行匹配
第一组数据
1、判断AL为负,则跳转至NEXT
2、判断字节变量DA1为0,则跳转至NEXT
3、判断AL的D1位为1,则跳转至NEXT
4、判断字变量DA1的D1位为0,则跳转至NEXT
5、比较AH与字节变量DA1中的数,若AH不等于DA1,则跳转至NEXT
6、比较字节变量DA1与字符'A',若DA1>='A',则跳转至NEXT
第二组数据
A、TEST AL,2
JNZ NEXT
B、OR AL,AL
JS NEXT
C、CMP DA1,'A'
JAE NEXT
D、CMP AH,DA1
JNE NEXT
E、TEST DA1,0002H
JZ NEXT
F、CMP DA1,0
JZ NEXT
题目解答
答案
1. 判断AL为负:`OR AL,AL` 更新SF,`JS NEXT` 判断SF=1。→ B。
2. 判断DA1=0:`CMP DA1,0`,`JZ NEXT`。→ F。
3. 判断AL的D1=1:`TEST AL,2`,`JNZ NEXT`。→ A。
4. 判断DA1的D1=0:`TEST DA1,2`,`JZ NEXT`。→ E。
5. 比较AH≠DA1:`CMP AH,DA1`,`JNE NEXT`。→ D。
6. 判断DA1≥'A':`CMP DA1,'A'`,`JAE NEXT`。→ C。
答案:
1 — B
2 — F
3 — A
4 — E
5 — D
6 — C
解析
本题考查汇编语言中的条件判断指令与跳转指令的组合应用,需根据具体条件选择正确的指令段。解题核心在于:
- 判断符号位:通过
OR AL,AL设置符号位(SF),再用JS判断; - 比较数值是否为0:用
CMP指令配合JZ; - 测试特定位状态:用
TEST指令配合位掩码,结合JNZ或JZ判断; - 比较两个值是否相等:用
CMP指令配合JNE; - 字符比较:用
CMP配合JAE判断大小关系。
1. 判断AL为负
- 关键思路:符号位(SF)为1时跳转。
- 指令分析:
OR AL,AL将AL的符号位复制到SF,JS NEXT在SF=1时跳转,对应选项 B。
2. 判断DA1为0
- 关键思路:直接比较DA1与0是否相等。
- 指令分析:
CMP DA1,0后用JZ NEXT,对应选项 F。
3. 判断AL的D1位为1
- 关键思路:测试AL的第1位(二进制位权为2,即掩码
2)。 - 指令分析:
TEST AL,2后用JNZ NEXT(若位为1,结果非零),对应选项 A。
4. 判断DA1的D1位为0
- 关键思路:测试DA1的第1位是否为0。
- 指令分析:
TEST DA1,0002H后用JZ NEXT(若位为0,结果为0),对应选项 E。
5. 比较AH与DA1是否不等
- 关键思路:直接比较AH和DA1的值。
- 指令分析:
CMP AH,DA1后用JNE NEXT,对应选项 D。
6. 判断DA1≥'A'
- 关键思路:字符比较,使用
JAE判断是否大于等于。 - 指令分析:
CMP DA1,'A'后用JAE NEXT,对应选项 C。