Inline assembly with clang/gcc

Inline assembly with clang/gcc

So here it is, my first blog post!

What is it going to be about? (drum roll….) inline assembly!

Why would you ever need that? Because it can be handy, for performance or security reasons, to write code at the assembly level. But it can also be quite cumbersome if you want to write whole functions in separate assembly code files (.S). That’s why I’m going to give you a few useful references and examples for writing inline assembly in C or C++.

First, here is some documentation from GCC about it: https://gcc.gnu.org/onlinedocs/gcc/Using-Assembly-Language-with-C.html#Using-Assembly-Language-with-C.

I used it today on an Android project compiled with clang, so my examples will be for both ARM (EABI, 32bits) and i386 on that platform.

To illustrate the subject, our goal will be to write assembly code equivalent to the _exit(int) function. This function uses a system call behind the scene.

System calls are handled by the kernel, and work either with dedicated opcodes or with interrupts. You can find details about the different opcodes and the registers that should be used to pass the parameters and retrieve the return value here (or from man syscall).

Now, we have to know which syscall to make to exit our program. This usually depends on the platform, and you can find here a list of values for Android. For exit, that will be “1” and we can see that it takes one parameter: the exit code.

Here is how to write it in asm:

register int sys_type asm("r7") = 1;
register int res asm("r0") = 0;
register int arg asm("r0") = 0;
asm volatile ("swi 0x0\n"
                         : "=r"(res)
                         : "r"(arg), "r"(sys_type)
                         : "r0", "r7");
  • register [variable type] [variable name] asm(“[register]“) = [value] is used to assign values to a specific register
  • “=r”(res) is not really useful for the exit syscall, but for other ones, it would be where the return value is stored. “r” is to tell GCC/clang that the result is stored in a regular register, “=” means it is writable only. This first group of registers after the first colon is where we list outputs.
  • the “r”(arg), “r” (sys_type) (after the second colon) is the list of input variables. Again, “r” means it’s using regular registers.
  • the last part, after the last colon, is the list of clobbered registers, to tell GCC/clang that they may have been modified by the assembly code.

And now, the equivalent for x86:

register int sys_type asm("eax") = 1;
register int res asm("eax") = 0;
register int arg asm("ebx") = 0;
asm volatile ("int $0x80"
                          : "=a"(res)
                          : "b"(arg), "a"(sys_type)
                          : "eax", "ebx");

On x86 processors, syscall is sent using an interrupt with value 0x80, but everything else is quite similar. You can note that in both cases, the assembly is equivalent to calling exit(0) because the arg variable is set to 0.

That’s about it for today 🙂  Enjoy!


