русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Программа: Двумерные массивы на Ассемблере

Задание:

Написать программу с выводом данных на экран монитора. Ввести двумерный массив А (N, N). Составить алгоритм и программу подсчета среднего арифметического значений двумерного массива. Найти отклонения от среднего в элементов первой строки.

 

Текст программы:

 

.686; Директива определения типа микропроцессора
. Model flat, stdcall; задачи линейной модели памяти
; И соглашения ОС Windows
option casemap: none; отличие малых и больших букв

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\fpu.inc
include \masm32\include\user32.inc
include \masm32\include\msvcrt.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\msvcrt.lib
includelib \masm32\lib\fpu.lib

. Data; директива определения данных
buf db 30 dup (?)
stdout DWORD?
stdin DWORD?
cRead dd?
temp dd?
st1 db "Vvesty masiv:
st2 db "Вывод результата отклонения от среднего арифметического", 0
st3 db 10 dup (0)
sum dd 0
sum1 dd 0
mas1 dd 1,2,3,4,5,6,7,8,9
const1 dd 100
_c dd 9
_cc dd 3

. Code; директива начала кода
_start:
lea esi, mas1; загрузки адреса начала массива
mov ecx, _c
m1:
mov ebx, ecx
invoke GetStdHandle, STD_OUTPUT_HANDLE
mov stdout, eax
invoke GetStdHandle, STD_INPUT_HANDLE
mov stdin, eax
invoke WriteConsoleA, stdout, ADDR st1, 14, NULL, NULL; VIVOD ST1
invoke ReadConsole, stdin, ADDR buf, 20, ADDR cRead, NULL; чтения числа как символ
invoke crt_atoi, ADDR buf;преобразовать символ в число
mov [esi],eax
add esi,4
mov ecx,ebx
loop m1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

lea esi,mas1; загрузки адреса начала массива
mov ecx,_c
finit
fld sum
m2:
fild dword ptr [esi]
faddp st (1),st

add esi,
loop m2
fild _c
fdiv

lea esi, mas1
mov ecx, _cc
fld sum1

m3: fild dword ptr [esi]
faddp st (1), st

add esi, 4
loop m3
fild _cc
fdiv
fdiv

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

invoke FpuFLtoA, 0, 10, ADDR st3, SRC1_FPU or SRC2_DIMM
invoke MessageBox, NULL, addr st3, addr st2, MB_OK
invoke ExitProcess, NULL;возврат управления Windows
; И освобождения ресурсов

end _start; директива окончания программы с именем start

 

Результат работы программы:

Просмотров: 11728

Вернуться воглавление




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.