neg指令跟数的补码有什么区别

foshanzhuifeng 2012-02-10 08:56:03
请教一下,汇编指令neg指令的功能是 求补,那么跟数的补码有什么区别?
...全文
934 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
foshanzhuifeng 2012-02-17
  • 打赏
  • 举报
回复
多谢各位!!!
DiamondCG 2012-02-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 caddor 的回复:]

mov al,1
neg al

al变成:0ffh

为什么cf位置位???


cf是进位标志啊, neg指令后,会取相反数,所以从十进制的角度来说,al现在的值是-1

换成十六进制:0ffh, 从右到从,第7位没有向最高位进1





引用 10 楼 diamondcg 的回复:

引用 8 楼 caddor 的回复:

谁给个例子

ne……
[/Quote]
呵呵,NEG指令很惑人的呵.
我曾经得到过指点:不要迷信书,不要迷信人,不要迷信权威.
我自己体会后是:"绝知此事要行"
caddor 2012-02-12
  • 打赏
  • 举报
回复
mov al,1
neg al

al变成:0ffh

为什么cf位置位???


cf是进位标志啊, neg指令后,会取相反数,所以从十进制的角度来说,al现在的值是-1

换成十六进制:0ffh, 从右到从,第7位没有向最高位进1





[Quote=引用 10 楼 diamondcg 的回复:]

引用 8 楼 caddor 的回复:

谁给个例子

neg 后,cf会改变?

菜鸟想不出来

-t

AX=0BB6 BX=0000 CX=000D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BB6 ES=0BA6 SS=0BB6 CS=0BB6 IP=0005 NV UP EI PL NZ NA ……
[/Quote]
DiamondCG 2012-02-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 caddor 的回复:]

谁给个例子

neg 后,cf会改变?

菜鸟想不出来
[/Quote]
-t

AX=0BB6 BX=0000 CX=000D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BB6 ES=0BA6 SS=0BB6 CS=0BB6 IP=0005 NV UP EI PL NZ NA PO NC
0BB6:0005 B001 MOV AL,01
-t

AX=0B01 BX=0000 CX=000D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BB6 ES=0BA6 SS=0BB6 CS=0BB6 IP=0007 NV UP EI PL NZ NA PO NC
0BB6:0007 F6D8 NEG AL
-t

AX=0BFF BX=0000 CX=000D DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BB6 ES=0BA6 SS=0BB6 CS=0BB6 IP=0009 NV UP EI NG NZ AC PE CY
Lactoferrin 2012-02-11
  • 打赏
  • 举报
回复
Performs the two’s complement negation of the valu e in the specified register or memory location by
subtracting the value from 0. Use this instruction only on signed integer numbers.
If the value is 0, the instruction clears the CF flag to 0; otherwise, it sets CF to 1.
The OF, SF, ZF, AF,
and PF flag settings depend on the result of the operation.
NEG Two’s Complement Negation
caddor 2012-02-11
  • 打赏
  • 举报
回复
谁给个例子

neg 后,cf会改变?

菜鸟想不出来
caddor 2012-02-10
  • 打赏
  • 举报
回复
谁给个例子

neg 后,cf会改变?

菜鸟想不出来
caddor 2012-02-10
  • 打赏
  • 举报
回复
谁给个例子

neg 后,cf会改变?

AnYidan 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 czh3642210 的回复:]
neg eax指令 等同于 IMUL eax, -1,即等同于eax乘以-1,根据结果设置CF进位标识,结果为0则CF=0,非0则CF=1。同时分析neg指令的字面意思:“Negative Morphosyntax”,也应该是取负值的意思。一些书上直接说neg指令是对操作数取补运算。这种说法往往让人很迷惑——正数的补数不是自身吗?neg 1 怎么变成了0xffffffff了?由此可见这种说法并不准……
[/Quote]

++
caddor 2012-02-10
  • 打赏
  • 举报
回复
neg指令会改变of

没听说会改变cf

我说的对不对啊





[Quote=引用 3 楼 czh3642210 的回复:]

neg eax指令 等同于 IMUL eax, -1,即等同于eax乘以-1,根据结果设置CF进位标识,结果为0则CF=0,非0则CF=1。同时分析neg指令的字面意思:“Negative Morphosyntax”,也应该是取负值的意思。一些书上直接说neg指令是对操作数取补运算。这种说法往往让人很迷惑——正数的补数不是自身吗?neg 1 怎么变成了0xffffffff了?由此可见这种说法并不……
[/Quote]
面包大师 2012-02-10
  • 打赏
  • 举报
回复
neg eax指令 等同于 IMUL eax, -1,即等同于eax乘以-1,根据结果设置CF进位标识,结果为0则CF=0,非0则CF=1。同时分析neg指令的字面意思:“Negative Morphosyntax”,也应该是取负值的意思。一些书上直接说neg指令是对操作数取补运算。这种说法往往让人很迷惑——正数的补数不是自身吗?neg 1 怎么变成了0xffffffff了?由此可见这种说法并不准确
RabbitLBJ 2012-02-10
  • 打赏
  • 举报
回复
Neg及取补码,相当于求反后+1
Lactoferrin 2012-02-10
  • 打赏
  • 举报
回复
neg是求相反数,用的是补码

70,026

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