0
ответов

Обмен переменными с вспомогательной переменной и без нее - что быстрее?

Наверное, вы все слышали о "проблеме обмена"; SO полон вопросов о ней. Версия замены без использования третьей переменной часто считается более быстрой, поскольку, ну, у вас есть одна ...
вопрос задан: 22 December 2015 15:56
0
ответов

Какова функция инструкций push / pop, используемых для регистров в сборке x86?

Читая об ассемблере, я часто сталкиваюсь с людьми, пишущими, что они нажимают определенный регистр процессора и затем снова вставьте его, чтобы восстановить предыдущее состояние. Как вы можете протолкнуть регистр? ...
вопрос задан: 24 November 2015 09:09
0
ответов

Как `Skipcond` работает на ассемблере MARIE?

Я пытаюсь понять ассемблер MARIE. Я не совсем понимаю skipcond for делать такие вещи, как <или>, или умножать или делить. Я беру эту простую программу: x = 1 while x & ...
вопрос задан: 9 November 2015 03:33
0
ответов

Можно ли использовать 32-битные регистры / инструкции в реальном режиме?

Я не понимаю простая проблема сборки при изучении некоторого простого исходного кода операционной системы. На этом веб-сайте: http://wiki.osdev.org/Babystep7 следующий код предназначен для переключения из реального режима в защищенный ...
вопрос задан: 8 November 2015 09:04
0
ответов

Когда следует использовать явные директивы выравнивания в сборке?

I Потрачу время на программирование сборки (Газ, в частности), а недавно я узнал о директиве align. Думаю, я понял самые основы, но я хотел бы получить более глубокое понимание ...
вопрос задан: 7 November 2015 20:38
0
ответов

Как вывести число на экран и и спать в течение одну секунду со сборкой DOS x86?

Я использую 16-битный NASM. Я пытаюсь сделать простой ассемблерный код, который печатает числа от 0 до 255 с интервалом в 1 секунду между каждым числом. Это то, что у меня есть до сих пор: [биты 16] mov ax,cs mov ...
вопрос задан: 7 November 2015 19:34
0
ответов

Что означает знак равенства g «= g» в встроенной сборке GCC?

Я не уверен, что делает эта встроенная сборка: asm ("mov %% esp,% 0": "= g" (esp)); особенно часть: "= g" (esp).
вопрос задан: 7 November 2015 11:32
0
ответов

Можно ли поместить инструкции по сборке в код CUDA?

Я хочу использовать код сборки в коде CUDA C чтобы сократить дорогостоящие казни как мы это делаем, используя asm в программировании на C. Возможно ли это?
вопрос задан: 5 November 2015 16:14
0
ответов

Хорошая практика: инструкция Loop And If [closed]

