小编Sle*_*eko的帖子

<puts @ plt>究竟是什么意思?

目前我试图更接近汇编程序编程,因此查看了一个简单的hello world程序的汇编程序代码:

#include <stdio.h>

int main () 
{
    int i;
    for(i=0; i<10; i++)
    {
        printf("Hello, world!\n");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我尝试理解fiew简单汇编程序命令如何工作,同时逐步执行汇编程序代码并分析究竟发生了什么:

   0x000000000040052d <+0>: push   rbp
   0x000000000040052e <+1>: mov    rbp,rsp
   0x0000000000400531 <+4>: sub    rsp,0x10
   0x0000000000400535 <+8>: mov    DWORD PTR [rbp-0x4],0x0
   0x000000000040053c <+15>:    jmp    0x40054c <main+31>
   0x000000000040053e <+17>:    mov    edi,0x4005e4
   0x0000000000400543 <+22>:    call   0x400410 <puts@plt>
   0x0000000000400548 <+27>:    add    DWORD PTR [rbp-0x4],0x1
   0x000000000040054c <+31>:    cmp    DWORD PTR [rbp-0x4],0x9
   0x0000000000400550 <+35>:    jle    0x40053e <main+17>
   0x0000000000400552 <+37>:    mov    eax,0x0
   0x0000000000400557 <+42>:    leave  
   0x0000000000400558 <+43>:    ret …
Run Code Online (Sandbox Code Playgroud)

c assembly call

9
推荐指数
1
解决办法
6507
查看次数

如何为Console.WriteLine覆盖使用自己的类?

我希望我的ConsoleEngine班级处理Console.WriteLine()方法.我如何准备我的ConsoleEngine类来覆盖该WriteLine()方法?

c# overriding

5
推荐指数
1
解决办法
3452
查看次数

PHP while循环忽略它的条件

目前我尝试在php中创建一个函数,它只读取数组字段的int值并将其与最大值进行比较.
如果达到此最大值,则应将该字段的值设置为零,跳转到数组中的下一个字段并增加存储在其中的int值.
如果该值也达到最大值,则执行与上述相同的操作.
如果上述条件不成立,则只增加数组中的存储值.

我的代码看起来像这样:

if($sign_counter[0] === (count($pw_signs) - 1)){
    $counter = 0;
    while($sign_counter[$counter] === (count($pw_signs) - 1)){
        $sign_counter[$counter] = "0";
        $counter++;
    }
    $sign_counter[$counter]++;
}
else{
    $sign_counter[0]++;
}
Run Code Online (Sandbox Code Playgroud)

我已经在我的网站和浏览器上用不同的值多次测试了这部分功能.我还检查了值是否正确存储在数组中和所需的变量中.

多数民众赞成我的阵列如何:

$sign_counter = array("38", "2");
Run Code Online (Sandbox Code Playgroud)

例如:

$ sign_counter数组用于存储int值
(count($ pw_signs) - 1)总是等于38(因为计数数组中有39个字段)
$ counter用于确定数组内的字段位置

现在,如果我将值"38"存储在第一个字段中并且"2"存储在数组的第二个字段中,则代码应该检测到,在第一个字段中达到最大值,将字段的值设置为0,然后跳转到下一个字段并将其值增加1.

而不是我想要实现的代码只是增加了数组的第一个字段的值.
看起来while循环只是忽略了它自己的条件,但值本身似乎不是问题.

我真的不明白为什么while循环的行为是这样的.
我完全错过了什么吗?

非常感谢任何帮助.
问候困了

php arrays while-loop

0
推荐指数
1
解决办法
42
查看次数

标签 统计

arrays ×1

assembly ×1

c ×1

c# ×1

call ×1

overriding ×1

php ×1

while-loop ×1