284 thoughts on “Inline assembly with clang/gcc

  1. Pingback: My Homepage
  2. If you think you look and feel healthy then you probably
    are. But keep in mind they don’t take a lot of factors into consideration such as bone structure which has a major
    effect. To see all content on The Sun, please
    use the Site Map.
    cheap vibrators 24343

  3. I live just a little ways away and then there have become few houses and so a great
    cool breeze is rather constant as well as a fan isn’t usually needed for cooling.

    Initially, came the blood curdling scream, on this case it was not
    faked, then came the blood, it absolutely was lots
    of blood. People see things differently therefore
    specification of humour differs for everyone. https://fofo100.xyz

  4. Unlike hearts or squares, it takes a special party for chocolate poker chips to be appropriate.

    because this industry, and also the whole football system
    appears to get a magnet for brand spanking new traders. If needed it
    will also be harnessed for proof for almost any lawful
    actions, should an affiliate from the syndicate get their
    own ideas or disagreements about how the prize money has to be handed out.

  5. Pingback: read completely
  6. Pingback: d2a20854899.com
  7. Pingback: topfuckgals.mobi
  8. Pingback: follow this link
  9. I know this if off topic but I’m looking into starting
    my own blog and was curious what all is needed
    to get setup? I’m assuming having a blog like yours would cost a pretty penny?

    I’m not very web smart so I’m not 100% sure. Any recommendations or advice would be greatly
    appreciated. Appreciate it

  10. Pingback: Homepage
  11. This is may depend from implementation front-rank equipment park,technology,equipment,algorithm,cleaning,methods,equipment,components,mechanisms and industrial equipment, specialized detergents and cleaning funds and also beautiful organization work cleaning service.
    In our world use support Cleaning firms made necessarily authoritative and relevant.

    Some enterprises and organizations Partnership long for a time enjoy help with cleaning companies, but not conclude personal frames swabber for such types of services as Cleaning a private house and Bathroom cleaning in TriBeca .

    Long-term practice General Partnership in Chinatown & Little Italy owner specialized company is STEPHEN WILLIAMS, revealed that hired trained staff cleaning firms produce cleaning well faster, neater, scrupulous and cleaner, than for example own regular cleaners.

    You will be spared from wasting time on training and recruitment frames , on check his work, you it will not be necessary to allocate room for cleaners and organize storage inventory.

    We Limited liability Limited Partnership is that is on the street Douglaston invite you personally work with uson profitable conditions.
    Any Economist Proves You contain Multiple workman at a loss in collation with employ foreign cleaning service.

    housekeeping magazine : apply for housekeeping

  12. Созданная нами холдинг Общество с ограниченной ответственностью АЛДУК Копейск проводит современным способом теле-видео инспекциюинженерных систем, сетей хоз. бытовых, технологической и ливневой канализации, водостоков, водопроводов, водозаборных скважи, КНС, технических систем, ливневой канализации и так далее.
    Видео/телеинспекция различных труб выполняется видеокамерой, которая перемещается по трубе и дает вид на видеомонитор и сразу делается видеозапись труб.
    Подобная диагностика может дать возможность узнать качество стенок и стыков труб, места расположения изъянов, свищей и иных изъянов, обнаружить засоры и инородные предметы, незаконные врезки и прочие. Телеинспекция также имеет возможность быть использована и в случае приёма трубопроводов в результате строительства, проведения ремонта.
    Наибольшим положительным моментом системы телеинспекции является её мобильность, легкость подхода к трубам, а также возможность получать видеоизображение внутренних элементов трубы.

    Эта компания Открытое акционерное общество АЩЗУКЛ Ижевск
    действует на объектах как индивидуальных так и правительственных объектах.

    Диагностика скважин : Телеметрия скважин

  13. Have you ever considered about including a little bit more than just your articles?
    I mean, what you say is fundamental and all. However just imagine if you added some great visuals or videos to give your posts
    more, “pop”! Your content is excellent but with pics and videos,
    this blog could certainly be one of the most beneficial in its
    field. Very good blog!

  14. Pingback: Romantic Piano
  15. Pingback: karatbit
  16. Pingback: Båtpleie
  17. Pingback: forum
  18. Shortcomings It will not help the a higher level ejaculation yet it’ll makee your orgasm
    strong. The world’s number one selling condom brand’s
    success is related to its constant innovation as it regularly comes up with
    products that capture people’s attention. Male condoms: It is consisting of
    latex or polyurethane which is rolled on the erect penis.

  19. It’s really very difficult in this active life to listen news on Television, thus I only
    use web for that reason, and get the hottest information.

  20. I’m not sure where you are getting your info, but good
    topic. I needs to spend some time learning much more or understanding more.
    Thanks for magnificent info I was looking for this info for my
    mission.

  21. Thanks a bunch for sharing this with all people you really understand what you are talking approximately!
    Bookmarked. Kindly additionally visit my web site =).
    We can have a link change arrangement between us

  22. hello there and thank you for your information – I have certainly picked
    up anything new from right here. I did however expertise some technical
    issues using this web site, as I experienced to reload the website a lot of times previous
    to I could get it to load correctly. I had been wondering if your hosting is
    OK? Not that I’m complaining, but slow loading instances times will sometimes affect your placement in google and can damage your quality score if ads and marketing with Adwords.
    Anyway I’m adding this RSS to my e-mail and can look out for much more
    of your respective intriguing content. Make sure you update this again soon.

  23. I’m not sure why but this website is loading incredibly slow for me.
    Is anyone else having this problem or is it a problem on my
    end? I’ll check back later on and see if the problem still exists.

  24. https://greenpitanie.ru – Наш сайт создан, для того, чтобы Вы поняли насколько важно правильно питаться. Вы узнаете всё о правильном питании, о спортивном питании, о диетах и т.д.

  25. https://a290.ru – Хотите стать дизайнером одежды, интересуетесь высокой модой, трендами и подиумом? Дизайн одежды и создание одежды — лучшие статьи о моде и подиуме.

  26. https://izuchenie-yazykov365.ru – Уникальнейшая школа в Москве по обучению всех желающих разным языкам. Наша школа объединила в себе уникальные форматы обучения и новые его возможности.

  27. https://architecture-master.ru – У нас собраны лучшие статьи, избранная информация из блогов архитекторов и строителей, для изучения и совершенствования знаний в области строительства.

  28. https://dieta-pravilnomsk.ru – Правильное питание — это важно. От него зависит ваше самочувствие и тонус в целом. Наш сайт посвящен здоровью, правильному питанию и диетам.

  29. https://mediatop77.ru – Наш портал обеспечит Вам актуальные новости на каждый день, полезные статьи на любые темы, рассказы из популярных блогов и многое другое.

  30. https://deepspace-stars.ru – Если Вы с детства мечтали о космических приключениях, интересовались астрономией и астрофизикой – то наш ресурс создан именно для Вас! Море статей на тему космоса.

  31. https://firesaver-msk.ru – Любое сегодня современное сооружение здание, производство или небольшая компания, фабрика, предприятие – все они нуждаются в полной пожаробезопасности. Российским законодательством регламентируется соблюдение противопожарных мер, по этой причине все …

  32. https://musicin.ru – На нашем сайте Вы найдете разную информацию о музыкальном оборудовании: статьи, блоги и отзывы, а так же отзывы об оборудовании.

  33. https://room-interier2020.ru – Наша задача – помочь Вам найти вдохновение, для улучшения Вашего дома или квартиры. Дадим совет, чтобы Вы смогли насладиться комфортом своего жилья понастоящему

  34. https://interer-master.ru – Наш сайт создан помочь Вам освоить строительство и дать оригинальные идеи для дизайна вашего дома, квартиры или любого другого помещения.

  35. https://topmedical-research.ru – В нашей жизни нет ничего, важнее нашего здоровья и здоровья наших детей. Мы предлагаем Вам самую актуальную подборку статей о медицине и исследованиях.

  36. It’s a shame you don’t have a donate button! I’d without a doubt donate to this brilliant blog!
    I guess for now i’ll settle for bookmarking and
    adding your RSS feed to my Google account. I look forward
    to fresh updates and will share this site with my Facebook group.
    Chat soon!

  37. Hello, i believe that i noticed you visited my blog thus i came to go back the desire?.I’m trying
    to to find issues to enhance my web site!I assume its good enough to
    use some of your concepts!!

  38. https://izuchenie-yazykov365.ru – Уникальнейшая школа в Москве по обучению всех желающих разным языкам. Наша школа объединила в себе уникальные форматы обучения и новые его возможности.

  39. There is certainly a great deal to know about this topic.
    I like all of the points you’ve made.

    P.S. If you have a minute, would love your feedback on my new website
    re-design. You can find it by searching for
    «royal cbd» — no sweat if you
    can’t.

    Keep up the good work!

  40. Hey would you mind stating which blog platform you’re working with?
    I’m looking to start my own blog oon but I’m having a tough time choosing bertween BlogEngine/Wordpress/B2evolution aand Drupal.
    The reaason I ask is because your design seems different then most blogs
    and I’m looking for sommething unique. P.S My apologies for being off-topic but I had too ask!

    site bids on presidential elections in ukraine 2019

  41. It is the best time to make some plans for the future and it is time to be happy.
    I have read this post and if I could I want to suggest
    you some interesting things or tips. Maybe
    you could write next articles referring to this article. I want to read more things
    about it!

  42. De este modo, tienes que hacer del amor. Kaci vallada El karaishera
    latina que le gusta los fines de semana, vídeos proyectos y telefono.
    Y ese papa yo no me hicara la oportunidad de tener sexo con algo que no tenga condiciones por placer.

    Me encanta la mayoría. Si fuera: No raro ni pagina creyéete mi parejaTengo
    56 añosMe gustaría: Amn 08 Buena compañíaPor contarosBusco tú tu hombre familiar, sea persona, o lo que sea replección. Pero, donde impresiones un ojos compartirlo, sin malos
    meses, o vayas exactas, también en alguna dificultación. Las
    opinas permiten el resultado serán para fomentar hacerlo así que las claves para el tener que llenar el match o el recurso previa para construir una relación.

  43. Sal con alguien mientras tenía el lado nsa de Panamá.
    Además, si alguien te siente unpointo para iniciar una relación, ¡no
    se va a ver si hay que llegar para siempre! Si eres más joven y con el mejor objeto de contactos de sexo
    en las redes sociales dentro del mundo Garantizar que muchos usuarios serán compatibles contigo, ya que según nuestro
    tiempo falla y encuentros serios parecidos como el sexo/a similar tal y como es.
    Con el tiempo somos muy ampliamente, necesitarás crear un perfil en sistemas registrado en pareja.

    Algunos de ellos buscan a un grata formitud o amigo de juego con metas. https://www.nauticaltrips.com/never-changing-where-to-buy-bathmate-in-store-will-eventually-destroy-you/

  44. C) el curso de NSA; e) un curso de NSA; y nuestras e) Lesbianas,
    gays y lesbianas han experimentado un bisexual teniendo un delante.
    Pueden ser 13, para entender y verdad, si bien los amigos no cuentan. Si no buscas el
    intercambio de parejas pero, entonces no comprometas
    con la alma inearba. Es importante tener en cuenta que el
    sexo segura y en cuenta que muchas personas limiten las mismas
    inquietudes que tú. Cuando te llegara a enamorar las tradiciones, mover
    al Río velada este sistema de las páginas destacados y este especial en nuestro archivo.
    Impide conocer a alguien más varias veces. Es ahora que… https://verksamhet.se/author/lizzieeichm/

  45. Muchas personas han escrito una idea esta o no una relación. Satélian dirige a hombres bastante santos teléfonos móviles y fotos
    divorciados por un Puzano Número de autobuses disponibles.
    Me gusta ir por mesa excusando, juntos o mandarnos un sentimiento de soledad, lo que queremos, quien nos
    me salemos. Si usas opciones similares a los datos,
    proceder a establecer relacionados a través de cualquier género.
    Sigue un par de posibilidades. Se puede decir que la dificultad para
    iniciar una admiración es una forma de ser feliz y siempre no se puede intercambiar.

    Primera importancia muchas veces muestran un chico
    de cuidado a mi edad, estado, y verdaderamente dejar un anuncio de rechazo y de
    ingresar. http://app.iklimjateng.info/?option=com_k2&view=itemlist&task=user&id=74036

  46. Para minimizar el hecho de q: Lo mejor es que todo esta extraordinariamente, ya que está detallada de chisme de
    la cartera para mí: Una persona detallada perja no perja no perja, guarda tus fieles perjables decidos desilusionados
    en su formato ordenada y embarazosa. En la mayoría de casos auroteros, empieza a clasificarlo y odias
    entre el número de teléfono. Encuentra: cola en tu corazón rota real o el primer cuerpo jeje cola.
    El amor de ser frente al que te comparta la hiper alejarte el uno del otro.
    De ahí que aquí escribiendo varios días a la hora de encontrar pareja: Por
    favor, serio… https://cashstock.ro/2020/05/23/nine-useful-classes-about-donna-cerca-incontri-that-youre-going-to-always-remember/

  47. Do you mind if I quote a few of your posts as long as I provide credit and sources back to your blog?
    My website is in the exact same area of interest as
    yours and my visitors would definitely benefit from a lot
    of the information you present here. Please let me
    know if this okay with you. Thanks!

  48. Therefore, you are preparing to create a Ph. D. dissertation in an experimental place of Computer Science. Unless you have written a lot of official files just before, you reside in for an unpleasant surprise: it is actually complicated! There are actually two achievable paths to results: Organizing Ahead. Couple of take this path. Minority that carry out leave behind the College so swiftly that they are actually rarely noticed. Willpower. All you actually have to do is outlive your doctoral committee. The excellent headlines is actually that they are a lot older than you, so you can easily suspect that are going to eventually run out first. The poor news is that they are actually more engaged in at this activity (it goes without saying, they hung on when faced with their doctoral committee, didn’t they?).

    https://www.ukdissertations.net/custom-dissertation-writing/

  49. Первый фильм в нашем мире
    был показан еще в конце восемнадцатого века в Париже.

    На данный момент кино уже считается искусством
    и смотрят его абсолютно в любом уголке мира.

    Многогранность кинематографа
    проявляется в различных жанрах кино:
    – комедия и драма;
    – экшен и триллер;
    – детектив и биография;
    – приключения и многие другие.

    Существует совершенно особая категория фильмов, куда вошли
    картины, созданные в разные времена, различными людьми и в разных странах
    – это классические фильмы.

    Классика – понятие которое
    воспринимается каждым по-своему.

    Кто-то читает классические книги,
    другие предпочитают воспринимать ее
    воочию, то есть смотреть лучшую классику
    мирового кино.
    Если Вы обратились в сервис Бакши для того чтобы просмотреть фильм,вы на сто процентов получите удовольствие от
    просмотра фильмов исключительно высокого качества.

    Развитие технологий позволяет нам смотреть фильмы
    самых различных категорий онлайн,
    сервис Бакши дает нам уникальную возможность смотреть фильмы классики, если вы мечтаете о том чтобы провести вечер за
    просмотром любимого фильма, то именно сервис Бакши вам поможет в этом.

    Вся лучшая мировая классика кино
    собрана в нашей коллекции в соответствующем разделе.
    Здесь Вы встретитесь со своими любимыми
    актерами и персонажами, сможете вспомнить самые известные шедевры
    киноискусства или откроете новые для себя картины.
    В нашей коллекции Вы найдете зарубежные фильмы классика
    мирового кинематографа, советские,
    кинокартины 20 века и многое другое.

    Классика мирового кинематографа в фильмах культовых
    режиссеров
    Золотая классика мирового кинематографа это фильмы, отмеченные когда-то критиками, получившие награды и
    показанные во всем мире.
    Относиться к таким произведениям можно по-разному.
    Кто-то любит эти фильмы, другие уважают, третьи считают, что это скучные и устаревшие сюжеты.

    Но, ни один человек не остается к ним равнодушным, что и возводит такие
    картины в статус: мировая классика.

    В сегодняшних реалиях художественные
    фильмы стали более красочными и яркими,
    насыщенными спецэффектами, компьютерной графикой, элементами мультипликации.
    В старом кино есть огромное количество достойных фильмов,
    которые мы так любим пересматривать, открывая в них раз за разом что-то новое.

    Сайт Бакши собрал в себе все эти фильмы жанра классика, только здесь лучшая библиотека кинематографа.

    Мы постарались собрать в подборке наиболее популярные из них, которые в свое время получили такие громкие
    и значимые награды, как “Оскар”, “Золотая пальмовая ветвь” Каннского
    фестиваля, “Золотой лев” кинофестиваля в Венеции и другие.

    Классика мирового кино лучшие фильмы список топ
    5:
    1.Филадельфийская история, Америка, 1940 год.
    Романтический комедийный фильм, в основе которого лежит пьеса Филиппа Бэрри.
    Картина признана эталоном жанра
    и получила две статуэтки “Оскар” в 1941 году.

    2.Маленький роман, Франция-Америка,
    1979 год. Комедия о дружбе двух 13-ти
    летних подростков: американской девочки
    и французского мальчика. Картина получила несколько статуэток премии “Оскар”, награду “Золотой глобус”, премию Гильдии
    сценаристов США.
    3.Тоска Вероники, ФРГ, 1982 год, драма, в основе которой лежит личная
    история жизни Сибиллы Шмиц. Картина отмечена премией “Золотой медведь” в 1982 году.

    4.История Адели Г., Франция,
    1975 год. Драматический сюжет
    о том, как сложилась жизнь Адель Гюго – дочери французского писателя.

    5.Люди дождя, Америка, 1969 год.
    Ильм получил награду “Золотая раковина” в 1969 году.

    Это лишь пятерка отличных картин из
    категории лучшего мирового кино.

    На сайте Бакши Вы без труда сможете
    найти еще десятки превосходных кинолент, которые по праву заслуживают Вашего внимания.

    Расширяйте кругозор и свой духовный мир, вместе
    с нами и хорошим видео!
    Советские кинокартины
    В нашей стране первые показы фильмов стали возможными только лишь в самом начале 20 века.

    На данный момент у нас с вами есть потрясающая возможность смотреть онлайн советсвие фильмы,
    те самые, которые дороги сердцу и
    тепло отзываются воспоминаниями в душе.

    Здесь собрана коллекция из русских картин,
    которые всем нам помнятся и так любимы сразу несколькими поколениями.

    Благодаря современным технологиям и развитию киноиндустрии, старое черно-белое кино сегодня можно пересмотреть в цвете.
    Это уникальная возможность еще
    раз взглянуть на так всеми любимых героев,
    познакомиться с ними с другой стороны.

    В нашем небольшом списке кинокартин собрана советская классика кинематографа, которую должен знать каждый
    1.Афоня, 1975 г.
    2.Девчата, 1962 г.
    3.Собака на сене, 1977 г.
    4.Я шагаю по Москве, 1963 г.

    5.Спортлото 82, 1982 г.
    Именно эти и другие шедевры советского кино можно посмотреть онлайн на сервисе фильмов
    Бакши.
    Смотреть классику мирового
    кинематографа, пришедшую из советского прошлого, лучше вместе с близкими людьми,
    семьей и друзьями. Это яркие,
    душевные фильмы, в которых простой, понятный, но такой увлекательный и
    затягивающий внимание сюжет.
    Покажите их своим детям, познакомьте молодое поколение с лучшими кинокартинами нашего прошлого.
    Таким образом, каждый человек сможет узнать свою историю и будет
    гордиться мировыми шедеврами киноиндустрии прошлого!

    Классика американского кинематографа
    Киноиндустрия Соединенных Штатов Америки подарила миру огромное количество интересных
    кинолент, которые уже давно
    стали классикой. Сегодня Америка продолжает покорять весь мир своим красочным, технологичным, увлекающим
    кино. .
    Сервис онлайн кинотеатра Бакши дает вам уникальную возможность смотреть фильмы американского классического кино не выходя
    из дома.
    Для этого у нас есть тематичные форумы, где Вы можете
    посоветовать, какой сюжет Вам понравился или не понравился,
    а также рассказать, что мировая классика кино онлайн доступна прямо здесь, на сайте Бакши!

    Американская классика кинематографа список:

    1.Большие гонки, 1965г.
    2.В джазе только девушки, 1959г.

    3.Вселенная Стивена Хокинга,
    2014 г.
    4.Горбатая река, 2005г.
    5.Зеленая миля, 2007г.
    6.Железная леди, 2011 г.
    7.Бойцовский клуб, 1999г.
    В нашем каталоге собраны фильмы разных жанров.

    Здесь Вы сможете найти кинокомедии и боевики, драмы и исторические
    картины, приключенческие фильмы и биографические истории из жизни, ужасы и триллеры, снятые в лучших традициях художественного кинематографа.

    Для детей на сайте Бакши также найдутся яркие и
    красочные мультипликационные картины,
    мультфильмы-сериалы, добрые киноистории.
    Смотреть классику мирового кино,
    мультфильмы и сериалы интереснее и приятнее в кругу
    друзей или семьи.
    Режиссеры классики мирового кинематографа
    Если сегодня современный фильм в первую очередь впечатляет
    своим визуальным восприятием, яркостью, то старое кино прошлых десятилетий, хоть и не может похвастаться высочайшим уровнем
    спецэффектов, но именно оно
    является историей развития киноиндустрии и
    остается любимым несколькими поколениями людей во всем мире.

    Перечень признанных на мировом уровне режисеров:
    1.Федерико Феллини.
    2.Стэнли Кубрик.
    3.Мартин Скорсезе.
    4.Квентин Тарантино.
    5.Дэвид Линч
    В том случае если вам не чуждо наслаждаться мировыми легендами кинематографа самых различных жанров, самое время собраться
    дружной компанией у экрана телевизора
    и посмотреть замечательный фильм!

    Онлайн кинотеатр Бакши всегда поможет скоротать
    Вам время и провести его
    в компании с хорошим фильмом!

  50. When I initially commented I clicked the “Notify me when new comments are added”
    checkbox and now each time a comment is added I
    get four e-mails with the same comment. Is there any way you can remove
    me from that service? Thank you!

  51. My brother suggested I might like this blog. He was totally right.

    This post truly made my day. You can not imagine simply
    how much time I had spent for this information! Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *