. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->标志寄存器
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  求检测点11.2答案  [待解决] 回复[ 14次 ]   点击[ 970次 ]  
yc2010
[帖 主]   [ 发表时间: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
yc2010
[第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

别人帖子中的答案,有些不懂,哪位能帮我解释下,感激不尽。
yc2010
[第2楼]   [ 回复时间:2010-06-02 19:44 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-03-03 23:27
怎么没人解答啊。
快来个解释下检测点11.2.
harryhwg
[第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语句不会改变以上标记寄存器的值。
yc2010
[第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是多少?
yc2010
[第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是多少?
harryhwg
[第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。
xianzq888
[第7楼]   [ 回复时间:2010-06-22 16:14 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-01-03 14:44
问题一我能理解,后面两个问题就觉得不能理解了,,为什么   ADD AL,80这儿都溢出了后面的两个确没有呢.是怎么计算机的呢?坐等高手解答.
tk1363704
[第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。
任何一本计算机组成原理的教科书里都有对于补码知识详尽的解释,你可以去学习一下。
lyrus
[第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
anuya
[第10楼]   [ 回复时间:2010-09-14 19:23 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-09-13 18:17
回复:[第9楼]
------------------
看书203页中间,“有的指令的执行对标志寄存器没有影响,比如:mov、push、pop等”
yeshuping
[第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呢?请指教!
toopoor
[第12楼]   [ 回复时间:2010-10-13 15:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-09-27 17:38
楼上的基本功太不扎实了,二进制的从2的零次方开始的,不是从2的一次放开始的。
qingfeng203
[第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呢
 请哪位解答下
340500171
[第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呢?
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved