В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
fgggg2qq
fgggg2qq
17.03.2022 22:28 •  Информатика

Написать программный код ( для любого значения)

Показать ответ
Ответ:
Yarina0311
Yarina0311
16.05.2021 16:50

.data

conTitle DB "Counting of separate int in array", 0

mesl DB "Array: ", 0

len_mesl EQU $-mesl

mes2 DB Odh, Oah, "Number = ", 0

len_mes2 EQU $-mes2

mes3 DB Odh, Oah, "Found times = ", 0

len mes3 EQU $-mes3

charBuf DB ", 0

len charBuf DD $-charBuf

iarray DD • -9, 3, -5, 2,

larray EQU ($-iarray)/4

lpFmt DB "%d", 0

cnt DD 0

num DD • -5

readBuf DB

lenReadBuf DD 1

hStdln DD 0

hStdOut DD 0

chrsRead DD 0

chrsWritten DD 0

STD_INP_HNDL DD • -10

STD OUTP HNDL DD • -11

.code

start:

call AiiocConsoie

test EAX, EAX

j z ex

push offset conTitle

call SetConsoleTitleA

test EAX, EAX

j z ex

call getout_hndl

call getinp_hndl

push EBX

mov EBX, offset mesl

mov ECX, len_mesl

call write_con

pop EBX

mov ESI, offset iarray

mov ECX, larray

show_next:

push ESI

push ЕСХ

push DWORD PTR [ESI]

push offset lpFmt

push offset charBuf

call wsprintf

add ESP, 12

push EBX

mov EBX, offset charBuf

mov ECX, len_charBuf

call write_con

pop EBX

call clear_buf

pop ECX

pop ESI

add ESI, 4

loop show_next

push EBX

mov EBX, offset mes2

mov ECX, len_mes2

call write_con

pop EBX

push DWORD PTR num

push offset lpFmt

push offset charBuf

call wsprintf

add ESP, 12

push EBX

mov EBX, offset charBuf

mov ECX, len_charBuf

call write_con

pop EBX

; подсчитать, сколько раз встречается элемент в массиве

mov DWORD PTR cnt, О

lea ESI, iarray

mov ECX, larray

f init

; загрузка исходного числа в вершину стека сопроцессора

fild DWORD PTR num

next_cmp:

ficom DWORD PTR [ESI]

fstsw AX

sahf

jne skip

; если значение в вершине стека равно элементу массива,

; увеличить содержимое счетчика

inc cnt

skip:

add ESI, 4

loop next_cmp

; преобразовать результат подсчета в строку

push DWORD PTR cnt

push offset lpFmt

push offset charBuf

call wsprintf

add ESP, 12

push EBX

mov EBX, offset mes3

mov ECX, len_mes3

call write_con

pop EBX

push EBX

mov EBX, offset charBuf

mov ECX, len_charBuf

call write_con

pop EBX

call clear buf

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота