我需要帮助解决家庭作业问题。我应该弄清楚edx
这段代码运行后的值是多少。
0x40106e <main+30>: mov $0x1,%edx
0x401073 <main+35>: mov $0x8,%ecx
0x401078 <main+40>: test %ecx,%ecx
0x40107a <main+42>: jg 0x40107e <main+46>
0x40107c <main+44>: jmp 0x40108a <main+58>
0x40107e <main+46>: lea (%ecx,%ecx,1),%eax
0x401081 <main+49>: lea (%eax,%edx,1),%eax
0x401084 <main+52>: lea 0xffffffff(%eax),%edx
0x401087 <main+55>: dec %ecx
0x401088 <main+56>: jmp 0x401078 <main+40>
0x40108a <main+58>: // endpoint
由于这是家庭作业,我真的不想知道答案,而是想知道如何弄清楚。我在弄清楚循环时遇到了麻烦,但我想我明白了。我认为test %ecx,%ecx
循环直到%ecx
减少到 0。对吗?真正吸引我的是所有的lea
东西。我无法弄清楚那在做什么。