Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет "Львівська політехніка"
Кафедра "Інформаційні системи та мережі"
Звіт до лабораторної роботи № 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 ; кінець програми
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!