兰陵月 发表于 2016-5-9 14:03:08

关于SF标志的问题

本帖最后由 兰陵月 于 2016-5-9 21:22 编辑

符号标志SF用来反映运算结果的符号位,它与【运算结果】的最高位相同。在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。运算结果为正数时,SF的值为0,否则其值为1。


mul 乘法操作后,SF标志位值可能发生变化。

此时SF是对8位结果进行判断,还是16位进行判断?

比如 mul al,结果放在AX中,此时SF标志位是对AX的第15位进行判断吗?还是对AL中的第7位进行判断?

又比如mul AX,结果高位放在DX中,低位放在AX,此时SF标志位是对那个结果进行判断?是直接对DX寄存器的第15位(也就是全部数值的第31位)进行判断?还是判断AX中的第15位?(0~15,共16位)

琢磨半天不得要领,跪求赐教~

兰陵月 发表于 2016-5-9 20:38:56

本帖最后由 兰陵月 于 2016-5-9 21:06 编辑

@还没人回答啊~~~
@康小泡

康小泡 发表于 2016-5-10 10:51:19

兰陵月 发表于 2016-5-9 20:38
@还没人回答啊~~~
@康小泡

写段代码用OD跑一下。就知道了。你试试。

兰陵月 发表于 2016-5-11 09:54:41

康小泡 发表于 2016-5-10 10:51
写段代码用OD跑一下。就知道了。你试试。

写段代码用OD跑?哪个OD?调试游戏的那个吗?逆向的那个吗?

康小泡 发表于 2016-5-11 10:36:04

兰陵月 发表于 2016-5-11 09:54
写段代码用OD跑?哪个OD?调试游戏的那个吗?逆向的那个吗?

对啊,ollydbg。你看寄存器的话只要会几个指令就可以了,单步调试F7 ,F8

兰陵月 发表于 2016-5-11 12:54:09

康小泡 发表于 2016-5-11 10:36
对啊,ollydbg。你看寄存器的话只要会几个指令就可以了,单步调试F7 ,F8

这个知道的,我看看把~
页: [1]
查看完整版本: 关于SF标志的问题