. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->标志寄存器
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  监测点11.2 80H+80H为什么溢出了???  [待解决] 回复[ 7次 ]   点击[ 546次 ]  
miaoasm
[帖 主]   [ 发表时间:2011-07-06 19:16 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-06-13 15:40
mov al,80H
add al,80H
为什么溢出了?

以我的理解,80H+80H

 1000 0000
+1000 0000
------------
10000 0000

则al的结果为0,在-128~127范围里,
应该不算溢出啊?

我看网上有的解释,说是因为进了一位,就溢出了
按照这个逻辑,CF=1的,OF必等于1,
但是显然这个结论是不正确的!

百思不得其解,求教了
miaoasm
[第1楼]   [ 回复时间:2011-07-06 19:58 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-06-13 15:40
我好想找到了一个方法,
不考虑这两个数的16进制和2进制,只考虑他们代表的十进制数值
只要不在 -128~127范围,就是溢出!

但是总想从 16进制或2进制的 式子里,找出点原因来……

不知道我的想法正确不正确,
想听听各位是怎么判断OF是否溢出的
qqcrack
[第2楼]   [ 回复时间:2011-07-07 00:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-07-04 18:37
128 128=256,而Al只能表示到255,所以就溢出了,当你用al时,cpu认为AX和AL是两个独立且不相干寄存器,所以溢出的那个1不在ah里,好像跑到了CF里,至于OF为什么置1了,应该是因为加法溢出吧,毕竟已经溢出了,Al为0是溢出后的结果
z0813462
[第3楼]   [ 回复时间:2011-08-31 01:27 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-30 22:20
80h为-128的补码  80h+80h按照有符号运算就是 -128 + -128 = -128-128 = -256  所以溢出了
z0813462
[第4楼]   [ 回复时间:2011-08-31 01:31 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-30 22:20
二进制算得话,1000 0000 + 1000 0000 = 1 0000 0000  进位 cf=1

1 0000 0000 也就是-256 的补码  溢出,超出 -128 -- 127   of =1
八位寄存器al保留值为:0000 0000  zf = 1     pf = 1
21-lz-21
[第5楼]   [ 回复时间:2011-09-15 19:10 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-09-08 16:38
你错啦  我给你个答案 那个cf和of 是针对无符号和有符号而言的 那么80h+80h肯定8位存储不下了因为最多为
ffh故它进位了 所以cf为1 若是进行有符号运算的话先把80h转换为2进制得到10000000这是补码 所以转换为十进制的话就是-128故乘以2就溢出了 所以of也为1 cpu进行运算的时候分别进行有符号和无符号各一次的运算将运行的结果分别存储在cf 和of 中 希望对你有帮助
chinatree
[第6楼]   [ 回复时间:2011-09-15 19:49 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
同意楼上。
21-lz-21
[第7楼]   [ 回复时间:2011-09-16 18:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-09-08 16:38
再补充点那个cf 和 of 分别对有符号数和无符号数运算溢出的记录 你可以看看清华大学出版社的 汇编
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved