社区
汇编语言
帖子详情
请教汇编达人!CF,OF,补码问题!
wenqinwuhai
2012-04-14 03:21:14
mov eax, 1
sub eax, 2
;CF,OF是多少?二进制是怎么计算的!CPU的计算过程是转换为加上-2的补码吗?二进制借位怎么看?CPU怎么实现?怎么判断是否需要借位!CPU应该只有加法器!
mov eax, 1
add eax, -2
和上边的CF,OF,计算步骤有什么不同!CPU的计算过程是什么?
mov bl,64h
sub bl,03h
CF,OF?补码?
3-C8,怎么计算?无符号情况和有符号情况!谢谢,达人解答!
...全文
269
10
打赏
收藏
请教汇编达人!CF,OF,补码问题!
mov eax, 1 sub eax, 2 ;CF,OF是多少?二进制是怎么计算的!CPU的计算过程是转换为加上-2的补码吗?二进制借位怎么看?CPU怎么实现?怎么判断是否需要借位!CPU应该只有加法器! mov eax, 1 add eax, -2 和上边的CF,OF,计算步骤有什么不同!CPU的计算过程是什么? mov bl,64h sub bl,03h CF,OF?补码? 3-C8,怎么计算?无符号情况和有符号情况!谢谢,达人解答!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BAYNPU
2012-04-16
打赏
举报
回复
请参考这个网站:
http://www.gg-led.com/thread-749286---.html
wenqinwuhai
2012-04-15
打赏
举报
回复
1-2=1+(-2)=1加-2的补码=0001+1110=1111=-1
二进制上怎么看借位?
00000001
11111110
11111111
是加补码,怎么看借位?
masmaster
2012-04-15
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
1-2=1+(-2)=1加-2的补码=0001+1110=1111=-1
二进制上怎么看借位?
00000001
11111110
11111111
是加补码,怎么看借位?
[/Quote]
汇编语言手册里没有写“二进制怎么看借位”,或许你可以去看INTEL手册
ad6673706
2012-04-15
打赏
举报
回复
加数1 0001的符号位与结果1111的符号的比
不同就算借位了
masmaster
2012-04-14
打赏
举报
回复
减法运算是通过补码加法实现的,如以4位为例:
1-2=1+(-2)=1加-2的补码=0001+1110=1111=-1
关于CPU的CF标志位是如何实现的,已经超出了汇编语言讨论的范畴。
wenqinwuhai
2012-04-14
打赏
举报
回复
mov eax, 1
sub eax, 2
;CF,OF是多少?二进制是怎么计算的!CPU的计算过程是转换为加上-2的补码吗?二进制借位怎么看?CPU怎么实现?怎么判断是否需要借位!CPU应该只有加法器
知道CF=1,OF=0。但二进制怎么看?、
00000001
11111110 +(-1)
11111111
是做的加法运算,怎么看借位?谢谢,汇编达人!
BAYNPU
2012-04-14
打赏
举报
回复
mov eax, 1
sub eax, 2
;CF,OF是多少?二进制是怎么计算的!CPU的计算过程是转换为加上-2的补码吗?二进制借位怎么看?CPU怎么实现?怎么判断是否需要借位!CPU应该只有加法器!
答:1、对标志的影响CF进位置1,它在做减法有借,对PF奇标志影响当运算结果最低字节中“1”的个数零或偶数,PF=1
对AF辅助进标志影响,运算时D3位(低半字节)有进位或借位时AF=1。
2、它对OF影响因为没有溢出。
以下是运算结果:
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0100 NV UP EI PL NZ NA PO NC
0AFB:0100 B001 MOV AL,01
-t
AX=0001 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0102 NV UP EI PL NZ NA PO NC
0AFB:0102 2C02 SUB AL,02
-t
AX=00FF BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AFB ES=0AFB SS=0AFB CS=0AFB IP=0104 NV UP EI NG NZ AC PE CY
masmaster
2012-04-14
打赏
举报
回复
2楼插入广告的方法很奇特!
ad6673706
2012-04-14
打赏
举报
回复
自己用DEBUG试试就知道了
上面两个计算步骤应该是差不多的
想象一下计算里有一个有符号加法器 你看不到每次计算的状态都用OF表示出来
汇编
语言
cf
,
of
,sf,zf
汇编
语言
cf
,
of
,sf,zf
CF
是无符号数溢出标志,
OF
是有符号数溢出标志。
CF
是判断有无进位,有进位或者借位时,
CF
=1
OF
是溢出判断,溢出时,
OF
=1, ZF是判断结果是否为0,运算结果为0,则ZF=1 SF是判断正负数,运算结果为负数,则SF=1 • 5.9 求和差及SF,ZF,
CF
,
OF
1)7450h和1234h 7450h= 0111 0100 0101 0000 + 1234h= 0001 0010 0011 0100 = 8684h= 1000 0110 1000 0100SF,ZF
[
汇编
] 关于
补码
和
汇编
语言的cmp指令
汇编
语言,
补码
原码转
补码
计算方法
cpp 原码转
补码
计算方法 众所周知,在计算机里的数据一般是用二进制的
补码
存储的,但
问题
是——
补码
我们看不懂呀!!!!我们只看得懂原码啊!!!! 为了拯救大家有限的脑容量,今天我们就来一起看看原码如何转
补码
原码其实还分正负的,正数的二进制的第一位(称为“符号位”)是0,反之为1 注意了,正数的二进制原码等于
补码
!!!等于
补码
!!!等于
补码
!!! 所以我们就着重来看负数如何转换 第一步:将除了符号位以外的所有数字取反(既0变1,1变0) 第二步:将得到的数+1 就得到
补码
啦!!! 如果喜欢我的文章的话,请
汇编
学习-
补码
计算机中表示有符号数 假设计算机字长位8,最高位为1表示负数 +5 ====》 0000 0101 -5 =====》 1000 0101
补码
的原理 例如:假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨4小时,即:10-4=6;另一种是顺拨8小时:10+8=12+6=6 在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以
汇编
语言--
补码
以8位的数据为例,对于无符号数来说是从00000000b~11111111b到0~255一一对应的。那么我们如何对有符号数进行编码吗?即我们如何用8位数据表示有符号数呢?既然表示的数有符号,则必须要能够区分正、负。首先,我们可以考虑用8位数据的最高位来表示符号,1表示负,0表示正,而用其他位表示数值,如下:00000000b000000001b100000010b201111...
汇编语言
21,459
社区成员
41,600
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章