早教吧 育儿知识 作业答案 考试题库 百科 知识分享

微机原理的问题!若AX=0ABCDH这个0有什么作用?为什么用这个0这个题是这样的,若AX=0ABCDHBX=7F8FHCF=1求在8086cpu指令SBBAX,BX执行后,SF,ZF,AF,PF,CF,OF的状态,为什么执行这个命令后OF为1?OF不是只有在

题目详情
微机原理的问题!若AX=0ABCDH 这个0有什么作用?为什么用这个0
这个题是这样的,若AX=0ABCDH BX=7F8FH CF=1 求在8086cpu指令
SBB AX,BX 执行后,SF,ZF,AF,PF,CF,OF的状态,为什么执行这个命令后 OF为1?
OF不是只有在有符号数执行时 溢出才置1吗?还有AX=0ABCDH 前面那个0有什么用?AX不是只能存16位吗?那多个0是?
▼优质解答
答案和解析
1.计算机里的数字都是以补码的形式放的,因为计算机不知道你要做的是有符号还是无符号计算,所以它有两份结果,一个是以cf为标志的无符号结果,一个是以si为标志的有符号结果,程序员需要当成有符号就取si,当无符号就不用管si,只管cf就行.
2.of是溢出判断标志位,只对有符号数有效,故它默认你的数据是有符号的,而0ABCDH是负数—21555的补码,7F8FH最高位为0是正数32655,用—21555减32655= —54210,16位寄存器最大只能表示—32768到+32767的有符号数,—54210很明显超出范围了,所以溢出了,OF为1.
3.只有在最高一个数为字母时,前面才加0,这个0并没有存放到内存,只是编译的时候要用,目的在于区别其他的数.
不明白的我话再联系,祝你好运~