26
ответов

Когда сборка происходит быстрее, чем C?

Одна из заявленных причин для знания ассемблера состоит в том, что иногда его можно использовать для написания кода, который будет более производительным, чем написание этого кода на языке более высокого уровня, в частности C. ...
вопрос задан: 3 January 2018 15:58
13
ответов

печатать строку с цветами под окнами [дублировать]

Мне интересно, как можно выводить строку с цветом в программе сборки, запущенной на cmd. То, что я имею в виду, похоже на графический режим 0x02 под DOS, где вы можете написать сообщение как ...
вопрос задан: 3 November 2015 08:55
12
ответов

Понимание умножения в сборке [дубликат]

Я пытаюсь понять, как этот фрагмент кода сборки делает 8-битное умножение. Я знаю, что делает каждая строка, но я не могу понять, как это делает все умножение. Не могли бы вы ...
вопрос задан: 3 October 2012 11:24
9
ответов

разница в сборке gdb и amp; сборка сборочного узла [дубликат]

У меня есть этот код c: #include & lt; stdio.h & gt; int main () {int x = 10; int y = 20; int z = 30; return 0; } когда я скомпилирую его с помощью gcc v4.8.5 & amp; ...
вопрос задан: 9 July 2009 06:55
7
ответов

Зачем складывать назад? [Дубликат]

Я думал, почему, когда я толкаю что-то в стек esp, уменьшаюсь и не увеличиваюсь. Я знаю, что это способ, которым стек использует много языка, но я хочу знать, почему они это делают и не делают ...
вопрос задан: 22 April 2015 15:12
7
ответов

Помогите мне понять этот эксплойт JavaScript

Я обычно не испытываю затруднений при чтении скрипта JavaScript, но в этом я не могу понять логику. Код взят из эксплойта, который был опубликован 4 дня назад. Вы можете найти его в milw0rm. Вот ...
вопрос задан: 1 May 2012 04:08
7
ответов

Язык ассемблера [дубликат]

