Створення виконуваного коду асемблерної програми

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Інформаційні системи та мережі

Інформація про роботу

Рік:
2008
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Системне програмування та операційні системи
Група:
КН

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет "Львівська політехніка" Кафедра "Інформаційні системи та мережі"    Звіт до лабораторної роботи № 1 з предмету: Сиcтемне програмування та операційні системи на тему №1: Створення виконуваного коду асемблерної програми          ЛЬВІВ-2008  Текст програми 1: ; HELLO.ASM – Виведення повідомлення "Hello World" .MODEL small .STACK 100h .DATA HelloMessage DB 'Hello, world',13,10,'$' .CODE ENTPY: mov ax,@data mov ds,ax ;занести у DS сегментну частину адреси сегменту даних mov ah,9 ;функція DOS виведення рядка символів mov dx,OFFSET HelloMessage ; вказівник на рядок int 21h ; виведення рядка mov ah,4ch ;DOS terminate program function int 21h ;terminate the program END ENTPY ; кінець програми Текст програми 2: ; REVERSE.ASM – Виведення рядка у зворотньому порядку DOSSEG .MODEL SMALL .STACK 100h .DATA MAX_STR_LEN EQU 1000 String DB MAX_STR_LEN DUP(?) ReverseString DB MAX_STR_LEN DUP(?) .CODE ENTRY: mov ax,@data mov ds,ax ;set DS to point to the data segment mov ah,3fh ; номер функції DOS введення даних mov bx,0 ; дескриптор клавіатури mov cx,MAX_STR_LEN ; максимальна кількість символів mov dx,OFFSET String ; адреса рядка для введення int 21h ; ввести рядок and ax,ax ; чи введено будь-які символи? jz Done ; ні, перехід на кінець програми mov cx,ax ; записати кількість введених символів в регістр CX push cx ; запам’ятати регістр CX у стеку mov bx,OFFSET String ; занести у BX адресу введеного рядка mov si,OFFSET ReverseString ; занести у SI адресу рядка результату add si,cx dec si ; адреса кінця рядка результату m1: mov al,[bx] ; отримати наступний символ введеного рядка mov [si],al ; записати цей символ у рядок результату inc bx ; вказівник на наступний символ введеного рядка dec si ; вказівник на наступний символ рядка результату loop m1 ; виконати цикл pop cx ; отримати зі стеку довжину рядка mov ah,40h ; номер функції DOS для виведення даних mov bx,1 ; дескриптор дисплея mov dx,OFFSET ReverseString ; адреса рядка для виведення int 21h ; надрукувати рядок Done: mov ah,4ch ; номер функції DOS для завершення програми int 21h ; завершити програму та вийти у DOS END ENTRY ; кінець програми 
Антиботан аватар за замовчуванням

30.11.2012 00:11-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!