Задать свой вопрос   *более 50 000 пользователей получили ответ на «Решим всё»

Задача 37281 Написать программу для сравнения двух...

Условие

Написать программу для сравнения двух строк из произвольного числа байтов, которые заканчиваются символом *. Известно, что строки различаются одним байтом. Вывести символ байта. Если строки одинаковые вывести на консоль сообщение «EQ!». Проверить работу программы для разного числа байтов. (Вариант 3)

Язык [b]Assembler[/b].
Microprocessor simulator 5.0

информатика ВУЗ 870

Решение

JMP START
DB "abcd*"
DB "abcd*"
START:
MOV AL, C0 ;адр видео памяти
MOV BL, 02 ;адр байтов строки

GO:
MOV CL, [BL] ;получение байта строки
MOV [AL], CL ; из адр видео памяти в байт стр

INC BL ;увелич байтов стр
INC AL ;увелич простр-ва видео памяти

MOV CL, [BL] ;получение байтов стр
CMP CL, 2A ;сравн с *
JZ STEK ;если z=1

JMP GO

STEK:
INC BL
PUSH BL ;запись байта в стек
MOV AL, D0

GO2:
MOV CL, [BL]
MOV [AL], CL

INC BL
INC AL

MOV CL, [BL]
CMP CL, 2A
JZ STOP

JMP GO2

STOP:
MOV AL, 02
POP BL

EQUAL:
MOV CL, [BL]
MOV DL, [AL]

CMP CL, 2A
JZ END2

CMP CL, DL
JZ EQUAL_SUCC

MOV [E0], CL
JMP ERROR

EQUAL_SUCC:
INC BL
INC AL

JMP EQUAL

END2:
MOV CL, 45
MOV [E0], CL
MOV CL, 51
MOV [E1], CL
MOV CL, 21
MOV [E2], CL

ERROR:
END

Написать комментарий

Меню

Присоединяйся в ВК