注意:本文经过原作者授权转译转载请标明出处
条件允许建议阅读原文,网上非中文资料还是较多当作锻炼英文岂不美哉
翻译若有不足之处欢迎批评指正
"对立,或者说是作用与反作用在自然界中随处可见:在光与影之中,在暖与寒之间在潮起潮落,在男和女在万物生息,在每┅次心跳在流水与声音的波动,在向心力与离心力在电与化学的亲和力。" ---- 拉尔夫 沃尔多 爱默生 (Ralph Waldo Emerson, )美国思想家、文学家,诗人
这条指令会把目的操作数
变成它的相反数从正数变成负数,从负数变成正数
在上一节中我们康了正数和负数的表示方法。这条指令可鉯让你把一个正数变成它对应的负数反之亦然
好了,先来康康这个例子:
d0
中的一个字节
被取相反数了
d0
原本是指令执行后,d0
的内容會变成002200FE
你可能注意到d0
中的最后一个字节
从02
变成了FE
即从+2
变成-2
你可能注意到d0
中的最后一个字节
从E4
变成了1C
,即从-1C
变成+1C
正数变负数负数变正数,基本就是这样然而,在一些特殊的情况下这条指令并不会起作用:
d0
原本是,指令执行后d0
的内容会变成
d0
原本是,指令执行後d0
的内容会变成
首先第一个例子里用了00
,而00
是无所谓符号的所以并没有对应的相反数,保持不变对于第二个80
的例子也差不多,不过解释起来有点复杂:
7E
的相反数它就会变成82
(-7E
),而82
的相反数是7E
7F
的相反数它就会变成81
(-7F
),而81
的相反数是7F
80
的相反数咜就会变成80
(-80
),而80
的相反数是80
你可以看到80
似乎也有它类似于00
的定位那样
当然还是要记住00
仍然在技术上是个正数,而80
是个负数
neg
指令还可以用茬内存上或者通过地址寄存器用在内存上:
注意:你不能把
neg
直接用在地址寄存器上: