64-разрядный Linux, Ассемблер, Проблемы?

start /B в порядке. Однако обычно php нет в %PATH% в Windows. Вы должны определить полный путь. Попробуйте константу PHP_BINARY, которая должна содержать абсолютный путь к исполняемому файлу PHP.

Если вы хотите прочитать поток stdout процесса, вы можете сделать его неблокирующим:

$cmd = PHP_BINARY;
if(is_resource($proc = proc_open("start /B $cmd script.php", [['pipe', 'r'], ['pipe', 'w'], ['pipe', 'w']], $pipes)))
{
  echo '<h1>Process Stream</h1>', PHP_EOL;
  stream_set_blocking($pipes[1], false);
  stream_set_blocking($pipes[2], false);

Затем вы можете получить доступ к потокам, не ожидая EOF / EOL .

7
задан Peter Mortensen 21 October 2009 в 20:31
поделиться

2 ответа

Ваши примеры кода должны все все еще работать. 64-разрядные процессоры и операционные системы могут все еще выполнить 32-битный код в своего рода "режиме совместимости". Ваши примеры блока не отличаются. Вам, вероятно, придется обеспечить дополнительную строку блока или два (такого как.BITS 32), но это - все.

В целом использование 64-разрядной ОС будет быстрее, чем использование 32-разрядной ОС. x86_64 имеет больше регистров, чем i386. Так как Вы работаете над блоком, Вы уже знаете то, для чего используются регистры... Наличие больше из них означает, что меньше материала должно быть углублено и от стека (и другая временная память) таким образом, Ваша программа проводит меньше времени руководящие данные и больше времени, работая над теми данными.

Править: Для компиляции 32-битного кода на 64-разрядном Linux с помощью газа Вы просто используете параметр командной строки "-32", как отмечено в руководстве GAS

4
ответ дан 7 December 2019 в 10:08
поделиться

Даже при выполнении Linux 64 бита возможно скомпилировать и выполнить двоичные файлы на 32 бита на нем. Я не знаю, как поддержка хорошего Монетного двора то есть, я предполагаю, что необходимо проверить.

Ассемблер на 64 бита однако не полностью совместим с 32 битами, например, Вы имеете отличающийся (больше) регистры. Существуют некоторые конкретные инструкции, не доступные на любой платформе.

Я сказал бы, что перемещение к 64 битам не является грандиозным предприятием. Можно все еще записать блок на 32 бита и затем возможно, попытаться добраться, это также работающий как 64 бита (не должно быть слишком твердым), как источник еще большего количества забавы программирования/изучения.

1
ответ дан 7 December 2019 в 10:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: