【汇编/接口技术】标志位、指令的基础题目讲解

标志位的判断

题目:给出以下运算结果,求6个状态标识位的状态。
在这里插入图片描述

解答:
我们一个一个讲,
首先要了解每个状态位的含义,之后再关注算式中不同的区域

1. 进位标志位 (CF)

CF,英文名Carry Flag,进位标志位

置1条件:当最高位向更高位有进位,CF为1。

在这里插入图片描述
此题中,最高位是1与1相加,进了1位,
在这里插入图片描述
因此,
CF=1

2. 溢出标志位 (OF)

OF,Overflow Flag,溢出标志位
含义:[次高位向最高位的进位] 异或 [CF]。

此题中,次高位是0和1相加,再加上之前(次次高位)传过来的进位1,因此次高位的结果是0。
在这里插入图片描述
所以,[次高位向最高位的进位] = 1。
然后从上面的第1点,我们就知道CF = 1,
OF = [次高位向最高位的进位] 异或 [CF] = 1 ^ 1 = 0,因此
OF = 0.

总结CF和OF的意义如下:

  • CF的意义:如果两个数是无符号的数,且CF = 1,说明溢出了。
  • OF的意义:如果两个数是有符号的数,且OF = 1,那么结果是有溢出的。

继续看其他标志位。

3. 辅助进位 (AF)

AF,Auxiliary Carry Flag,辅助进位标志位
含义:低4位的相加是否有进位,有进位则为1.

此题0110和0100相加,结果为1010,无进位,
在这里插入图片描述
AF = 0

4. 奇偶标志位 (PF)

PF,Parity Flag, 奇偶标志位
如果结果(8位)中1的个数为偶数,则为1.

此题结果为10101010,有4个1,
在这里插入图片描述

PF = 1.

总结AF和PF:

  • AF、PF只针对低8位,不在乎高8位

继续看其他标志位。

5. 符号标志位 (SF)

SF,Sign Flag,符号标志位
结果的最高位为负,则为1.

此题结果的最高位为1,说明是负数,
在这里插入图片描述


SF = 1

最后一个,

6. 零标志位 (ZF)

ZF,Zero Flag,
置1条件:结果为0

此题结果很明显不是0(如果是0,结果应该为00H),则
ZF = 0.
本题讲解完毕。

判断指令对错

MOV AX,[SI]05H 对吗

1.先判断:这个指令是对的
2. 它的功能:将SI+5字单元的内容送给AX
3. 基本格式:在这里插入图片描述

MOV [BX][BP], BX 对吗

1.先判断: 错误
2. 原因:目标操作数出现了两个基址寄存器。
3. 基址加变址寻址方式:
在这里插入图片描述

MOV DS,1000H 对吗

1.先判断: 错误
2. 概念:DS,Data Segment。DS的内容保存了数据段的最低地址(最低地址也称为基址)。比如DS=8402H,表示数据段的基址是8402H。
3. 错误原因:数据段的最低地址(基址)是不能被这种赋值的方式修改的。

MOV DX,09H 对吗

1.先判断: 正确
2. 功能:将09H送往DX。
3. 原因:虽然09H只有8位,DX16位,它们的字长不一样,但是08H是一个数字,它前面可以无限加0,就能与DX字长统一了。
4. 简而言之,寄存器的长度是固定的,数字的长度可以无限扩充,直到和寄存器一样长。

MOV [1200], [SI] 对吗

1.先判断: 错误
2. 原因:MOV不允许两个操作数同时为存储器操作数。
3. [1200]指向寄存器中内存地址为1200的单元

IN AX,80H 对吗

1.先判断: 正确
2. 含义:从80H端口读取保存的数据,送到AX中。

包含两行指令的指令

  • MOV DX,2400H
  • IN AL,DX

1.先判断: 正确
2. 含义:从2400H端口读取数据,送到AL中。和上题不同的是,这次只送8位的数据。

OUT 35H,AX 对吗

1.先判断: 正确
2. 含义:把AX的值送到35H端口里。

OUT AX,35H 对吗

1.先判断: 错误
2. 原因:OUT将CPU中寄存器的值送到端口里,而不是端口的值送往CPU的寄存器。这也是它为什么叫做“OUT”。
3. 修改方案:IN AX,35H或者OUT 35H,AX

编程题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

第三章练习题

在这里插入图片描述
第二题讲解:
XOR DX,DX;DX异或于DX,作用是将DX清零
MOV AX,1234H;AX 赋值 1234H
MOV CL,4;CL 赋值 4,这是一个计数器
ROL AX,CL;AX循环左移直到CL=0,所以AX循环左移4位,左移完后AX就等于2341H(相当于把最高位的1H放到最低位)
DEC AX;AX 减 1,AX = 2340H
MOV SP,AX;SP 被AX赋值,SP = 2340H

MOV CX,4;CX赋值4
MUL CL;

参考链接

https://www.icourse163.org/learn/kaopei-1465496162?tid=1466446448#/learn/content?type=detail&id=1246684049&cid=1272228093


版权声明:本文为qq_43523445原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。