(Я копирую / вставляю тот же вопрос, который я разместил на Codereview здесь: https://codereview.stackexchange.com/questions / 1747 / good-practice-loop-and-if-statement) Я хотел бы знать, что является наилучшей практикой: ...
вопрос задан: 5 November 2015 16:00
0
ответов

Как сгенерировать код сборки из исходного кода C ++ в Visual Studio 2010

Я хочу сгенерировать код сборки из исходного кода C ++ с помощью компилятора Microsoft VC ++. Я хочу сделать это в самой командной строке. Не из IDE. Что такое команды / параметры?
вопрос задан: 1 November 2015 00:12
0
ответов

Как регистры fs / gs используются в Linux AMD64?

В архитектуре x86-64 два регистра имеют специальное назначение: FS и GS. В linux 2.6. * Регистр FS, похоже, используется для хранения локальной информации потока. Это верно? Что хранится в fs: 0? ...
вопрос задан: 30 October 2015 22:05
0
ответов

Выполнение ассемблерного кода с помощью Python

Я хочу выполнить ассемблерный код внутри скрипта Python. Это возможно? В программировании на С это было бы похоже на статический встроенный getesp () {__asm ​​__ ("mov% esp,% eax"); } Но как это сделать с ...
вопрос задан: 28 October 2015 18:14
0
ответов

Почему iret из обработчика ошибок страницы генерирует прерывание 13 (общая ошибка защиты) и код ошибки 0x18?

Пишу ядро ​​сам, и после обработчика прерывания ошибки первой страницы при выполнении IRET вызывает прерывание 13(общая защита), код ошибки 0x18. Я не знаю, что такое...
вопрос задан: 28 October 2015 17:56
0
ответов

разница между ldr и ldr.w

Недавно мне пришлось отлаживать бинарник MachO и я наткнулся на следующую инструкцию: - ldr.w r4, [r1, r0, lsl #2] Я понимаю, что ldr r4, [r1, r0, lsl #2] сдвигает r0 влево два раза, добавляет его...
вопрос задан: 25 October 2015 18:55
0
ответов

Есть ли opcode X86 для перемещения немедленного байта в расположение прямого памяти (без использования регистров)?

Есть ли способ «mov'e определенный номер немедленного байта в расположение прямого памяти? Я MOV 10H, FFFFH Чтобы написать значение 16 в адрес памяти 65535? Если да, то, какой операционный код заключается в том, что ...
вопрос задан: 25 October 2015 09:52
0
ответов

Як стварыць звычайныя бінарныя файлы, такія як nasm -f bin, з дапамогай ассамблера GNU GAS?

У мяне ёсць некаторыя Файлы NASM, якія звычайна маюць структуру: [BITS 64] [ORG 0x0000000000200000] start: ... ret Я збіраю іх так: nasm -f bin abc.asm я ...
вопрос задан: 22 October 2015 07:19
0
ответов

Почему старые игры программировались на ассемблере, когда существовали языки более высокого уровня?

Я заметил, что большинство, если не все игры Nes / Atari и т. Д., Были написаны на ассемблере, однако в то время C , COBOL и FORTRAN существовали, что, я думаю, упростило бы кодирование, верно? Тогда почему ...
вопрос задан: 20 October 2015 06:13
0
ответов

Есть ли символ, представляющий текущий адрес в сборке GNU GAS?

Мне любопытно узнать, есть ли какой-либо специальный синтаксис GAS для достижения того же, что и в примере NASM: SECTION .data msg: db "Hello World" , 10,0; строка с завершающим нулем. len: equ $ -...
вопрос задан: 16 October 2015 08:07
0
ответов

Понять ассемблерный код, сгенерированный простой программой C

Я пытаюсь понять код уровня ассемблера для простой программы C, проверяя его с помощью дизассемблера gdb. Ниже приведен код на C: #include void function (int a, int b, int ...
вопрос задан: 16 October 2015 07:04
0
ответов

- это пространство для резервирования стека, необходимого для функций менее четырех аргументов?

Просто начал изучать сборку X64, и у меня есть вопрос о функциях, аргументах и ​​стеке. Насколько я понимаю, первые четыре аргумента в функции передаются на RCX, RDX, R8 и ...
вопрос задан: 16 October 2015 02:48
0
ответов

Returning result to eax (IA-32 Assembly language)

I'm slightly confused as to how to return a value from a method in assembly language. As far as I know, the eax register is used to hold the result that is to be returned. As an example, say my ...
вопрос задан: 14 October 2015 21:27
0
ответов

ARM v7 ADD vs. LDR

Есть ли разница между следующей инструкцией (кроме привязки флагов)? ADD R6, SP, # 0xDC и LDR R6, [SP, # 0xDC]
вопрос задан: 8 October 2015 12:57
0
ответов

Как выполнить отладку кода x86 на уровне исходного кода с помощью GDB внутри QEMU?

Я написал программу сборки x86 для раздела MBR. Я компилирую ее следующим образом. : nasm hellombr.asm -f bin -o hellombr.img Затем я запускаю его в qemu: qemu -fda hellombr.img -boot a Вопрос в том, как я могу ...
вопрос задан: 6 October 2015 13:42
0
ответов

Как я могу использовать Bochs для запуска кода сборки?

Я хочу использовать Bochs в качестве эмулятора 8086. Есть ли простой способ для этого? Мне нужно что-то вроде emu8086 (http://www.emu8086.com/).
вопрос задан: 1 October 2015 22:25
0
ответов

Сколько времени требуется для выполнения каждой инструкции машинного языка? [дубликат]

Одновременно ли выполняются такие операции, как установка, чтение, перемещение и сравнение? Если нет: есть ли способ узнать, как долго. Есть ли какое-то название для того, что я имею в виду, скорость процессора определенного типа ...
вопрос задан: 25 September 2015 19:35
0
ответов

Загрузчик не переходит на код ядра

Я пишу небольшую операционную систему - для практики. Я начал с загрузчика. Я хочу создать небольшую командную систему, которая работает в 16-битном реальном режиме (пока). Я создал загрузчик, который сбрасывает диск, ...
вопрос задан: 21 September 2015 21:56
0
ответов

What is the 0x10 in the “leal 0x10(%ebx), %eax” x86 assembly instruction?

What the function is of the 0x10 in regards to this LEAL instruction? Is it a multiply or addition or is something else? leal 0x10(%ebx), %eax Can someone please clarify? This is x86 assembler on a ...
вопрос задан: 21 September 2015 21:03
0
ответов

Как выключить машину? Я собираю свою крошечную ОС [дубликат]

Может ли инструкция hlt в сборке выключить компьютер, так как останавливает процессор? Если это можно сделать, используя то, что я сказал, правильно ли это? Можно ли выключить машину? start: xor ...
вопрос задан: 21 September 2015 15:06
0
ответов

Получение максимального значения в векторе __m128i с помощью SSE?

Я только начал использовать SSE и не понимаю, как получить максимальное целочисленное значение (max) __m128i. Например: __m128i t = _mm_setr_ps(0,1,2,3); // макс(т) = 3; Поиски привели меня к...
вопрос задан: 17 September 2015 13:42
0
ответов

Доступ к произвольным 16-битным элементам, упакованным в 128-битный регистр

С помощью встроенных функций компилятора Intel, учитывая 128-битный регистр, упаковывающий 8 16-битных элементов, как я могу получить доступ (дешево) к произвольным элементам из регистр, для последующего использования _mm_cvtepi8_epi64 (...
вопрос задан: 16 September 2015 14:55