菜鸟一个a 发表于 2014-2-23 22:42:50

ffff每次减1 为什么总共能减9999次?

ffff每次减1 为什么总共能减9999次?

oggplay 发表于 2014-2-23 22:57:14

贴源码啊!!!

菜鸟一个a 发表于 2014-2-23 23:16:08

让CPU执行一段时间的空循环,循环次数为100000次:
    mov dx,10h
    mov ax,0
s:sub ax,1
    sbb dx,0
    cmp ax,0
    jne s
    cmp dx,0
    jne s
相当于循环套嵌,外循环为10,内循环为10000;内循环10000是由ax=0减1变为ffff,接着每次减1,共减10000次,为什么是10000次?

枫界易城 发表于 2014-2-23 23:25:37

我个人觉得不是让cpu循环100000次,ffff的十进制数是65535,ax从0开始减到ffff再减到0一个65536次,而dx的值为10h,也就是十进制16,所以一共循环的次数应该是1048560,转成16进制即ffff0。

oggplay 发表于 2014-2-23 23:48:09

靠,mov dx,10h好晕我,我以为是十六进制,原来是十进制。。。。

不过我正在调试 我看看

oggplay 发表于 2014-2-24 00:10:38

本帖最后由 oggplay 于 2014-2-24 00:15 编辑

调试结果都是65536:big早就溢出了CPU忙的不可开交

tk2003 发表于 2014-2-24 19:54:47

1:第一次sub ax,1后,ax=0ffffh
2.在ax=0ffffh是,要不满足jne条件,也就是可以向下执行了,一共要操作ffffh+1次,也就是10000h次
这是内循环,外循环还有个10h,两个相乘就是100000h次

yoyo89757 发表于 2014-2-24 23:14:37

暂时不知道啊{:2_25:}{:2_30:},努力学习学习再说吧,我看好你哦

菜鸟一个a 发表于 2014-2-28 16:39:12

yoyo89757 发表于 2014-2-24 23:14 static/image/common/back.gif
暂时不知道啊,努力学习学习再说吧,我看好你哦

加油!:victory:

猫咪喵喵 发表于 2014-3-6 18:53:31

亲你的问题就不准确 应该是9999h次吧
页: [1]
查看完整版本: ffff每次减1 为什么总共能减9999次?