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

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

Булат Валеев Мастер (1112), на голосовании 10 месяцев назад
Вводится любое число если оно равно 1101 то выводится 1, если не равно 1101 то выводится 0
Голосование за лучший ответ
Ярослав Хакимов Мыслитель (9433) 11 месяцев назад
уже выезжаю
Булат ВалеевМастер (1112) 11 месяцев назад
Буду очень благодарен
Булат Валеев, Вышлите мне yelena.vidyakova.79@mail.ru
Татьяна Просветленный (36488) 11 месяцев назад
 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 ; Вызов операционной системы
Инспектор Жопидý Оракул (88523) 11 месяцев назад
Код на ассемблере для проверки числа 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.
• Для других архитектур или систем необходимо изменить код соответственно.
• Вы можете изменить код, чтобы он выполнял другие действия, например, сохранял результат в файл или выводил сообщение на экран.
Артём Чернышов Ученик (226) 10 месяцев назад
так язык ассемблера на всех процах разный же
Похожие вопросы