русс | укр

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

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

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

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


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

Ассемблер работа с файлами. Запись в файл

Написать программу с записью данных в файл. Проанализировать 2 массива, которые состоят из 15  элементов каждый. Подсчитать количество элементов первого массива, которые имеют равные значения во втором массиве. Вывести соответствующие сообщения.

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

.386                   ; директива определения типа микропроцессора
.model  flat, stdcall                    ; задание линейной модели памяти
; но соглашения ОС Windows
option casemap:none          ; отличие малых и больших букв
include    \masm32\include\windows.inc
include    \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
BSIZE  equ 42          ; количество байтов, которые записываются в файл
.data               ; директива определения данные
fName   BYTE "лабораторная по файлам",0   
fHandle DWORD ? ; резервирование у памяти 32-разрядной
cWritten  DWORD  ? ; резервирование 32-разрядного амбарчика памяти
; с именем cWritten для адреса символов выведения
st1 db 'Количество одинаковых чисел в массиве = ',0
st1_kol = $ - st1
st2 db 50 dup(0)
stemp2 db 2 dup(0),0
ifmt db "%d ",0
masivA db 1,6,4,6,9,15,21,2,51,8,12,3,13
masivB db 1,5,4,43,13,4,65,9,7,21,32,23,15,51,66
temp db 15
prom db 0

.code                                ; директива начала сегмента-данных
start:                ; метка начала программы с именем start

mov eax,0
mov ebx,0

lea esi, masivA

M1:
mov eax,0
mov al, byte ptr[esi]
lea edi, masivB
dec temp
jz _end
inc esi
mov ecx,15
Temp1:
mov bl, byte ptr[edi]
inc edi
cmp eax,ebx
jz M3

M2:       
loop Temp1
jmp M1

M3:
inc prom
jmp M1

_end:
lea edi, st2
lea esi, st1
mov ecx,st1_kol

_m1:
mov al[esi]
mov [edi],al
inc esi
inc edi
loop _m1
mov eax,0
mov al,prom

         invoke  wsprintf \         ; АПИ-ФУНКЦИЯ преобразования числа
ADDR stemp2 \  ; адрес буфф., куда будет записан помет. символов
ADDR ifmt \                     ; адрес строки преобразования формата
eax                    ; регистр, содержание которого преобразовывается
lea esi, stemp2
mov ecx,2
dec edi
z1:
mov al[esi]
mov [edi],al
inc edi
inc esi
loop z1

invoke CreateFile, ADDR fName ; адрес имени файла с символами
GENERIC_WRITE,\                ; запись в файл
0, NULL  ; параметры многозадачности
CREATE_ALWAYS                  ; уничтожить и создать новый файл
FILE_ATTRIBUTE_ARCHIVE, 0
mov   fHandle, eax        ; запоминание дескриптора устройства
invoke  WriteFile, fHandle    ; дескриптор устройства
ADDR st2        ; адрес области памяти, которая хранит символы
BSIZE      ; количество символов
ADDR cWritten         ; адрес памяти, где сохраняется число
NULL      ; записанных в файл символ_в
invoke  CloseHandle, fHandle           ; дескриптор файла
invoke  ExitProcess, 0              ; возвращение управления ОС Windows
end start                       ; директива окончания программы с именем start

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

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

Вы можете --> Заказать программу или Задать вопрос на форуме

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


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


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

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

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


 


Полезен материал? Поделись:

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

 
 

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