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

rauf2007 rauf2007    2   16.05.2021 16:48    0

Ответы
EMP24 EMP24  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

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика