Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Мова Assembler

Реферат Мова Assembler





Міністерство освіти і науки Російської Федерації

Державна освітня установа вищої професійної освіти

«Волгоградський державний технічний університет»








Контрольна робота

з дисципліни: «Машинно-орієнтовані мови»

Варіант № 9




Виконав: студент 2 курсу ФПІК

групи АУЗ - 261с Тюляева І.А.

номер залікової книжки 20161639

Перевірив: ст. пр.Федоров М.А.








Волгоград 2011

Зміст


Завдання №1

Завдання №2

Завдання №3

Завдання №4

Завдання №5

Список літератури



Завдання №1


Арифметичні команди мови Assembler в архітектурі x86:


(A + C) * (B-D)/E.


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

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

; але угоди ОС Windows

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

_a dw 1

_b dw 2

_c dw 3

_e dw 4

_d dw 5 dw 0; резервування пам'яті для збереження змінної

; res

.code; директива початку сегменту команд: edx, 0; очистка регістрів ebx, 0; очистка регістрів ecx, 0; очистка регістрів ах, _a; в регістр ах заносимо число _a ax, _c; складовими з _cedx, 16; зрушення на 16 dx, ax edx; заносимо значення в стек edx, 0 ах, _b ax, _d; віднімаємо від _b значення _d_e; ділимо ах на _eecx; викликаємо з стека значення

mul ecx; умножаемres, eax

ret; повернення управління ОС start; закінчення програми з ім'ям _start


Завдання №2


Організація розгалужень і циклів в програмах на мові Assembler. Вводити з клавіатури елементи масиву не потрібна, на екран виводити необхідно:

Обнулити всі елементи масиву, які по модулю менше 10.


.model tiny

.code100h: mov ax, 3

int 10h; очищення екранаcx, - 50: xor ax, axax, [massiv + cx + 50]; заносимо черговий символ

cmp ax, 10b1ax, ax

mov [massiv + cx + 50], ax; обнуляем елемент менше 10: bl, 10; переводимо число в рядок для виведення на

; екранbl [x + 2], ahblword ptr [x], axah, 9dx, offset string1

int 21h; виводимо на екранcx, 2; на наступний елемент масиву

jne a1ah, 016h; затримка екрану

retn; вихід з программиdw 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50

string1 db result= db 000 $

END start


Завдання №3


Введення рядків з клавіатури і команди пакетної обробки (рядкові команди) в мові Assebmler. З клавіатури вводяться тільки символи латинського алфавіту. При виконанні кожного завдання необхідно використовувати команди пакетної обробки:

Ввести з клавіатури рядок і символ. Вивести номер позиції останнього входження введеного символу в рядок.


.model small

.stack 100h

.datadb 80 dup (?), $

symb db?, , $ ; можна і не виділяти пам'ять для символу

msg_inp db 0ah, 0dh, Vvedite stroku: , 0ah, 0dh, $ _in db 0ah, 0dh, Vvedite simvol: , 0ah, 0dh, $ db 0ah, 0dh, Simvol , $ db nayden! Ego index - , $ _err db ne nayden. Raquo;, $ dw 10dw?

.code: ax, @ datads, axdx, msg_inp; висновок msg_inpah, 09h21hbx, bx; в bx - індекс символу, що вводиться

input_loop: ah, 01h; зчитуємо символ

int 21hal, 13; якщо це enter

je for_find; то кінець вводаstroka [bx], al; інакше записуємо символ в строкуbx, 80; якщо ввели 80 сімволовfor_find; то кінець вводаbx; збільшуємо bxinput_loop

for_find: dx, msg_in; висновок msg_inah, 09h21hah, 01h; ввід потрібного сімвола21hbyte ptr symb, al; зберігаємо його в symb

mov cx, bx; в cx - довжина строкіcurlen, bxbx, bx; bx - індекс елементаah, byte ptr symb; в ah - потрібний символ: cmp ah, stroka [bx]; порівнюємо поточний елемент з потрібним

; сімволомfind; якщо збігаються, то jmp на finditer: ah, stroka [bx]; порівнюємо поточний елемент з потрібним

; сімволомvuvod; якщо збігаються, то jmp на vuvodnext ::; якщо знайдений символ

lea dx, msg; висновок msgah, 09h

int 21hdx, symb; висновок самого символу

int 21hdx, msg1; висновок msg1

int 21hax, bx; зберігаємо індекс в axcx, cx; cx - лічильник ціфр_to_string: dx, dx; підготовка до деленіюc10; деленіеdx, 30h; в dx - ASCII-код залишку від деленіяdx; зберігаємо його в стекеcx; інкремент лічильника...


сторінка 1 з 2 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Завдання та значення Конституції України
  • Реферат на тему: Сучасні принципи побудова та Завдання системи вищої освіти в Німеччині
  • Реферат на тему: Визначення психологічної служби в системі освіти, її цілі і завдання, а так ...
  • Реферат на тему: Клінічна фармакологія в медицині. Мета, завдання, значення для практики
  • Реферат на тему: Предмет і Завдання сучасної психологии, ее значення в жіттєдіяльності людин ...