Skip navigation
    Домашнее задание №2
    Домашнее задание №2

    Also, perhaps most important: it is how we talk about the machine Knowing assembly, even a little, means understanding computers better


    Задание

    В данном домашнем задании вам предлагается реализовать несколько функций, используя ассемблер Go. При этом нужно будет поддержать решения для arm64 и amd64.

    SliceSum

    func SumSlice(x []int64) int64

    Необходимо реализовать функцию, возвращающую сумму переданного слайса

    LowerBound

    func LowerBound(slice []int64, value int64) int64

    Необходимо реализовать одну из вариаций бинарного поиска - LowerBound

    WordCount

    func WordCount(data []rune) int64

    Необходимо реализовать функцию, которая считает количество слов в переданной строке (separator - unicode.IsSpace)


    Особенности реализации

    • Различие регистров, инструкций и конвенций для разных архитектур (amd64/arm64)

    • Обработка слайса в качестве аргумента функции

    • Директивы и идиоматичные части сигнатуры функции на ассемблере


    Дополнительные материалы