QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

VIP至尊会员

Rank: 15Rank: 15Rank: 15

积分
13
查看: 74|回复: 10

[已解决]关于标志寄存器OF,debug调试是NV ,是不是已经溢出了,应该是OV

[复制链接]
最佳答案
1 
累计签到:1 天
连续签到:1 天
LoveFish- 发表于 2017-11-14 17:47:34 7410 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
assume        cs:code

code         segment
start:        mov ax,0
                mov ax,0ffffh
                add ax,88h
                mov ax,4c00h
                int 21h
code        ends
end  start
最佳答案
2017-11-14 21:54:26
不可以的,这是设计之初就定好的。
楼层
跳转到指定楼层
最佳答案
18 
累计签到:99 天
连续签到:1 天
3-3 发表于 2017-11-14 18:32:09 | 显示全部楼层
of 只管有符号的数的运算是否会超过那个数的范围, 所以mov ax,0ffffh 相当于 ax = -1  , add ax,88h  情况下,ax = 87h, 而NV[Not Overflow]表示没有溢出,所以结果是对的,NV表示没有溢出。

最佳答案
1 
累计签到:1 天
连续签到:1 天
LoveFish-  楼主| 发表于 2017-11-14 20:03:51 | 显示全部楼层
cpu怎么知道寄存器ax=-1  如何让CPU把寄存器ax相当于ax=ffffh
最佳答案
1 
累计签到:1 天
连续签到:1 天
LoveFish-  楼主| 发表于 2017-11-14 20:12:22 | 显示全部楼层
3-3 发表于 2017-11-14 18:32
of 只管有符号的数的运算是否会超过那个数的范围, 所以mov ax,0ffffh 相当于 ax = -1  , add ax,88h  情况 ...


cpu怎么知道寄存器ax=-1  如何让CPU把寄存器ax相当于ax=ffffh
最佳答案
18 
累计签到:99 天
连续签到:1 天
3-3 发表于 2017-11-14 20:23:19 | 显示全部楼层
本帖最后由 3-3 于 2017-11-14 20:24 编辑

对于CPU来说,它只是一堆数据。 关键在于人怎么看,标志位是人们观察数据的工具,of 只管有符号的数的运算,而cf只管无符号的。在观察of时,数据就是有符号的,在观察cf时,数据就是无符号的。  一定要记住,数据就是数据,它的意义主要取决于人怎么看。
最佳答案
1 
累计签到:1 天
连续签到:1 天
LoveFish-  楼主| 发表于 2017-11-14 21:14:33 | 显示全部楼层
3-3 发表于 2017-11-14 20:23
对于CPU来说,它只是一堆数据。 关键在于人怎么看,标志位是人们观察数据的工具,of 只管有符号的数的运算 ...

assume        cs:code

code         segment
start:        mov ax,0
                mov ax,0ffffh
                add ax,88h
                mov ax,4c00h
                int 21h
code        ends
end  start
怎么改动下程序,使得ax=65535  然后执行add ax,88h  标志位of 变成OV  非常感谢
最佳答案
18 
累计签到:99 天
连续签到:1 天
3-3 发表于 2017-11-14 21:23:44 | 显示全部楼层
本帖最后由 3-3 于 2017-11-14 21:26 编辑

在有符号的情况下,整数范围为-32768~32767,最高位为符号位;无符号整数范围为0~65535,最高位仍为数值位。
所以在有符号的情况下,ax=65535 是不可能的。
最佳答案
1 
累计签到:1 天
连续签到:1 天
LoveFish-  楼主| 发表于 2017-11-14 21:44:58 | 显示全部楼层
3-3 发表于 2017-11-14 21:23
在有符号的情况下,整数范围为-32768~32767,最高位为符号位;无符号整数范围为0~65535,最高位仍为数值位 ...

怎样定义MOV ax,0ffffh为无符号  
最佳答案
18 
累计签到:99 天
连续签到:1 天
3-3 发表于 2017-11-14 21:51:44 | 显示全部楼层
3-3 发表于 2017-11-14 20:23
对于CPU来说,它只是一堆数据。 关键在于人怎么看,标志位是人们观察数据的工具,of 只管有符号的数的运算 ...

它只是一堆数据,关键在于你怎么对待它。
最佳答案
1 
累计签到:1 天
连续签到:1 天
LoveFish-  楼主| 发表于 2017-11-14 21:51:48 | 显示全部楼层
LoveFish- 发表于 2017-11-14 21:44
怎样定义MOV ax,0ffffh为无符号

在8086cpu通用寄存器ax默认都是有符号的吗?可不可以定义通用寄存器ax为无符号FFFFh 相当于 ax=65535而不是ax=-1
最佳答案
18 
累计签到:99 天
连续签到:1 天
3-3 发表于 2017-11-14 21:54:26 | 显示全部楼层    本楼为最佳答案   
不可以的,这是设计之初就定好的。

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /1 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2017-11-25 06:04

快速回复 返回顶部 返回列表