русс | укр

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

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

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

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


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

Программа работа с массивами на Ассемблер

Задачи:

Написать программу с использованием директив условного асемблювання: Задано массивы А и В по N = 30 элементов. Привести алгоритм и программу формирования массива С по правилу: если в элементов Аi и Вi биты 4 и 9 совпадают, то Сi = Аi + Вi. Вывести соответствующие сообщения.

 

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

 

.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

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


ExitProcess proto: DWORD

. Data; директива определения данных
st1 db "Вывод", 0
st2 db 10 dup (?), 0

ifmd db "Размер массива =% d. Количество одинаковых битов 4 и 9 =% d", 0

masivA dw 591,34,34,45,2,6,2, -6,1,9,8,6,4,5,45,12,12,31,46,84,54, -54, -25 , 88,70,37, -1,0,0,5,0
masivB dw 963,2,7,43,13, -7,65,9,5,100,126,145,123,2,32, -48,84,256,987,20, -54, -12, -200,4,0,0,9,8,215 ,54
masivC dw 30 dup (0)
work1 dw 0
work2 dw 0
sum dd 0
. Code; директива начала кода

_start:
mov eax, 0
mov ebx, 0
mov ecx, 30
mov edx, 0
lea esi, masivA
lea edi, masivB
lea edx, masivC

M1:

mov ax, [esi]
mov bx, [edi]
inc esi
inc esi
inc edi
inc edi
mov work1, ax; сохранение значений
mov work2, bx; сохранение значений
and eax, 210h; маска для проверки
and ebx, 210h;маска для проверки
. IF (eax == ebx; условие
jmp M3

. ENDIF

M2:
loop M1
jmp M4

M3:
inc sum
mov ax,work1
mov bx,work2
add ax,bx
mov [edx],ax; пересылка сумма в массив С
inc edx
inc edx
jmp M2

M4:
mov ecx,30
mov ebx,sum

invoke wsprintf,\
ADDR st2,\
ADDR ifmd,\
ecx,bx

invoke MessageBox, \
NULL, \
addr st2, \
addr st1 \
MB_OK

invoke ExitProcess, 0
end _start; окончания программы

 

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

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

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




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


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

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

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


 


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

 
 

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