Запитання з тегом «assembly»

Питання програмування мови (асм). ОБОВ'ЯЗКОВО ТАКОЖ ТАКОЖ ТАГО з набором процесора та / або інструкцій, який ви використовуєте, а також з асемблером. ПОПЕРЕДЖЕННЯ. Для збірок .NET використовуйте замість тегу [.net-Assembly]. Для Java ASM використовуйте замість тегу [java-bytecode-asm].

5
Чому GCC використовує множення на дивне число при здійсненні цілого поділу?
Я читав про divі mulскладальних операціях, і я вирішив , щоб побачити їх у дії, написавши просту програму в C: Розділення файлів.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } А потім генерувати код мови збірки за …


8
Що таке базовий покажчик та покажчик стека? На що вони вказують?
Використовуючи цей приклад із вікіпедії, в якій DrawSquare () викликає DrawLine (), (Зверніть увагу, що ця діаграма має високі адреси внизу та низькі адреси вгорі.) Хтось міг би мені пояснити, що ebpі що espв цьому контексті? З того, що я бачу, я б сказав, що вказівник стека вказує завжди на …
225 c++  c  assembly  x86 

4
Чому введення непотрібних інструкцій MOV прискорить щільний цикл у зборі x86_64?
Фон: Оптимізуючи деякий код Pascal із вбудованою мовою збірки, я помітив непотрібну MOVінструкцію та видалив її. На мій подив, видалення непотрібної інструкції призвело до уповільнення моєї програми . Я виявив, що додавання довільних, марних MOVінструкцій ще більше підвищує продуктивність . Ефект є нестабільним, і зміни ґрунтуються на порядку виконання: ті …

30
Чому програми не пишуться в Асамблеї частіше? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

24
Захист виконуваного файлу від зворотного проектування?
Я роздумував над тим, як захистити свій код C / C ++ від розбирання та зворотної інженерії. Зазвичай я ніколи не потураю собі такої поведінки у своєму коді; однак діючий протокол, над яким я працював, ніколи не повинен перевірятися чи зрозуміти, для безпеки різних людей. Тепер це нова тема для …
210 c++  c  obfuscation  assembly 

3
Чому GCC генерує такі кардинально різні збірки майже для одного і того ж коду С?
Під час написання оптимізованої ftolфункції я виявив дуже дивну поведінку GCC 4.6.1. Дозвольте спочатку показати вам код (для наочності я позначив відмінності): fast_trunc_one, C: int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 - ((i >> 23) & 0xff); sign …

22
Чи вбудована мова монтажу вбудована повільніше, ніж рідний код C ++?
Я спробував порівняти продуктивність вбудованої мови складання та коду C ++, тому я написав функцію, яка додає два масиви розміром 2000 за 100000 разів. Ось код: #define TIMES 100000 void calcuC(int *x,int *y,int length) { for(int i = 0; i < TIMES; i++) { for(int j = 0; j < …
183 c++  c  performance  assembly 

7
Показати поточну інструкцію по збірці в GDB
Я роблю налагодження на рівні складання в GDB. Чи є спосіб отримати GDB, щоб він показав мені поточну інструкцію по збірці так само, як це показує поточну лінію джерела? Вихід за замовчуванням після кожної команди виглядає приблизно так: 0x0001433f 990 Foo::bar(p); Це дає мені адресу поточної інструкції, але я повинен …
179 assembly  gdb 

13
Чи може num ++ бути атомним для 'int num'?
Загалом, для int num, num++(або ++num), в якості операції читання-модифікація-запис, це НЕ атомна . Але я часто бачу компілятори, наприклад GCC , генерують такий код для нього ( спробуйте тут ): Оскільки рядок 5, якому відповідає num++одна інструкція, чи можна зробити висновок про те, що в даному випадку num++ є …


1
Чому чіпи ARM мають інструкцію з Javascript на ім’я (FJCVTZS)?
FJCVTZS - це "Перетворення Javascript з плаваючою комою на підписану фіксовану крапку, округлення до нуля". Він підтримується в чіпах Arm v8.3-A та пізніших версіях. Що дивно, адже ви не очікуєте побачити JavaScript так близько до оголеного металу. Я можу знайти пояснення того, що робить інструкція, але не чому вона існує. …
148 javascript  assembly  arm 

13
Як запрограмовані щоденні машини?
Як запрограмовані щоденні машини (не стільки комп’ютери та мобільні пристрої, скільки прилади, цифрові годинники тощо)? Який код входить в програмування торгового автомата Coca-Cola? Як моя кавоварка приймає заздалегідь запрограмований час і починає варити горщик кави через години, коли настає цей час? Чи мають у цих машин операційні системи всередині них, …

4
Які умови виклику для системних дзвінків UNIX та Linux на i386 та x86-64
Наступні посилання пояснюють умови використання системних викликів x86-32 для UNIX (BSD-аромат) та Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Але які умови системного виклику x86-64 як для UNIX, так і для Linux?
147 linux  unix  assembly  x86-64  abi 

7
Як це експлуатування використовує кущ обприскування milw0rm?
У мене зазвичай немає труднощів з читанням коду JavaScript, але для цього я не можу розібратися у логіці. Код з експлуату, який був опублікований 4 дні тому. Ви можете знайти його за milw0rm . Ось код: <html> <div id="replace">x</div> <script> // windows/exec - 148 bytes // http://www.metasploit.com // Encoder: x86/shikata_ga_nai …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.