2
ответа

Как я компилирую ассемблерные подпрограммы для использования с программой C (ассемблер GNU)?

У меня есть ряд функции блока, которую я хочу использовать в программах C путем создания заголовочного файла. Например, если у меня есть asm_functions.s, который определяет фактические ассемблерные подпрограммы и asm_functions.h...
вопрос задан: 30 April 2009 20:57
2
ответа

Как центральные процессоры реализуют Инструкции как MUL/MULT?

В различных ассемблерах MUL (x86)/MULT (миллион операций в секунду) относятся к умножению. Это - черный квадрат для программиста. Я интересуюсь тем, как на самом деле ЦП выполняет умножение независимо от...
вопрос задан: 28 March 2009 03:03
2
ответа

Кто-то может объяснить этот непосредственно собранный код операции x86 JMP?

В школе мы использовали программу самозагрузки для запущения автономных программ без операционной системы. Я изучал эту программу и когда защищенный режим включен существует далекий переход...
вопрос задан: 13 February 2009 07:49
2
ответа

LLVM по сравнению с генерацией кода MIPS GCC, какими-либо сравнительными тестами?

Я интересуюсь знанием, что такое "лучше всего" БЕСПЛАТНЫЙ компилятор / компилятор OSS для кода MIPS, GCC или LLVM, или там что-нибудь еще лучше, чем те? Я интересуюсь знанием больше о быстром и ограниченной памяти...
вопрос задан: 8 January 2009 11:55
2
ответа

Какова цель кода операции NOP?

Я прохожу MSIL и замечаю, что существует много инструкций по NOP. В статье MSDN говорится, что они не принимают мер и используются для заполнения пространства, если код операции исправляется. Они используются намного больше в отладке...
вопрос задан: 24 October 2008 19:14
1
ответ

Какие регистры сохранить в ARM C соглашение о вызовах?

Это было некоторое время, так как я продержался кодированный ассемблер руки, и я немного ржав в деталях. Если я вызываю функцию C от руки, я только должен волноваться о сохранении r0-r3 и lr, правильно? Если функция C...
вопрос задан: 28 July 2019 14:14
1
ответ

Что означает инструкция "lock" в x86 ассемблере?

Я видел некоторые x86 ассемблеры в исходниках Qt: q_atomic_increment: movl 4(%esp), %ecx lock incl (%ecx) mov $0,%eax setne %al ret .align 4,0x90 .type q_atomic_increment,@...
вопрос задан: 28 June 2019 09:10
1
ответ

Как noexcept в C ++ меняет сборку?

Как noexcept в C ++ меняет сборку? Я попробовал немного с маленькими функциями, в Godbolt, но сборка не изменилась. float pi () // noexcept // без разницы {return 3.14; } int main () {...
вопрос задан: 26 June 2019 23:35
1
ответ

Стандарты Кодирования блока / Лучшие практики

Я имею, знают 8 086 блоков, и теперь я изучаю блок MIPS путем чтения книг Программирование Ассемблера MIPS и Вижу Выполнение MIPS, но я никогда не останавливался для размышления о стандартах кодирования / лучший...
вопрос задан: 9 June 2019 06:06
1
ответ

Обработка вызовов (потенциально) заблаговременно скомпилированных функций из кода JIT [закрыто]

Этот вопрос был отложен как слишком широкий, по-видимому, из-за исследования, которое я включил, чтобы «показать свою работу» вместо того, чтобы задавать вопрос с минимальными усилиями. Чтобы исправить это, позвольте мне подвести итог ...
вопрос задан: 12 April 2019 18:55
1
ответ

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

поэтому, когда я загружаю слово, значение, которое оно мне дает, представляет собой шестнадцатеричное значение, которое должно быть адресом того, что я хочу. Как бы я пошел по указанному мне адресу. Пример: lw $ t0, 0 ($ a0) $ t0 даст мне ...
вопрос задан: 30 March 2019 21:44
1
ответ

Как я могу найти ошибку в этом коде сборки?

Эта программа конвертирует hexadec в новую базу нумерации (radix), у меня ошибка, и я не могу ее найти. ; Эта программа преобразует число из десятичной; в новую базу нумерации (основание). Модель маленькая ....
вопрос задан: 28 March 2019 11:57
1
ответ

Связать программу с помощью printf с ld?

Я получаю неопределенную ссылку на _printf при сборке программы сборки, которая определяет собственный _start вместо main, используя NASM на x86-64 Ubuntu Build: nasm -f elf64 hello.asm ...
вопрос задан: 23 March 2019 16:57
1
ответ

Что такое регистр индекса X?

Я спрашиваю в общем. Я пытаюсь понять назначение регистра индекса X в любом микроконтроллере в целом, так как мне нужно создать виртуальный микроконтроллер. В чем разница между ...
вопрос задан: 11 March 2019 16:20
1
ответ

Встроенный блок ассемблера в Clion

я знаю, что могу использовать этот синтаксис в Microsoft Visual C ++, если я хочу использовать некоторую сборку __asm ​​{MOV EAX, iCislo INC EAX ...
вопрос задан: 5 March 2019 01:16
1
ответ

Почему внедрение пещер кода с внедрением потоков приводит к сбою моей целевой win32 EXE?

В настоящее время я пытаюсь внедрить кодовую пещеру с инжекцией потока в удаленный EXE-файл win32, работающий в моей системе win7 (x64). Для этого я использую Microsoft VB6, с помощью которой я делаю следующее: ...
вопрос задан: 3 March 2019 17:24
1
ответ

Связывание объектов MASM с объектами C дает неверные результаты

Я реализовал простой макрос "intadd" в сборке, который добавляет два целых числа (QWORD). Код драйвера в C также использует QWORDS, который является typedef для uint32_t из stdint.h. Выход всегда 7, ...
вопрос задан: 2 March 2019 10:38
1
ответ

ARM сдвиг влево или арифметическое вправо в зависимости от знака счетчика сдвигов для эффективного умножения на любую степень 2

Недавно мы начали изучать ассемблерный код, и у нас есть домашнее задание по этой теме. Мы изучали ARM и должны писать в Raspberry Pi. Один из моих домашних вопросов читайте так: ...
вопрос задан: 2 March 2019 06:03
1
ответ

HLA суммируя все числа между одним и n

Язык ассемблера Напишите программу, которая вычисляет (n) (n + 1) / 2. Он должен прочитать значение «n» от пользователя. Подсказка: вы можете вычислить эту формулу, сложив все числа от одного до n. У меня есть ...
вопрос задан: 1 March 2019 17:53
1
ответ

Старый загрузчик BIOS для загрузки кода реального режима на втором этапе

Я работаю над написанием собственной операционной системы. Пока что мой код превышает 512 байт, что слишком велико для простого загрузочного сектора. Я понимаю, что теперь я должен написать загрузчик, который читает ...
вопрос задан: 27 February 2019 01:48
1
ответ

Как выйти из оператора for в сборке

Целью этого кода является мигание битов, включенных три раза, выход из цикла и выключение их. В настоящее время код, кажется, находится в бесконечном цикле и не выходит из цикла после подсчета ...
вопрос задан: 26 February 2019 12:24
1
ответ

asm (& ldquo; fldl% 0 & rdquo; & hellip;) в DOS, синтаксис Intel

Я работаю над ретро-проектом, пытающимся скомпилировать тестовый код в Borland Turbo C ++ / DosBox. У меня есть эта функция: double sin (double x) {asm ("fldl% 0;" "fsin;" "fstpl% 0": "+ m" (...
вопрос задан: 18 February 2019 19:38
1
ответ

Почему точка входа в BIOS начинается с инструкции WBINVD?

Я исследую код BIOS на моей машине (x86_64 Linux, IvyBridge). Я использую следующую процедуру для выгрузки кода BIOS: $ sudo cat / proc / iomem | grep ROM 000f0000-000fffff: системное ПЗУ $ sudo ...
вопрос задан: 20 January 2019 15:46
1
ответ

Сортировка строки в алфавитном порядке с использованием сборки

Я использую Ubuntu 32 бит для кодирования в сборке. И я пытаюсь сделать программу, чтобы упорядочить строку в алфавитном порядке, но это не работает правильно. Я объявил строку. Я использовал Леа, чтобы разместить ...
вопрос задан: 19 January 2019 22:16
1
ответ

Определить начальные адреса аргументов функции

У меня есть программа "c", которая дает следующие аргументы для внешней функции x86: extern "C" int fun (unsigned char * par1, unsigned char * par2, unsigned int par3); Длина par1 определена. Как ...
вопрос задан: 19 January 2019 20:52
1
ответ

Выполняется ли часть после BEQ, если флаг EQ не = 1

Если флаг EQ после SUBS равен = 0, выполняется ли процедура Routine1? или он должен быть разветвлен BEQ (флаг EQ должен быть 1) для выполнения. У меня есть следующий код: Изменить ...
вопрос задан: 19 January 2019 20:41
1
ответ

Как решить & ldquo; Предполагается, что сегмент данных является 32-битным & rdquo; в TASM

У меня есть эта программа внизу, и она рассчитывает на 100, используя DOSBox. Он отлично работает с .286, но я хочу знать, как я могу сделать эту работу с .386. .286 .model small setCurPos macro x, y pusha ...
вопрос задан: 19 January 2019 18:10
1
ответ

Получить байтовое представление инструкции ASM в коде C

Есть ли способ в коде C перейти от текстового представления инструкции ASM (например, cmpwi r3, 0x20) к ее двоичному представлению (0x2c030020)? Я пишу код, который будет встроен в ...
вопрос задан: 19 January 2019 13:50
1
ответ

Функция с неопределенным числом аргументов MIPS

Я совершенно новичок в MIPS, так что извините, если это глупый вопрос. У меня есть следующее упражнение в качестве задания, и я был бы очень признателен, если бы у меня были какие-либо идеи, отправные точки. Я должен создать ...
вопрос задан: 19 January 2019 12:18
1
ответ

Это инструкция по конвейерной обработке Intel?

Насколько мне известно, конвейерная обработка Intel 8086 - это метод, который извлекает следующую инструкцию при выполнении настоящей инструкции. В этой статье говорится, что одним из преимуществ конвейеризации является ...
вопрос задан: 19 January 2019 11:48