Top.Mail.Ru
Ответы

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

Вводится любое число если оно равно 1101 то выводится 1, если не равно 1101 то выводится 0

По дате
По рейтингу
Аватар пользователя
Ученик

brainfuck легче

Аватар пользователя
Ученик

нннннннн

Аватар пользователя
Ученик

так язык ассемблера на всех процах разный же

Аватар пользователя
Ученик

Аооаоа

Аватар пользователя
Мыслитель

Код на ассемблере для проверки числа 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.
• Для других архитектур или систем необходимо изменить код соответственно.
• Вы можете изменить код, чтобы он выполнял другие действия, например, сохранял результат в файл или выводил сообщение на экран.

Аватар пользователя
1234567891011121314151617181920212223
 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               ; Вызов операционной системы 
 
Аватар пользователя
Ученик

12121212112121212

Аватар пользователя

уже выезжаю

Аватар пользователя
Ученик

Буду очень благодарен



Видео по теме