Почему язык сборки отличается от Mac и окна. AS Я читал, что Mac и Window используют одни и те же процессоры (на базе Intel)? (И язык сборки зависит от машины и использует тот же процессор Intel ...
вопрос задан: 28 July 2011 13:59
7
ответов

Какое устройство использует IN AX, 5 и OUT 5, доступ к AX на IBM PC? [Дубликат]

Я знаю только, что «Инструкция по сборке IN и OUT» означает набор данных для порта ввода-вывода и получение данных из порта ввода-вывода. Какое устройство подключено к порту ввода-вывода 5 в стандартном IBM PC? Порты 60h и 61h ...
вопрос задан: 9 July 2010 20:35
5
ответов

(ASM) Ошибка при перемещении байта в указатель [дубликат]

У меня проблема с линией сборки, я не знаю, как ее решить. mov byte ptr Ярлык + 2, f0h Я пытаюсь переместить байт 0xF0 на место Ярлык + 2. Когда я пытаюсь переместить байт, он ...
вопрос задан: 11 May 2016 00:27
5
ответов

Процедура отображения в Nasm (язык ассемблера) [дубликат]

Может ли кто-нибудь объяснить мне, как эта процедура работает? disp32_proc: mov esi, char_count + 7; загрузить последний байт адрес буфера char_count в rsi mov ecx, 8; количество ...
вопрос задан: 31 October 2012 21:35
5
ответов

Понимание сборки gdb для разницы указателей [duplicate]

Для этого конкретного c-кода. #include & lt; stdio.h & gt; int main () {int * p = (int *) 20; int * q = (int *) 30; printf ("% d", q-p); } Это свалка gdb disass / m main Dump of ...
вопрос задан: 29 January 2010 12:06
4
ответа

Может ли современное оборудование x86 не хранить в памяти ни одного байта?

Говоря о модели памяти C ++ для параллелизма, язык программирования Страуструпа C ++, 4-е изд., С. 41.2.1, говорит: ... (как и большинство современных аппаратных средств) машина не может загрузить или сохранить что-либо ...
вопрос задан: 13 October 2017 13:05
4
ответа

mmap не работает в ассемблере [дубликат]

Я написал 2 одинаковых кода в asm и c ++. ASM PROT_READ equ 1; Страница может быть прочитана. * / PROT_WRITE equ 2; Страница может быть написана. * / PROT_EXEC ...
вопрос задан: 3 October 2017 03:03
4
ответа

Каков самый быстрый способ перевести все 64-разрядные регистры в стек? [Дубликат]

Я начинаю писать сборку. Какой самый быстрый способ нажать и поместить все 64-разрядные регистры в стек в x86-64? Я знаю, что pusha сохранит состояние всех 32-битных регистров общего назначения. Я ...
вопрос задан: 22 March 2015 15:35
4
ответа

как разделить плавающую точку на сборке x86 [дубликат]

Я стартер в сборке x86. Я собираюсь разделить 9 на 10 с использованием кода ниже, но у меня есть странный результат. .data оригинальный реальный4 9.0 раунд DWORD 10 .code (...) fld оригинальный fidiv раунд fstp оригинальный ...
вопрос задан: 12 June 2014 21:25
4
ответа

Запись в выделенную память с помощью sbrk приводит к segfault [duplicate]

Я пытаюсь выделить память с помощью sys_brk и вот программа: BYTES_TO_ALLOCATE equ 0x08 раздел .text global _start _start: mov rax, 12; sys_brk number mov rdi, BYTES_TO_ALLOCATE ...
вопрос задан: 23 March 2014 05:01
4
ответа

Неопределенная ссылка при вызове функции c из сборки x86 32 бит [дубликат]

У меня есть два файла в моем проекте CodeBlocks, main.c, functioninA.s. main.c содержит объявление функции функции assemblyinA.s с ключевым словом extern, функцию, которую я пытаюсь вызвать из ...
вопрос задан: 13 March 2013 10:45
4
ответа

Зачем нам нужно «pushl% ebp» в начале каждой программы сборки? [Дубликат]

Зачем нам нужны эти две функции в начале каждой программы сборки? pushl% ebp movl% esp,% ebp Я не знаю, что они делают, и они, похоже, не вносят вклад в функциональность кода. Я прихожу ...
вопрос задан: 13 September 2010 12:23
4
ответа

Почему компилятор выделяет больше места, чем sizeof (MyClass) для объекта в стеке? [Дубликат]

Это противоречие с моей точки зрения. Стандарт не позволяет объектам нулевого размера, которые имеют смысл для меня, потому что он избегает двух разных объектов от совместного использования одного и того же адреса памяти, поэтому ...
вопрос задан: 11 November 2009 16:19
3
ответа

Выделение ненужного буфера [дубликат]

У меня есть небольшая программа на C: # include & lt; stdio.h & gt; void getInput (); void what (); int main () {getInput (); } void getInput () {char buffer [6]; получает (буфер); путы (...
вопрос задан: 12 June 2016 13:32
3
ответа

Доступ к содержимому векторных регистров в сборке x86-64 [дубликат]

Я пытаюсь сделать плавающие точки octuple-precision на x86-64, хранящиеся в ymm векторных регистрах. Но я знаю только, как получить доступ к младшим 64 бит ymm0 (vmovq). Как я могу изменить векторные регистры смены вектора ...
вопрос задан: 3 June 2016 11:04
3
ответа

pdp-11 assembly-error 8-незаконный символ [дубликат]

Добрый вечер, я новый программист, пытаясь скомпилировать приведенный ниже код на сборке с помощью симулятора pdp-11. Но im stack с ошибками, я уверен в синтаксисе, но не могу определить, где ошибка или что ...
вопрос задан: 27 May 2016 09:36
3
ответа

Программа сборки Visual Studio 2015, записывающая все строки сразу? [Дубликат]

Я пишу программу, которая будет принимать входные данные, а затем преобразует их из одной единицы длины в другую указанную единицу длины. Проблема заключается в том, что мой код печатает каждую строку сразу в одной строке в ...
вопрос задан: 15 December 2015 17:59
3
ответа

Как получить доступ к элементам массива в встроенной сборке GCC? [Дубликат]

Я хочу рассчитать сумму элементов массива, используя встроенную сборку GCC в качестве упражнения. Мне нужно получить доступ к элементам. Я пробовал этот код: #include & lt; stdio.h & gt; #include & lt; stdlib.h & gt; int ...
вопрос задан: 12 December 2015 21:39
3
ответа

Понимание того, как $ работает в сборке [дубликат]

Я пытаюсь понять, как $ работает в nasm. Я прочитал этот ответ и написал следующий пример: section .text global _start _start: mov rax, 0x01 mov rdi, 0x01 mov rsi, str ...
вопрос задан: 22 July 2015 04:50
3
ответа

Что строка в команде volatile указывает на [duplicate]

`int __attribute__ ((noinline)) mySystemCall (uint32 Exception, uint32 Parameter) {#ifdef PROCESSORX __asm__ volatile (" sc ") #else __asm__ __volatile__ (" mov R0,% 0; mov R1,% 1; ...
вопрос задан: 20 October 2014 00:33
3
ответа

Как напечатать значение с плавающей запятой из st (0) в сборке 8086 dosbox [duplicate]

Im пытается отобразить с плавающей точкой в ​​dosbox для отладки. Я думаю, что число с плавающей запятой хранится как единая точность IEEE 754. Из-за ограничения im, которое может использовать dosbox, ...
вопрос задан: 30 May 2014 14:47
3
ответа

В x86 (сборка), является ли [repz retq] действительным? [Дубликат]

У меня очень простой тестовый двоичный файл, который я просматриваю с помощью objdump. Я вижу инструкцию по сборке, которая меня смущает. Код выглядит так: int main (int argc, char * argv []) {return ...
вопрос задан: 11 December 2013 19:48
3
ответа

Почему стандартная функция & ldquo; __ libc_start_main & rdquo; не скомпилирован с дополнительным символом подчеркивания (& ldquo; _ & rdquo;)? [Дубликат]

Я программист, использующий Java и C в течение нескольких лет, в последнее время я читаю книгу Advanced C и C ++ Compiling, из которой я узнал, что некоторые функции вызывают до того, как вызывается main, например ...
вопрос задан: 17 June 2013 17:25
3
ответа

& ldquo; WORD PTR & rdquo; vs & ldquo; WORD & rdquo; в NASM [дубликат]

В NASM эти две инструкции выполняют одно и то же: mov WORD PTR [myVariable], 0xAA mov WORD [myVariable], 0xAA. Нужно ли включать «PTR»?
вопрос задан: 9 December 2012 20:06