|
主题 : : 求检测点11.2答案 [待解决] |
回复[ 14次 ]
点击[ 970次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-06-01 16:13 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-03-03 23:27 |
CF 0F SF ZF PF
sub al,al 1 0
mov al,10H 1 10000
add al,90H 1 1010 0000
mov al,80H 0 1000 000
add al,80H 0 1 0000 0000
mov al,0FCH 1 1111 1100
add al,05H 1 1 0000 0001
mov al,7DH 1 111 1101
add al,0bH 1 1000 1000 | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-06-01 16:24 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-03-03 23:27 |
CF OF SF ZF PF
0 0 0 1 1
0 0 0 1 1
0 0 1 0 1
0 0 1 0 1
1 1 0 1 1
1 1 0 1 1
1 0 0 0 0
1 0 0 0 0
0 1 1 0 1
0 1 1 0 1
别人帖子中的答案,有些不懂,哪位能帮我解释下,感激不尽。 | | |
|
|
|
|
[第2楼]
[ 回复时间:2010-06-02 19:44 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-03-03 23:27 |
|
|
|
|
|
[第3楼]
[ 回复时间:2010-06-03 10:56 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2010-04-17 06:12 |
sub al,al 结果al=0,计算过程没有进位与溢出所以CF、OF都为0,结果al=0所以ZF=1,a1=0则为非负所以SF=0,a1=00000000B零个1则奇偶标志PF=1(0为偶数);
add al,90H 本语句执行前a1=10h=00010000b=16,90h=10010000b=-112,执行后a1=10100000=-96,过程没有进位所以CF=0,按有符号运算结果正确说明没有溢出所以OF=0,结果(-96)为负数所以SF=1,结果(10100000)不为0所以ZF=0,结果中有两个1所以PF=1.
先说两条语句,如有不足之处,欢迎指正。
mov语句不会改变以上标记寄存器的值。 | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-06-03 22:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-03-03 23:27 |
3楼或者知道的能把下面的3个不懂之处也解释下,谢谢了。
CF OF SF ZF PF
mov al,80H 0 0 1 0 1 1000 0000
add al,80H 1 1 0 1 1 1 0000 0000
mov al,0FCH 1 1 0 1 1 1111 1100
add al,05H 1 0 0 0 0 1 0000 0001
mov al,7DH 1 0 0 0 0 111 1101
add al,0bH 0 1 1 0 1 1000 1000
问题1:解释 add al,80H,为什么OF=1和80H是多少?
问题2:解释 add al,05H,为什么OF=0和0FCH是多少?
问题3:解释 add al,80H,为什么OF=1和7DH是多少? | | |
|
|
|
|
[第5楼]
[ 回复时间:2010-06-03 22:19 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-03-03 23:27 |
3楼或者知道的能把下面的3个不懂之处也解释下,谢谢了。
CF OF SF ZF PF
mov al,80H 0 0 1 0 1 1000 0000
add al,80H 1 1 0 1 1 1 0000 0000
mov al,0FCH 1 1 0 1 1 1111 1100
add al,05H 1 0 0 0 0 1 0000 0001
mov al,7DH 1 0 0 0 0 111 1101
add al,0bH 0 1 1 0 1 1000 1000
问题1:解释 add al,80H,为什么OF=1和80H是多少?
问题2:解释 add al,05H,为什么OF=0和0FCH是多少?
问题3:解释 add al,0bH,为什么OF=1和7DH是多少? | | |
|
|
|
|
[第6楼]
[ 回复时间:2010-06-04 11:26 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2010-04-17 06:12 |
OF是溢出标志,如果溢出那么OF=1;(所谓溢出我认为就是超出寄存器存储范围,例如8位寄存器存储有符号数范围是-128~127,超出此范围都是溢出)80H=1000 0000B=-128(有符号数),也等于无符号数128。 | | |
|
|
|
|
[第7楼]
[ 回复时间:2010-06-22 16:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-01-03 14:44 |
问题一我能理解,后面两个问题就觉得不能理解了,,为什么 ADD AL,80这儿都溢出了后面的两个确没有呢.是怎么计算机的呢?坐等高手解答. | | |
|
|
|
|
[第8楼]
[ 回复时间:2010-07-20 22:55 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-07-20 22:13 |
3楼或者知道的能把下面的3个不懂之处也解释下,谢谢了。
CF OF SF ZF PF
mov al,80H 0 0 1 0 1 1000 0000
add al,80H 1 1 0 1 1 1 0000 0000
mov al,0FCH 1 1 0 1 1 1111 1100
add al,05H 1 0 0 0 0 1 0000 0001
mov al,7DH 1 0 0 0 0 111 1101
add al,0bH 0 1 1 0 1 1000 1000
问题1:解释 add al,80H,为什么OF=1和80H是多少?
问题2:解释 add al,05H,为什么OF=0和0FCH是多少?
问题3:解释 add al,0bH,为什么OF=1和7DH是多少?
------------------
回复:问题1:80H,二进制下是10000000。在有符号数的情况下,首位为1,所以是用补码表示的有符号数,其绝对值可用反码+1计算出(具体见书后附注不再赘述),为-128。执行add al,80H 得al=100H,在无符号的情况下CF进位,在有符号的情况下溢出(8位有符号数的取值范围为-128~127),OF=1。
问题2:0FCH=11111100b,有符号数的情况下为-4,无符号数的情况下为252;05h=00000101b,有符号数情况下为5,无符号数情况下为5。所以在有符号数的情况下,相加为1,不溢出,OF=0。
问题3:7DH=01111101b,有符号数情况下,首位为0,故为正值=125;0BH=00001011,有符号数情况下=5。在有符号数情况下相加,为130,溢出,所以OF=1。
任何一本计算机组成原理的教科书里都有对于补码知识详尽的解释,你可以去学习一下。 | | |
|
|
|
|
[第9楼]
[ 回复时间:2010-08-28 19:47 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-08-10 12:07 |
mov al,10h 为什么zf pf依然是1呢?非零zf是0 一个1 奇数 pf为0 | | |
|
|
|
|
[第10楼]
[ 回复时间:2010-09-14 19:23 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-09-13 18:17 |
回复:[第9楼]
------------------
看书203页中间,“有的指令的执行对标志寄存器没有影响,比如:mov、push、pop等” | | |
|
|
|
|
[第11楼]
[ 回复时间:2010-09-30 12:17 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-04-20 13:53 |
问题3:7DH=01111101b,有符号数情况下,首位为0,故为正值=125;0BH=00001011,有符号数情况下=5。在有符号数情况下相加,为130,溢出,所以OF=1。
任何一本计算机组成原理的教科书里都有对于补码知识详尽的解释,你可以去学习一下。
------------------
回复:为什么 0BH=00001011,有符号数情况下是=5呢?
我左算右算都不是等于5吧!还是我二级制转换十进制还有没有理解到的?1*2的三次方+0*2的二次方+1*2的一次方+1*2的零次方=1*8+0*0+1*2+1*1=11,,我算得应该是11呀!怎么会是5呢?请指教! | | |
|
|
|
|
[第12楼]
[ 回复时间:2010-10-13 15:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-09-27 17:38 |
楼上的基本功太不扎实了,二进制的从2的零次方开始的,不是从2的一次放开始的。 | | |
|
|
|
|
[第13楼]
[ 回复时间:2010-11-26 22:30 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2008-10-18 00:34 |
3楼或者知道的能把下面的3个不懂之处也解释下,谢谢了。
CF OF SF ZF PF
mov al,80H 0 0 1 0 1 1000 0000
add al,80H 1 1 0 1 1 1 0000 0000
mov al,0FCH 1 1 0 1 1 1111 1100
add al,05H 1 0 0 0 0 1 0000 0001
mov al,7DH 1 0 0 0 0 111 1101
add al,0bH 0 1 1 0 1 1000 1000
问题1:解释 add al,80H,为什么OF=1和80H是多少?
问题2:解释 add al,05H,为什么OF=0和0FCH是多少?
问题3:解释 add al,0bH,为什么OF=1和7DH是多少?
------------------
回复:问题1:80H,二进制下是10000000。在有符号数的情况下,首位为1,所以是用补码表示的有符号数,其绝对值可用反码+1计算出(具体见书后附注不再赘述),为-128。执行add al,80H 得al=100H,在无符号的情况下CF进位,在有符号的情况下溢出(8位有符号数的取值范围为-128~127),OF=1。
问题2:0FCH=11111100b,有符号数的情况下为-4,无符号数的情况下为252;05h=00000101b,有符号数情况下为5,无符号数情况下为5。所以在有符号数的情况下,相加为1,不溢出,OF=0。
问题3:7DH=01111101b,有符号数情况下,首位为0,故为正值=125;0BH=00001011,有符号数情况下=5。在有符号数情况下相加,为130,溢出,所以OF=1。
这个里面的问题1中80H为负数-128,执行add al,80H,就是-128+(-128)=-256,结果是负数,怎么SF是0呢
还有问题3:7DH=01111101b,有符号数情况下,首位为0,故为正值=125;0BH=00001011,有符号数情况下=5。在有符号数情况下相加,为130,溢出,所以OF=1。不管是有符号数还是无符号数,其结果都是整数,怎么SF=1呢
请哪位解答下 | | |
|
|
|
|
[第14楼]
[ 回复时间:2010-12-28 14:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-11-20 02:27 |
这个里面的问题1中80H为负数-128,执行add al,80H,就是-128 (-128)=-256,结果是负数,怎么SF是0呢
8位寄存器是装不下256的,add al,80h执行之后,al=00000000,本来是100000000,因为他是9位al装不下,所以变成了0。
还有问题3:7DH=01111101b,有符号数情况下,首位为0,故为正值=125;0BH=00001011,有符号数情况下=5。在有符号数情况下相加,为130,溢出,所以OF=1。不管是有符号数还是无符号数,其结果都是整数,怎么SF=1呢
最后结果是10000010,补码中,最高位是1的皆为负数。
也许,大概就这样把,我不理解的是0BH=00001011,有符号数也应该是11吧?怎么是5呢? | | |