Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста на писать код в Assembler

maks 3d3 Ученик (51), открыт 4 недели назад
Вычислить максимум и минимум массива. Найти разницу между ними.
2 ответа
Moon Late Мастер (2289) 4 недели назад
Выделил, нашел. Че дальше делать?
Numb Просветленный (27568) 3 недели назад
Кода на ассемблере для вычисления максимума и минимума в массиве. И нахождения разницы между ними. Массив содержит 32-битные целые числа.
 section .data 
array db 10, 20, 5, 30, 15 ; Массив данных
array_size db 5 ; Размер массива
max_value db 0 ; Переменная для максимума
min_value db 255 ; Переменная для минимума
difference db 0 ; Переменная для разницы

section .text
global _start

_start:
; Инициализация указателей
mov ecx, [array_size] ; Загружаем размер массива в ecx
mov esi, array ; Указатель на начало массива
mov al, [esi] ; Загружаем первый элемент в al
mov [max_value], al ; Устанавливаем максимум
mov [min_value], al ; Устанавливаем минимум

; Цикл по элементам массива
next_element:
inc esi ; Переход к следующему элементу
dec ecx ; Уменьшаем счетчик
jz calculate_difference ; Если счетчик равен 0, переходим к вычислению разницы

mov al, [esi] ; Загружаем текущий элемент в al

; Проверка на максимум
cmp al, [max_value]
jg update_max ; Если текущий элемент больше максимума, обновляем максимум

; Проверка на минимум
cmp al, [min_value]
jl update_min ; Если текущий элемент меньше минимума, обновляем минимум

jmp next_element ; Переход к следующему элементу

update_max:
mov [max_value], al ; Обновляем максимум
jmp next_element

update_min:
mov [min_value], al ; Обновляем минимум
jmp next_element

calculate_difference:
mov al, [max_value] ; Загружаем максимум в al
sub al, [min_value] ; Вычисляем разницу
mov [difference], al ; Сохраняем разницу

; Завершение программы
mov eax, 1 ; Системный вызов для выхода
xor ebx, ebx ; Код возврата 0
int 0x80 ; Вызов ядра
Код написан для 32-битной архитектуры Linux.
maks 3d3Ученик (51) 3 недели назад
сможешь скинуть скрин работы кода пожалуйста у меня просто винда
Numb Просветленный (27568) maks 3d3, можешь проверить код через компилятор.
Похожие вопросы