Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Лабораторна робота №7

Читайте также:
  1. IV. Лабораторная диагностика ВИЧ-инфекции
  2. X. Робота самодіяльних організацій засуджених.
  3. XV. Аналітична робота.
  4. Ассемблер. Лабораторная работа № 5
  5. Бычий цепень. Систематическое положение, морфология, цикл развития, лабораторная диагностика. Тениаринхоза.
  6. Вирус папилломы человека. Характеристика. Онкогенность. Лабораторная диагностика
  7. Виховна та позакласна робота.
  8. Данная лабораторная работа предполагает освоение базовых принципов работы с консолью в Linux.
  9. Дипломна робота
  10. Емісійно-касова робота установ Національного банку України

1. Постановка задачі для конкретного варіанта.

2. Блок-схема алгоритму виконання прикладу з детальним коментарем та описом роботи.

3. Лістинг програми з виведенням даних на екран монітора з використанням API-функцій та з детальним коментарем і описом роботи.

4. Рrint screen екрана 32-розрядного налагоджувача з виконаною програмою.

5. Короткий опис виконання програми.

6. Висновки за результатами роботи.

Приклад 11.13. Задані рядки А та В. Знайти перші неспівпадаючі числа та переписати наступні числа рядка А в рядок С.

 

Лістинг 11.14:

title Рысованый А.Н. rysov@rambler.ru

.386; директива визначення команд мікропроцесора

.model flat,stdcall; завдання лінійної моделі пам’яті

option casemap:none; відмінність рядкових та прописних літер

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc

include \masm32\include\user32.inc

includelib \masm32\lib\user32.lib

includelib \masm32\lib\kernel32.lib

.data; директива визначення даних

mas1 dd 0Ah,0Bh,1,2,3,4; визначення масиву з ім’ям mas1

mas2 dd 0Ah,0Ch,5,6,7,8; визначення масиву з ім’ям mas2

len equ ($-mas2)/4; обчислення кількості подвійних слів в mas2

mas3 dd len DUP(?),0; резервування 32-розрядних комірок для mas3

_title db "Результаты решения программы",0

info db "Заданы строки А и В. Найти первые несовпадающие числа", 0Ah, 0Dh,

"и переписать последующие числа строки А в строку С",0Ah, 0Dh,0Dh

buf dd?,0; буфер виведення повідомлення

ifmt db "Ответ: mas3 = %d %d %d %d %d %d",0

.code; початок сегмента-даних

_st:; мітка початку програми

mov ecx,len; кількість слів у масиві

lea esi, mas1; завантаження адреси масиву mas2

lea edi, mas2; завантаження адреси масиву mas2

cld; напрям – вгору

repne cmpsd; [esi] - [edi] поки не дорівнює

jz ravno; перехід, якщо source = destination

jmp exit

ravno:

lea edi,mas3; завантаження адреси масиву mas3

dec ecx;

add esi,4; підготовка вибірки наступного числа

rep movsd; edi<- esi

invoke wsprintf, \; АРІ-функція перетворення чисел

ADDR buf, \; адреса буф., куди буде записана послідовність символів

ADDR ifmt, \; адреса рядка перетворення формату

mas3,mas3[4],mas3[8],mas3[12],mas3[16],mas3[20];

invoke MessageBox, NULL, addr info, addr _title, MB_ICONINFORMATION

exit:

invoke ExitProcess,0

end _st; директива закінчення програми з ім’ям _st

 

В програмі порівнюються два масиви: А та В. При порівнянні чисел mas1: 0Bh та mas2: 0Ch виявляється, що числа не дорівнюють один одному. Тому, слід наступні числа рядка А (1, 2, 3, 4) переписати в рядок С (mas3). Для цього використовується команда add esi,4 збільшення адреси числа mas1.

Для того, щоб числа при виведенні функцією MessageBox не розташовувались один біля одного, в рядку форматування даних

ifmt db "Ответ: mas3 = %d %d %d %d %d %d",0

сроблено по два пропуску (рис. 11.18).

 

 
 

 

 


Література: Рисований О.М. Системне програмування [Текст]: підручник для студентів напрямку “Компютерна інженерія” вищих навчальних закладів. Видання друге: виправлено та доповнено – Х.: “Слово”, 2011. – 944 с.

 

Лабораторна робота №7

Дослідження програм з використанням логічних конструкцій високого рівня”

Мета заняття:

– поглибити і закріпити знання з архітектури МП платформи х86 і навички його програмування;

– придбати практичні навички складання, налагодження і виконання програм з використанням директив умовного асемблювання, написаних мовою асемблеру для МП платформи х86.

 




Дата добавления: 2014-12-18; просмотров: 23 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав