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

Помогите написать код на ассемблере

Булат Валеев Мастер (1005), открыт 3 недели назад
Вводится любое число если оно равно 1101 то выводится 1, если не равно 1101 то выводится 0
7 ответов
Ярослав Хакимов Мыслитель (6126) 3 недели назад
уже выезжаю
Булат ВалеевМастер (1005) 3 недели назад
Буду очень благодарен
Булат Валеев, Вышлите мне yelena.vidyakova.79@mail.ru
Татьяна Просветленный (32581) 3 недели назад
 section .data 
input_number db 1101 ; Входное число
result db 0 ; Результат (по умолчанию 0)

section .bss

section .text
global _start

_start:
mov al, [input_number] ; Загружаем входное число в регистр AL
cmp al, 1101 ; Сравниваем AL с 1101
jne not_equal ; Если не равно, переходим к метке not_equal

; Если числа равны
mov byte [result], 1 ; Устанавливаем результат в 1

not_equal:
; Выход из программы
mov eax, 1 ; Системный вызов для выхода из программы
xor ebx, ebx ; Код выхода 0
int 0x80 ; Вызов операционной системы
Инспектор Жопидý Просветленный (39774) 3 недели назад
Код на ассемблере для проверки числа 1101
Фрагмент кода
; Определяем сегмент данных
DATA SEGMENT
number BYTE ? ; Переменная для хранения введенного числа
DATA ENDS

; Определяем сегмент кода
CODE SEGMENT
ASSUME CS:CODE, DS:DATA

START:
; Ввод числа
mov EAX, 0 ; Функция ввода числа в переменную 'number'
int 80h

; Сравнение введенного числа с 1101
cmp number, 1101
je equal ; Переход к метке 'equal', если числа совпадают

; Вывод 0, если числа не совпадают
mov EAX, 0 ; Функция вывода числа 0
int 80h
jmp end ; Переход к метке 'end'

equal:
; Вывод 1, если числа совпадают
mov EAX, 1 ; Функция вывода числа 1
int 80h

end:
; Завершение программы
mov EAX, 4C ; Функция завершения программы с кодом 0
int 80h

CODE ENDS
END START
Объяснение кода:
• DATA SEGMENT: Определяет сегмент данных, где хранится переменная number для хранения введенного числа.
• CODE SEGMENT: Определяет сегмент кода, где содержится код программы.
• START: Метка начала программы.
• mov EAX, 0; int 80h: Ввод числа в переменную number с помощью функции int 80h.
• cmp number, 1101: Сравнение введенного числа (number) с 1101.
• je equal: Переход к метке equal, если числа совпадают.
• mov EAX, 0; int 80h: Вывод числа 0, если числа не совпадают.
• jmp end: Переход к метке end.
• equal:
o mov EAX, 1; int 80h: Вывод числа 1, если числа совпадают.
• end:
o mov EAX, 4C; int 80h: Завершение программы с кодом 0.
Как использовать:
1. Сохраните код как файл с расширением .asm.
2. Скомпилируйте код с помощью ассемблера.
3. Запустите полученный исполняемый файл.
4. Введите число.
5. Программа выведет 1, если введенное число равно 1101, или 0, если не равно.
Примечания:
• Этот код написан для 32-битной архитектуры x86.
• Для других архитектур или систем необходимо изменить код соответственно.
• Вы можете изменить код, чтобы он выполнял другие действия, например, сохранял результат в файл или выводил сообщение на экран.
Артём Чернышов Ученик (222) 2 недели назад
так язык ассемблера на всех процах разный же
Похожие вопросы