diff options
Diffstat (limited to 'documentation/content/ru/books/developers-handbook/x86')
| -rw-r--r-- | documentation/content/ru/books/developers-handbook/x86/_index.adoc | 6 | ||||
| -rw-r--r-- | documentation/content/ru/books/developers-handbook/x86/_index.po | 388 |
2 files changed, 204 insertions, 190 deletions
diff --git a/documentation/content/ru/books/developers-handbook/x86/_index.adoc b/documentation/content/ru/books/developers-handbook/x86/_index.adoc index c44f67bb5c..c4a63de15f 100644 --- a/documentation/content/ru/books/developers-handbook/x86/_index.adoc +++ b/documentation/content/ru/books/developers-handbook/x86/_index.adoc @@ -1,11 +1,11 @@ --- -authors: +authors: ~ description: 'Программирование на ассемблере x86' next: books/developers-handbook/partv params: path: /books/developers-handbook/x86/ prev: books/developers-handbook/partiv -showBookMenu: true +showBookMenu: 'true' tags: ["x86", "guide"] title: 'Глава 11. Программирование на языке ассемблера для x86' weight: 15 @@ -1674,7 +1674,7 @@ UNIX(R) позволяет нам отображать файл или его ч Поскольку наша программа может объединять последовательности возврата каретки / перевода строки в простые переводы строк, наш вывод может быть меньше, чем ввод. Однако, так как мы помещаем вывод в тот же файл, из которого читаем ввод, нам может потребоваться изменить размер файла. -Системный вызов `ftruncate` позволяет нам сделать именно это. Несмотря на название , несколько вводящее в звблуждение, системный вызов `ftruncate` может использоваться как для усечения файла (уменьшения его размера), так и для его увеличения. +Системный вызов `ftruncate` позволяет нам сделать именно это. Несмотря на название , несколько вводящее в заблуждение, системный вызов `ftruncate` может использоваться как для усечения файла (уменьшения его размера), так и для его увеличения. И да, мы найдем две версии `ftruncate` в [.filename]#syscalls.master#, старую (130) и новую (201). Мы будем использовать новую: diff --git a/documentation/content/ru/books/developers-handbook/x86/_index.po b/documentation/content/ru/books/developers-handbook/x86/_index.po index 325770cdce..da7f8885be 100644 --- a/documentation/content/ru/books/developers-handbook/x86/_index.po +++ b/documentation/content/ru/books/developers-handbook/x86/_index.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" -"POT-Creation-Date: 2025-10-12 22:16+0300\n" -"PO-Revision-Date: 2025-09-26 04:45+0000\n" +"POT-Creation-Date: 2025-05-01 19:56-0300\n" +"PO-Revision-Date: 2025-10-29 04:45+0000\n" "Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" "Language-Team: Russian <https://translate-dev.freebsd.org/projects/" "documentation/booksdevelopers-handbookx86_index/ru/>\n" @@ -25,7 +25,7 @@ msgstr "" msgid "x86 Assembly Language Programming" msgstr "Программирование на ассемблере x86" -#. type: Yaml Front Matter Hash Value: title +#. type: YAML Front Matter: title #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1 #, no-wrap msgid "Chapter 11. x86 Assembly Language Programming" @@ -482,8 +482,8 @@ msgid "" "other convention implemented in the Linux emulation mode, read [.filename]#/" "usr/src/sys/i386/linux/syscalls.master#." msgstr "" -"Основной файл для стандартного соглашения о вызовах UNIX(R) можно найти в " -"[.filename]#/usr/src/sys/kern/syscalls.master#. Если вам необходимо " +"Основной файл для стандартного соглашения о вызовах UNIX(R) можно найти в [." +"filename]#/usr/src/sys/kern/syscalls.master#. Если вам необходимо " "использовать другое соглашение, реализованное в режиме эмуляции Linux, " "обратитесь к [.filename]#/usr/src/sys/i386/linux/syscalls.master#." @@ -499,8 +499,7 @@ msgstr "" #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:218 msgid "[.filename]#syscalls.master# describes how the call is to be made:" -msgstr "" -"[.filename]#syscalls.master# описывает, как должен быть выполнен вызов:" +msgstr "[.filename]#syscalls.master# описывает, как должен быть выполнен вызов:" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:229 @@ -599,7 +598,7 @@ msgstr "" msgid "For example, man:open[2] says:" msgstr "Например, man:open[2] говорит:" -#. type: .blockquote +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:258 msgid "" "If successful, `open()` returns a non-negative integer, termed a file " @@ -610,7 +609,7 @@ msgstr "" "файловым дескриптором. В случае ошибки возвращается `-1`, а переменной " "`errno` присваивается код ошибки." -#. type: .blockquote +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:260 msgid "" "The assembly language programmer new to UNIX(R) and FreeBSD will immediately " @@ -712,8 +711,8 @@ msgid "" "When using the standard FreeBSD calling convention, the `carry flag` is " "cleared upon success, set upon failure." msgstr "" -"При использовании стандартного соглашения о вызовах FreeBSD флаг `carry " -"flag` сбрасывается при успехе и устанавливается при неудаче." +"При использовании стандартного соглашения о вызовах FreeBSD флаг `carry flag`" +" сбрасывается при успехе и устанавливается при неудаче." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:305 @@ -1325,9 +1324,8 @@ msgid "" "Go ahead, enter it into your editor and save it as [.filename]#system.inc#. " "We will add more to it as we discuss more syscalls." msgstr "" -"Продолжайте, введите это в ваш редактор и сохраните как " -"[.filename]#system.inc#. Мы добавим больше по мере обсуждения дополнительных " -"системных вызовов." +"Продолжайте, введите это в ваш редактор и сохраните как [.filename]#system." +"inc#. Мы добавим больше по мере обсуждения дополнительных системных вызовов." #. type: Title == #: documentation/content/en/books/developers-handbook/x86/_index.adoc:539 @@ -1394,8 +1392,8 @@ msgid "" "Here is what it does: Line 1 includes the defines, the macros, and the code " "from [.filename]#system.inc#." msgstr "" -"Вот что он делает: Строка 1 включает определения, макросы и код из файла " -"[.filename]#system.inc#." +"Вот что он делает: Строка 1 включает определения, макросы и код из файла [." +"filename]#system.inc#." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:568 @@ -1406,9 +1404,8 @@ msgid "" "bytes." msgstr "" "Строки 3-5 содержат данные: строка 3 начинает раздел/сегмент данных. Строка " -"4 содержит строку \"Hello, World!\", за которой следует новая строка " -"(`0Ah`). Строка 5 создает константу, содержащую длину строки из строки 4 в " -"байтах." +"4 содержит строку \"Hello, World!\", за которой следует новая строка (`0Ah`)" +". Строка 5 создает константу, содержащую длину строки из строки 4 в байтах." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:572 @@ -1456,8 +1453,8 @@ msgstr "" "Если вы перешли на UNIX(R) с опытом программирования на ассемблере для MS-" "DOS(R), вы, возможно, привыкли писать напрямую в видеопамять. В FreeBSD или " "любой другой разновидности UNIX(R) вам не придётся об этом беспокоиться. С " -"вашей точки зрения, вы записываете данные в файл под названием " -"[.filename]#stdout#. Это может быть экран, терминал telnet, обычный файл или " +"вашей точки зрения, вы записываете данные в файл под названием [." +"filename]#stdout#. Это может быть экран, терминал telnet, обычный файл или " "даже входные данные другой программы. Определять, что именно это будет, — " "задача системы." @@ -1473,8 +1470,8 @@ msgid "" "Type the code in an editor, and save it in a file named " "[.filename]#hello.asm#. You need nasm to assemble it." msgstr "" -"Наберите код в редакторе и сохраните его в файле с именем " -"[.filename]#hello.asm#. Для сборки вам понадобится nasm." +"Наберите код в редакторе и сохраните его в файле с именем [.filename]#hello." +"asm#. Для сборки вам понадобится nasm." #. type: Title ==== #: documentation/content/en/books/developers-handbook/x86/_index.adoc:594 @@ -1530,9 +1527,9 @@ msgid "" "sourceforge.net/projects/nasm[home page]. You can still use it to assemble " "FreeBSD code." msgstr "" -"Если ваша система не FreeBSD, вам нужно получить nasm с его https://" -"sourceforge.net/projects/nasm[домашней страницы]. Вы по-прежнему можете " -"использовать его для ассемблирования кода FreeBSD." +"Если ваша система не FreeBSD, вам нужно получить nasm с его " +"https://sourceforge.net/projects/nasm[домашней страницы]. Вы по-прежнему " +"можете использовать его для ассемблирования кода FreeBSD." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:619 @@ -1580,8 +1577,8 @@ msgid "" "convert each byte of its input into a hexadecimal number followed by a blank " "space." msgstr "" -"В этой главе мы разработаем простой фильтр и научимся читать из " -"[.filename]#stdin# и писать в [.filename]#stdout#. Этот фильтр будет " +"В этой главе мы разработаем простой фильтр и научимся читать из [." +"filename]#stdin# и писать в [.filename]#stdout#. Этот фильтр будет " "преобразовывать каждый байт входных данных в шестнадцатеричное число, за " "которым следует пробел." @@ -2023,8 +2020,8 @@ msgid "" "[.filename]#stdout#." msgstr "" "Мы также создаем выходной буфер. Мы сохраняем наш вывод в нем, пока он не " -"заполнится. В этот момент мы просим ядро записать содержимое буфера в " -"[.filename]#stdout#." +"заполнится. В этот момент мы просим ядро записать содержимое буфера в [." +"filename]#stdout#." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:820 @@ -2036,8 +2033,8 @@ msgid "" "some of your output is missing." msgstr "" "Программа завершается, когда больше нет входных данных. Но нам всё ещё нужно " -"попросить ядро записать содержимое нашего выходного буфера в " -"[.filename]#stdout# в последний раз, иначе часть нашего вывода попадёт в " +"попросить ядро записать содержимое нашего выходного буфера в [." +"filename]#stdout# в последний раз, иначе часть нашего вывода попадёт в " "буфер, но так и не будет отправлена. Не забудьте об этом, иначе будете " "недоумевать, куда пропала часть вывода." @@ -2486,8 +2483,8 @@ msgid "" "processing. If it is followed by white space, or some other value, then it " "is not part of the current token." msgstr "" -"Например, вы можете анализировать входной поток на наличие текстовой строки " -"(например, при реализации компилятора языка): если символ следует за другим " +"Например, вы можете анализировать входной поток на наличие текстовой строки (" +"например, при реализации компилятора языка): если символ следует за другим " "символом или, возможно, цифрой, он является частью обрабатываемой лексемы. " "Если за ним следует пробел или другое значение, то он не является частью " "текущей лексемы." @@ -2711,9 +2708,9 @@ msgid "" "(the first call will still be within the buffer, the remaining 16 may be " "either within the buffer or within the \"spare\")." msgstr "" -"С этим изменением вы можете безопасно вызывать `ungetc` до 17 раз подряд " -"(первый вызов всё ещё будет в пределах буфера, остальные 16 могут быть либо " -"в пределах буфера, либо в пределах \"запасного\" пространства)." +"С этим изменением вы можете безопасно вызывать `ungetc` до 17 раз подряд (" +"первый вызов всё ещё будет в пределах буфера, остальные 16 могут быть либо в " +"пределах буфера, либо в пределах \"запасного\" пространства)." #. type: Title == #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1165 @@ -2800,9 +2797,9 @@ msgid "" "[.filename]#hex.asm#. First, however, we need to add a few lines to " "[.filename]#system.inc#:" msgstr "" -"Вооружившись этими знаниями, мы почти готовы к следующей версии " -"[.filename]#hex.asm#. Однако сначала нам нужно добавить несколько строк в " -"[.filename]#system.inc#:" +"Вооружившись этими знаниями, мы почти готовы к следующей версии [." +"filename]#hex.asm#. Однако сначала нам нужно добавить несколько строк в [." +"filename]#system.inc#:" #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1194 @@ -3130,8 +3127,8 @@ msgid "" "In our `.data` section we now have two new variables, `fd.in` and `fd.out`. " "We store the input and output file descriptors here." msgstr "" -"В нашем разделе `.data` теперь есть две новые переменные, `fd.in` и " -"`fd.out`. Здесь мы сохраняем дескрипторы файлов для ввода и вывода." +"В нашем разделе `.data` теперь есть две новые переменные, `fd.in` и `fd.out`" +". Здесь мы сохраняем дескрипторы файлов для ввода и вывода." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1366 @@ -3139,8 +3136,8 @@ msgid "" "In the `.text` section we have replaced the references to `stdin` and " "`stdout` with `[fd.in]` and `[fd.out]`." msgstr "" -"В разделе `.text` мы заменили ссылки с `stdin` и `stdout` на `[fd.in]` и " -"`[fd.out]`." +"В разделе `.text` мы заменили ссылки с `stdin` и `stdout` на `[fd.in]` и `[fd" +".out]`." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1369 @@ -3180,8 +3177,8 @@ msgstr "" "указателей, так как мы можем обрабатывать NULL-указатели с помощью `jecxz`. " "Если `argv[1]` не равен NULL, мы пытаемся открыть файл с именем, указанным в " "первом аргументе. В противном случае продолжаем программу как раньше: чтение " -"из `stdin`, запись в `stdout`. Если нам не удаётся открыть входной файл " -"(например, он не существует), мы переходим к обработчику ошибок и завершаем " +"из `stdin`, запись в `stdout`. Если нам не удаётся открыть входной файл (" +"например, он не существует), мы переходим к обработчику ошибок и завершаем " "работу." #. type: Plain text @@ -3463,7 +3460,8 @@ msgid "" ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" "%include\t'system.inc'\n" msgstr "" -";;;;;;; webvars.asm ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;; webvars.asm " +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" ";\n" "; Copyright (c) 2000 G. Adam Stanislav\n" "; All rights reserved.\n" @@ -3479,23 +3477,28 @@ msgstr "" ";\n" "; THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n" "; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n" -"; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n" +"; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR " +"PURPOSE\n" "; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n" -"; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n" +"; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR " +"CONSEQUENTIAL\n" "; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n" "; OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n" -"; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n" +"; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, " +"STRICT\n" "; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n" "; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n" "; SUCH DAMAGE.\n" -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" +";;\n" ";\n" "; Version 1.0\n" ";\n" "; Started:\t 8-Dec-2000\n" "; Updated:\t 8-Dec-2000\n" ";\n" -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" +";;\n" "%include\t'system.inc'\n" #. type: delimited block . 4 @@ -3556,7 +3559,8 @@ msgstr "" "\tdb\t'<h1>Web Environment</h1>', 0Ah\n" "\tdb\t'<p>The following <b>environment variables</b> are defined '\n" "\tdb\t'on this web server:</p>', 0Ah, 0Ah\n" -"\tdb\t'<table align=\"center\" width=\"80\" border=\"0\" cellpadding=\"10\" '\n" +"\tdb\t'<table align=\"center\" width=\"80\" border=\"0\" cellpadding=\"10\" '" +"\n" "\tdb\t'cellspacing=\"0\" class=\"webvars\">', 0Ah\n" "httplen\tequ\t$-http\n" "left\tdb\t'<tr>', 0Ah\n" @@ -3963,12 +3967,12 @@ msgid "" "UNIX(R). It saves the output in a different file. Optionally, it converts " "a UNIX(R) text file to a DOS text file." msgstr "" -"Одной из первых программ, которые я написал для UNIX(R), была link:ftp://" -"ftp.int80h.org/unix/tuc/[tuc] — конвертер текста в файл UNIX(R). Она " -"преобразует текстовый файл из других операционных систем в текстовый файл " -"UNIX(R). Другими словами, она изменяет различные виды окончаний строк на " -"стандартные для UNIX(R). Результат сохраняется в другом файле. По желанию, " -"она может преобразовать текстовый файл UNIX(R) в текстовый файл DOS." +"Одной из первых программ, которые я написал для UNIX(R), была link:ftp://ftp." +"int80h.org/unix/tuc/[tuc] — конвертер текста в файл UNIX(R). Она преобразует " +"текстовый файл из других операционных систем в текстовый файл UNIX(R). " +"Другими словами, она изменяет различные виды окончаний строк на стандартные " +"для UNIX(R). Результат сохраняется в другом файле. По желанию, она может " +"преобразовать текстовый файл UNIX(R) в текстовый файл DOS." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1671 @@ -4083,8 +4087,8 @@ msgid "" "It should also handle files that use some kind of a combination of the above " "(e.g., carriage return followed by several line feeds)." msgstr "" -"Это также должно обрабатывать файлы, использующие комбинации вышеуказанного " -"(например, возврат каретки с последующими несколькими переводами строки)." +"Это также должно обрабатывать файлы, использующие комбинации вышеуказанного (" +"например, возврат каретки с последующими несколькими переводами строки)." #. type: Title === #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1706 @@ -4607,9 +4611,9 @@ msgid "" "www.int80h.org/cgi-bin/isbn?isbn=0130810819[Unix Network Programming, Volume " "2, Chapter 12]." msgstr "" -"Для подробного изучения `mmap` см. http://www.int80h.org/cgi-bin/isbn?" -"isbn=0130810819[Unix Network Programming, Volume 2, Chapter 12] У. Ричарда " -"Стивенса." +"Для подробного изучения `mmap` см. http://www.int80h.org/cgi-bin/" +"isbn?isbn=0130810819[Unix Network Programming, Volume 2, Chapter 12] У. " +"Ричарда Стивенса." #. type: Title === #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1872 @@ -4673,8 +4677,8 @@ msgid "" "indicating an error. After I changed the code to allocate the structure on " "the stack, everything was working fine." msgstr "" -"Однако должен сказать, что я пытался объявить структуру `stat` в секции " -"`.bss`, и `fstat` это не понравилось: был установлен флаг переноса, " +"Однако должен сказать, что я пытался объявить структуру `stat` в секции `." +"bss`, и `fstat` это не понравилось: был установлен флаг переноса, " "указывающий на ошибку. После того как я изменил код, чтобы разместить " "структуру в стеке, всё заработало как надо." @@ -4705,7 +4709,7 @@ msgid "" "the file (make it smaller) and to grow it." msgstr "" "Системный вызов `ftruncate` позволяет нам сделать именно это. Несмотря на " -"название , несколько вводящее в звблуждение, системный вызов `ftruncate` " +"название , несколько вводящее в заблуждение, системный вызов `ftruncate` " "может использоваться как для усечения файла (уменьшения его размера), так и " "для его увеличения." @@ -4927,7 +4931,8 @@ msgid "" ";;;;;;; v.1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" "%include\t'system.inc'\n" msgstr "" -";;;;;;; Fast Text-to-Unix Conversion (ftuc.asm) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;; Fast Text-to-Unix Conversion (ftuc.asm) " +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" ";;\n" ";; Started:\t21-Dec-2000\n" ";; Updated:\t22-Dec-2000\n" @@ -4935,7 +4940,8 @@ msgstr "" ";; Copyright 2000 G. Adam Stanislav.\n" ";; All rights reserved.\n" ";;\n" -";;;;;;; v.1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;; v.1 " +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" "%include\t'system.inc'\n" #. type: delimited block . 4 @@ -5852,7 +5858,8 @@ msgid "" ";\n" ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" msgstr "" -";;;;;;; csv.asm ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;; csv.asm " +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" ";\n" "; Convert a comma-separated file to a something-else separated file.\n" ";\n" @@ -5862,7 +5869,8 @@ msgstr "" "; Copyright (c) 2001 G. Adam Stanislav\n" "; All rights reserved.\n" ";\n" -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" +";;\n" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2349 @@ -5881,7 +5889,8 @@ msgstr "" "section\t.data\n" "fd.in\tdd\tstdin\n" "fd.out\tdd\tstdout\n" -"usg\tdb\t'Usage: csv [-t<delim>] [-c<comma>] [-p] [-o <outfile>] [-i <infile>]', 0Ah\n" +"usg\tdb\t'Usage: csv [-t<delim>] [-c<comma>] [-p] [-o <outfile>] [-i " +"<infile>]', 0Ah\n" "usglen\tequ\t$-usg\n" "iemsg\tdb\t\"csv: Can't open input file\", 0Ah\n" "iemlen\tequ\t$-iemsg\n" @@ -6552,20 +6561,19 @@ msgstr "" msgid "Here is what might happen:" msgstr "Вот что может произойти:" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2640 msgid "The image editor will load our filter using the C function `popen()`." msgstr "" "Редактор изображений загрузит наш фильтр, используя функцию `popen()` на " "языке C." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2641 msgid "It will read the first row of pixels from a bitmap or pixmap." -msgstr "" -"Он прочитает первый ряд пикселей из битовой карты или пиксельной карты." +msgstr "Он прочитает первый ряд пикселей из битовой карты или пиксельной карты." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2642 msgid "" "It will write the first row of pixels to the _pipe_ leading to the `fd.in` " @@ -6574,7 +6582,7 @@ msgstr "" "Он запишет первую строку пикселей в _канал_, ведущий к `fd.in` нашего " "фильтра." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2643 msgid "" "Our filter will read each pixel from its input, turn it to a negative, and " @@ -6583,22 +6591,22 @@ msgstr "" "Наш фильтр будет читать каждый пиксель из входных данных, преобразовывать " "его в негатив и записывать в выходной буфер." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2644 msgid "Our filter will call `getchar` to fetch the next pixel." msgstr "Наш фильтр будет вызывать `getchar` для получения следующего пикселя." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2645 msgid "`getchar` will find an empty input buffer, so it will call `read`." msgstr "`getchar` обнаружит пустой входной буфер, поэтому вызовет `read`." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2646 msgid "`read` will call the `SYS_read` system call." msgstr "`read` вызовет системный вызов `SYS_read`." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2647 msgid "" "The _kernel_ will suspend our filter until the image editor sends more data " @@ -6607,18 +6615,18 @@ msgstr "" "_Ядро_ приостановит работу нашего фильтра до тех пор, пока редактор " "изображений не отправит больше данных в канал." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2648 msgid "" "The image editor will read from the other pipe, connected to the `fd.out` of " "our filter so it can set the first row of the output image _before_ it sends " "us the second row of the input." msgstr "" -"Редактор изображений будет читать из другого канала, подключенного к " -"`fd.out` нашего фильтра, чтобы он мог установить первую строку выходного " -"изображения _до_ того, как отправит нам вторую строку входного." +"Редактор изображений будет читать из другого канала, подключенного к `fd.out`" +" нашего фильтра, чтобы он мог установить первую строку выходного изображения " +"_до_ того, как отправит нам вторую строку входного." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2649 msgid "" "The _kernel_ suspends the image editor until it receives some output from " @@ -6627,7 +6635,7 @@ msgstr "" "_Ядро_ приостанавливает работу графического редактора до тех пор, пока не " "получит какие-либо данные от нашего фильтра, чтобы передать их редактору." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2653 msgid "" "At this point our filter waits for the image editor to send it more data to " @@ -6640,7 +6648,7 @@ msgstr "" "что наш фильтр отправит ему результат обработки первой строки. Однако " "результат находится в нашем выходном буфере." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2656 msgid "" "The filter and the image editor will continue waiting for each other forever " @@ -6652,7 +6660,7 @@ msgstr "" "обеспечение только что вошло в crossref:secure[secure-race-" "conditions,состояние гонки]." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2658 msgid "" "This problem does not exist if our filter flushes its output buffer _before_ " @@ -6667,7 +6675,7 @@ msgstr "" msgid "Using the FPU" msgstr "Использование FPU" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2663 msgid "" "Strangely enough, most of assembly language literature does not even mention " @@ -6678,7 +6686,7 @@ msgstr "" "существовании FPU, или _блока обработки чисел с плавающей запятой_, не " "говоря уже о программировании для него." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2665 msgid "" "Yet, never does assembly language shine more than when we create highly " @@ -6695,7 +6703,7 @@ msgstr "" msgid "Organization of the FPU" msgstr "Организация FPU" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2671 msgid "" "The FPU consists of 8 80-bit floating-point registers. These are organized " @@ -6706,7 +6714,7 @@ msgstr "" "виде стека — вы можете `push` (поместить) значение на TOS (_вершина стека_) " "и `pop` (извлечь) его." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2673 msgid "" "That said, the assembly language op codes are not `push` and `pop` because " @@ -6715,19 +6723,19 @@ msgstr "" "Как бы то ни было, мнемоники ассемблера — не `push` и `pop`, потому что они " "уже заняты." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2676 msgid "" "You can `push` a value on TOS by using `fld`, `fild`, and `fbld`. Several " "other op codes let you `push` many common _constants_-such as _pi_-on the " "TOS." msgstr "" -"Вы можете `push` (положить) значение на вершину стека (TOS), используя " -"`fld`, `fild` и `fbld`. Несколько других кодов операций позволяют вам `push` " +"Вы можете `push` (положить) значение на вершину стека (TOS), используя `fld`" +", `fild` и `fbld`. Несколько других кодов операций позволяют вам `push` " "(положить) многие распространённые _константы_ — например, _pi_ — на вершину " "стека (TOS)." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2679 msgid "" "Similarly, you can `pop` a value by using `fst`, `fstp`, `fist`, `fistp`, " @@ -6740,7 +6748,7 @@ msgstr "" "_p_, буквально `извлекают` значение, остальные же `сохраняют` его в другом " "месте, не удаляя с вершины стека (TOS)." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2681 msgid "" "We can transfer the data between the TOS and the computer memory either as a " @@ -6752,7 +6760,7 @@ msgstr "" "или 64-битное _целое_ число, либо как 80-битное _упакованное десятичное_ " "число." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2684 msgid "" "The 80-bit _packed decimal_ is a special case of _binary coded decimal_ " @@ -6765,7 +6773,7 @@ msgstr "" "ASCII-представлением данных и внутренними данными FPU. Он позволяет " "использовать до 18 значащих цифр." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2686 msgid "" "No matter how we represent data in the memory, the FPU always stores it in " @@ -6774,7 +6782,7 @@ msgstr "" "Независимо от того, как мы представляем данные в памяти, FPU всегда хранит " "их в 80-битном формате _real_ в своих регистрах." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2688 msgid "" "Its internal precision is at least 19 decimal digits, so even if we choose " @@ -6785,7 +6793,7 @@ msgstr "" "если мы решим отображать результаты в формате ASCII с полной 18-значной " "точностью, мы всё равно будем показывать корректные результаты." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2690 msgid "" "We can perform mathematical operations on the TOS: We can calculate its " @@ -6796,7 +6804,7 @@ msgstr "" "_масштабировать_ (то есть умножать или делить на степень двойки), вычислять " "его _логарифм_ по основанию 2 и многое другое." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2692 msgid "" "We can also _multiply_ or _divide_ it by, _add_ it to, or _subtract_ it " @@ -6805,16 +6813,17 @@ msgstr "" "Мы также можем _умножить_ или _разделить_ его, _прибавить_ к нему или " "_вычесть_ его из любого из регистров FPU (включая его самого)." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2695 msgid "" "The official Intel op code for the TOS is `st`, and for the _registers_ " "`st(0)`-`st(7)`. `st` and `st(0)`, then, refer to the same register." msgstr "" -"Официальный код операции Intel для TOS — `st`, а для _регистров_ — `st(0)`-" -"`st(7)`. Таким образом, `st` и `st(0)` ссылаются на один и тот же регистр." +"Официальный код операции Intel для TOS — `st`, а для _регистров_ — " +"`st(0)`-`st(7)`. Таким образом, `st` и `st(0)` ссылаются на один и тот же " +"регистр." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2698 msgid "" "For whatever reasons, the original author of nasm has decided to use " @@ -6831,7 +6840,7 @@ msgstr "" msgid "The Packed Decimal Format" msgstr "Формат упакованного десятичного числа" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2704 msgid "" "The _packed decimal_ format uses 10 bytes (80 bits) of memory to represent " @@ -6927,13 +6936,12 @@ msgid "" "for this type of data." msgstr "" "Книга, которую стоит прочитать — если сможете её найти — это книга Ричарда " -"Старца http://www.amazon.com/exec/obidos/ASIN/013246604X/" -"whizkidtechnomag[8087/80287/80387 для IBM PC и совместимых]. Хотя в ней, " -"кажется, факт о little-endian хранении _упакованного десятичного числа_ " -"принимается как данность. Я не шучу насчёт отчаяния, которое испытывал, " -"пытаясь понять, что не так с фильтром, который я привожу ниже, _прежде_ чем " -"мне пришло в голову попробовать little-endian порядок даже для этого типа " -"данных." +"Старца http://www.amazon.com/exec/obidos/ASIN/013246604X/whizkidtechnomag[" +"8087/80287/80387 для IBM PC и совместимых]. Хотя в ней, кажется, факт о " +"little-endian хранении _упакованного десятичного числа_ принимается как " +"данность. Я не шучу насчёт отчаяния, которое испытывал, пытаясь понять, что " +"не так с фильтром, который я привожу ниже, _прежде_ чем мне пришло в голову " +"попробовать little-endian порядок даже для этого типа данных." #. type: Title === #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2743 @@ -6986,8 +6994,8 @@ msgid "" "may be several). These light rays form an image, a representation of " "whatever is outside the camera, in front of the hole." msgstr "" -"Корпус обычно прочный (например, коробка), хотя иногда он гибкий " -"(гофрированная часть). Внутри камеры довольно темно. Однако отверстие " +"Корпус обычно прочный (например, коробка), хотя иногда он гибкий (" +"гофрированная часть). Внутри камеры довольно темно. Однако отверстие " "пропускает световые лучи через одну точку (хотя в некоторых случаях их может " "быть несколько). Эти световые лучи формируют изображение — представление " "того, что находится снаружи камеры, перед отверстием." @@ -6998,8 +7006,8 @@ msgid "" "If some light sensitive material (such as film) is placed inside the camera, " "it can capture the image." msgstr "" -"Если внутрь камеры поместить светочувствительный материал (например, " -"плёнку), он может зафиксировать изображение." +"Если внутрь камеры поместить светочувствительный материал (например, плёнку)" +", он может зафиксировать изображение." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2762 @@ -7071,8 +7079,8 @@ msgid "" "types of light will require a different constant, whose value can only be " "determined by experimentation." msgstr "" -"Здесь `D` — идеальный диаметр отверстия, `FL` — фокусное расстояние, а `PC` " -"— константа отверстия. По данным Джейя Бендера, её значение равно `0,04`, " +"Здесь `D` — идеальный диаметр отверстия, `FL` — фокусное расстояние, а `PC` —" +" константа отверстия. По данным Джейя Бендера, её значение равно `0,04`, " "тогда как Кеннет Коннорс определил его как `0,037`. Другие исследователи " "предложили иные значения. Кроме того, это значение справедливо только для " "дневного света: другие типы освещения потребуют иной константы, значение " @@ -7093,8 +7101,8 @@ msgid "" msgstr "" "Число f — это очень полезный показатель того, сколько света попадает на " "плёнку. Экспонометр может определить, что, например, для экспонирования " -"плёнки определённой чувствительности при f5.6 может потребоваться выдержка " -"1/1000 сек." +"плёнки определённой чувствительности при f5.6 может потребоваться выдержка 1/" +"1000 сек." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2796 @@ -7217,8 +7225,8 @@ msgid "" msgstr "" "Типичная камера устроена так, что установка любого из нормализованных чисел " "f изменяет ощущение от регулятора. Он естественным образом _останавливается_ " -"в этом положении. Из-за этого такие положения регулятора называются f-" -"ступенями." +"в этом положении. Из-за этого такие положения регулятора называются " +"f-ступенями." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2838 @@ -7281,8 +7289,8 @@ msgstr "" "Большинство написанных нами до сих пор программ работали с отдельными " "символами или байтами в качестве входных данных: программа hex " "преобразовывала отдельные байты в шестнадцатеричное число, программа csv " -"либо пропускала символ, либо удаляла его, либо заменяла на другой символ и " -"т.д." +"либо пропускала символ, либо удаляла его, либо заменяла на другой символ и т." +"д." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2853 @@ -7605,7 +7613,7 @@ msgstr "" "Учитывая эту систему, программа может обнаружить конфликтующие параметры и " "обработать их следующим образом:" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2955 msgid "" "If it finds an _ad hoc_ choice (e.g., command line parameter), it should " @@ -7615,7 +7623,7 @@ msgstr "" "она должна принять этот выбор. Она должна игнорировать любой постоянный " "выбор и значения по умолчанию." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2956 msgid "" "_Otherwise_, if it finds a permanent option (e.g., an environment variable), " @@ -7625,18 +7633,18 @@ msgstr "" "переменная окружения), он должен быть принят, а значение по умолчанию — " "проигнорировано." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2957 msgid "_Otherwise_, it should use the default." msgstr "_В противном случае_, следует использовать значение по умолчанию." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2959 msgid "We also need to decide what _format_ our `PC` option should have." msgstr "" "Нам также необходимо решить, в каком _формате_ должна быть наша опция `PC`." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2961 msgid "" "At first site, it seems obvious to use the `PINHOLE=0.04` format for the " @@ -7645,7 +7653,7 @@ msgstr "" "На первый взгляд кажется очевидным использовать формат `PINHOLE=0.04` для " "переменной окружения и `-p0.04` для командной строки." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2965 msgid "" "Allowing that is actually a security risk. The `PC` constant is a very small " @@ -7658,7 +7666,7 @@ msgstr "" "программное обеспечение, используя различные небольшие значения `PC`. Но что " "произойдёт, если кто-то запустит программу, выбрав огромное значение?" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2967 msgid "" "It may crash the program because we have not designed it to handle huge " @@ -7667,7 +7675,7 @@ msgstr "" "Это может привести к сбою программы, так как мы не разрабатывали её для " "обработки огромных чисел." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2970 msgid "" "Or, we may spend more time on the program so it can handle huge numbers. We " @@ -7679,14 +7687,14 @@ msgstr "" "коммерческое программное обеспечение для аудитории, не знакомой с " "компьютерами." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2972 msgid "Or, we might say, _\"Tough! The user should know better.\"\"_" msgstr "" "Или можно сказать: _\"Пусть терпит! Пользователь сам должен был разобраться." "\"_" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2975 msgid "" "Or, we just may make it impossible for the user to enter a huge number. " @@ -7696,19 +7704,19 @@ msgstr "" "числа. Это подход, который мы выберем: мы будем использовать " "_подразумеваемый префикс 0._." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2978 msgid "" "In other words, if the user wants `0.04`, we will expect him to type `-p04`, " "or set `PINHOLE=04` in his environment. So, if he says `-p9999999`, we will " "interpret it as ``0.9999999``-still ridiculous but at least safer." msgstr "" -"Другими словами, если пользователь хочет `0.04`, мы ожидаем, что он введёт `-" -"p04` или установит `PINHOLE=04` в своём окружении. Таким образом, если он " +"Другими словами, если пользователь хочет `0.04`, мы ожидаем, что он введёт " +"`-p04` или установит `PINHOLE=04` в своём окружении. Таким образом, если он " "укажет `-p9999999`, мы интерпретируем это как ``0.9999999`` — всё ещё " "нелепо, но по крайней мере безопаснее." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2981 msgid "" "Secondly, many users will just want to go with either Bender's constant or " @@ -7725,7 +7733,7 @@ msgstr "" msgid "The Output" msgstr "Вывод результата" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2986 msgid "" "We need to decide what we want our software to send to the output, and in " @@ -7734,7 +7742,7 @@ msgstr "" "Нам нужно решить, что наше программное обеспечение должно отправлять на " "вывод и в каком формате." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2988 msgid "" "Since our input allows for an unspecified number of focal length entries, it " @@ -7747,7 +7755,7 @@ msgstr "" "базы данных, показывая результат вычислений для каждого фокусного расстояния " "на отдельной строке, разделяя все значения в строке символом табуляции." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2991 msgid "" "Optionally, we should also allow the user to specify the use of the CSV " @@ -7760,7 +7768,7 @@ msgstr "" "разделёнными запятыми названиями, описывающими каждое поле каждой строки, а " "затем отобразим результаты как прежде, но заменив `табуляцию` на `запятую`." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2996 msgid "" "We need a command line option for the CSV format. We cannot use `-c` " @@ -7769,14 +7777,14 @@ msgid "" "the CSV format predates Excel). We will, therefore, use the `-e` switch to " "inform our software we want the output in the CSV format." msgstr "" -"Нам нужна опция командной строки для формата CSV. Мы не можем использовать `-" -"c`, потому что это уже означает _использовать константу Коннорса_. По какой-" -"то странной причине многие веб-сайты называют CSV-файлы _\"электронными " -"таблицами Excel\"_ (хотя формат CSV появился раньше Excel). Поэтому мы будем " -"использовать переключатель `-e`, чтобы указать нашему программному " +"Нам нужна опция командной строки для формата CSV. Мы не можем использовать " +"`-c`, потому что это уже означает _использовать константу Коннорса_. По " +"какой-то странной причине многие веб-сайты называют CSV-файлы _\"электронными" +" таблицами Excel\"_ (хотя формат CSV появился раньше Excel). Поэтому мы " +"будем использовать переключатель `-e`, чтобы указать нашему программному " "обеспечению, что мы хотим получить вывод в формате CSV." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3000 msgid "" "We will start each line of the output with the focal length. This may sound " @@ -7787,7 +7795,7 @@ msgstr "" "избыточным сначала, особенно в интерактивном режиме: пользователь вводит " "фокусное расстояние, а мы его повторяем." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3004 msgid "" "But the user can type several focal lengths on one line. The input can also " @@ -7798,7 +7806,7 @@ msgstr "" "Ввод также может поступать из файла или вывода другой программы. В этом " "случае пользователь вообще не видит вводимые данные." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3006 msgid "" "By the same token, the output can go to a file which we will want to examine " @@ -7808,7 +7816,7 @@ msgstr "" "изучить позже, или на принтер, или стать входными данными для другой " "программы." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3008 msgid "" "So, it makes perfect sense to start each line with the focal length as " @@ -7817,7 +7825,7 @@ msgstr "" "Итак, имеет полный смысл начинать каждую строку с фокусного расстояния, " "введённого пользователем." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3011 msgid "" "No, wait! Not as entered by the user. What if the user types in something " @@ -7922,7 +7930,9 @@ msgstr "Мы ударим его по лицу, образно говоря:" #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3049 #, no-wrap msgid "17459765723452353453534535353530530534563507309676764423\t???\t???\t???\t???\t???\n" -msgstr "17459765723452353453534535353530530534563507309676764423\t???\t???\t???\t???\t???\n" +msgstr "" +"17459765723452353453534535353530530534563507309676764423\t???\t???\t???\t???" +"\t???\n" #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3053 @@ -7935,12 +7945,12 @@ msgstr "" "ненулевую цифру, мы инициализируем счетчик значением `0` и начнем выполнять " "три шага:" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3056 msgid "Send the digit to the output." msgstr "Отправить цифру на выход." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3057 msgid "" "Append the digit to a buffer we will use later to produce the packed decimal " @@ -7949,12 +7959,12 @@ msgstr "" "Добавить цифру в буфер, который мы позже используем для создания " "упакованного десятичного числа, которое можно отправить в FPU." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3058 msgid "Increase the counter." msgstr "Увеличить счетчик." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3060 msgid "" "Now, while we are taking these three steps, we also need to watch out for " @@ -7963,7 +7973,7 @@ msgstr "" "Теперь, пока мы выполняем эти три шага, нам также необходимо следить за " "одним из двух условий:" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3062 msgid "" "If the counter grows above 18, we stop appending to the buffer. We continue " @@ -7972,7 +7982,7 @@ msgstr "" "Если счётчик превышает 18, мы прекращаем добавление в буфер. Мы продолжаем " "читать цифры и отправлять их на вывод." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3063 msgid "" "If, or rather _when_, the next input character is not a digit, we are done " @@ -7981,29 +7991,29 @@ msgstr "" "Если, или скорее _когда_, следующий вводимый символ не является цифрой, мы " "завершаем ввод на данный момент." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3066 msgid "" "Incidentally, we can simply discard the non-digit, unless it is a `+#+`, " "which we must return to the input stream. It starts a comment, so we must " "see it after we are done producing output and start looking for more input." msgstr "" -"Между прочим, мы можем просто отбросить нецифровой символ, если это не " -"`+#+`, который необходимо вернуть во входной поток. Он начинает комментарий, " +"Между прочим, мы можем просто отбросить нецифровой символ, если это не `+#+`" +", который необходимо вернуть во входной поток. Он начинает комментарий, " "поэтому мы должны увидеть его после завершения вывода и начала поиска " "следующего ввода." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3068 msgid "" "That still leaves one possibility uncovered: If all the user enters is a " "zero (or several zeros), we will never find a non-zero to display." msgstr "" -"Остается одна непокрытая возможность: если пользователь вводит только ноль " -"(или несколько нулей), мы никогда не найдем ненулевое значение для " +"Остается одна непокрытая возможность: если пользователь вводит только ноль (" +"или несколько нулей), мы никогда не найдем ненулевое значение для " "отображения." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3071 msgid "" "We can determine this has happened whenever our counter stays at `0`. In " @@ -8026,8 +8036,8 @@ msgid "" "Once we have displayed the focal length and determined it is valid (greater " "than `0` but not exceeding 18 digits), we can calculate the pinhole diameter." msgstr "" -"Как только мы определили фокусное расстояние и убедились, что оно корректно " -"(больше `0`, но не превышает 18 цифр), можно рассчитать диаметр отверстия." +"Как только мы определили фокусное расстояние и убедились, что оно корректно (" +"больше `0`, но не превышает 18 цифр), можно рассчитать диаметр отверстия." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3081 @@ -8151,12 +8161,12 @@ msgstr "" "Вот мой (я думаю, он неуклюжий — если у вас есть вариант лучше, " "_пожалуйста_, дайте мне знать):" -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3120 msgid "Initialize a counter to `0`." msgstr "Инициализировать счетчик значением `0`." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3121 msgid "" "While the number is greater than or equal to `10000`, divide it by `10` and " @@ -8164,12 +8174,12 @@ msgid "" msgstr "" "Пока число больше или равно `10000`, делим его на `10` и увеличиваем счётчик." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3122 msgid "Output the result." msgstr "Вывести результат." -#. type: .procedure +#. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3123 msgid "" "While the counter is greater than `0`, output `0` and decrease the counter." @@ -8527,8 +8537,8 @@ msgid "" "only one or two digits anyway." msgstr "" "Этот расчет также довольно прост. Все, что нам нужно сделать, это вычислить " -"логарифм по основанию 2 от множителя f5.6, который мы только что рассчитали " -"(хотя нам нужно его значение до округления). Затем мы выводим результат, " +"логарифм по основанию 2 от множителя f5.6, который мы только что рассчитали (" +"хотя нам нужно его значение до округления). Затем мы выводим результат, " "округленный до ближайшего целого числа. Нам не нужно беспокоиться о наличии " "более четырех значащих цифр в этом случае: скорее всего, результат будет " "содержать только одну или две цифры." @@ -8681,8 +8691,8 @@ msgid "" msgstr "" "Гораздо быстрее умножать, чем делить. Поэтому в начале нашей программы мы " "делим `1` на `10`, чтобы получить `0.1`, который затем сохраняем в стеке: " -"вместо того чтобы делить ввод на `10` для каждой цифры, мы умножаем его на " -"`0.1`." +"вместо того чтобы делить ввод на `10` для каждой цифры, мы умножаем его на `0" +".1`." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3284 @@ -8798,7 +8808,8 @@ msgid "" ";\n" ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" msgstr "" -";;;;;;; pinhole.asm ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;; pinhole.asm " +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" ";\n" "; Find various parameters of a pinhole camera construction and use\n" ";\n" @@ -8808,7 +8819,8 @@ msgstr "" "; Copyright (c) 2001 G. Adam Stanislav\n" "; All rights reserved.\n" ";\n" -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" +";;\n" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3368 @@ -8855,7 +8867,8 @@ msgstr "" "envar\tdb\t'PINHOLE='\t; Exactly 8 bytes, or 2 dwords long\n" "pinhole\tdb\t'04,', \t\t; Bender's constant (0.04)\n" "connors\tdb\t'037', 0Ah\t; Connors' constant\n" -"usg\tdb\t'Usage: pinhole [-b] [-c] [-e] [-p <value>] [-o <outfile>] [-i <infile>]', 0Ah\n" +"usg\tdb\t'Usage: pinhole [-b] [-c] [-e] [-p <value>] [-o <outfile>] [-i " +"<infile>]', 0Ah\n" "usglen\tequ\t$-usg\n" "iemsg\tdb\t\"pinhole: Can't open input file\", 0Ah\n" "iemlen\tequ\t$-iemsg\n" @@ -8863,7 +8876,8 @@ msgstr "" "oemlen\tequ\t$-oemsg\n" "pinmsg\tdb\t\"pinhole: The PINHOLE constant must not be 0\", 0Ah\n" "pinlen\tequ\t$-pinmsg\n" -"toobig\tdb\t\"pinhole: The PINHOLE constant may not exceed 18 decimal places\", 0Ah\n" +"toobig\tdb\t\"pinhole: The PINHOLE constant may not exceed 18 decimal " +"places\", 0Ah\n" "biglen\tequ\t$-toobig\n" "huhmsg\tdb\t9, '???'\n" "separ\tdb\t9, '???'\n" @@ -10345,8 +10359,7 @@ msgstr "" #. type: delimited block _ 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:4029 msgid "When we have no more input, it can mean one of two things:" -msgstr "" -"Когда у нас больше нет входных данных, это может означать одно из двух:" +msgstr "Когда у нас больше нет входных данных, это может означать одно из двух:" #. type: delimited block _ 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:4031 @@ -10879,7 +10892,8 @@ msgid "" msgstr "" "% ./medium -b -e > bender\n" "% cat bender\n" -"focal length in millimeters,pinhole diameter in microns,F-number,normalized F-number,F-5.6 multiplier,stops from F-5.6\n" +"focal length in millimeters,pinhole diameter in microns,F-number,normalized " +"F-number,F-5.6 multiplier,stops from F-5.6\n" "80,358,224,256,1562,11\n" "30,219,137,128,586,9\n" "40,253,158,181,781,10\n" |
