失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【汇编/接口技术】标志位 指令的基础题目讲解

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

时间:2020-01-22 11:18:58

相关推荐

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

目录

标志位的判断1. 进位标志位 (CF)2. 溢出标志位 (OF)3. 辅助进位 (AF)4. 奇偶标志位 (PF)5. 符号标志位 (SF)6. 零标志位 (ZF) 判断指令对错MOV AX,[SI]05H 对吗MOV [BX][BP], BX 对吗MOV DS,1000H 对吗MOV DX,09H 对吗MOV [1200], [SI] 对吗IN AX,80H 对吗包含两行指令的指令OUT 35H,AX 对吗OUT AX,35H 对吗 编程题第三章练习题 参考链接

标志位的判断

题目:给出以下运算结果,求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,2400HIN 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;

参考链接

/learn/kaopei-1465496162?tid=1466446448#/learn/content?type=detail&id=1246684049&cid=1272228093

如果觉得《【汇编/接口技术】标志位 指令的基础题目讲解》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。