Лабораторна робота №4
Комарьов Р. Ю.
Тема:«Робота з рядками мовою асемблера»
Мета: Придбання і закріплення практичних навичок у складанні і налагодженні програм мовою асемблера, що включають команди обробки рядків мовою "Асемблер".
Індивідуальне завдання: У рядок MYSTR скопіювати 30 байт з області відеопам'яті текстового режиму (адреса B800:0000). Далі в рядку MYSTR знайти максимальний по коду символ.
Вибір перемінних:
mystr |
Рядок |
maxstr |
Рядок макс. Симв. |
max |
Максимальн. Симв. |
N |
кількість елементів у рядку Mystr |
Текст програми ( laba4.asm ):
data segment
mystr db 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',0Ah,0Dh,'$'
maxstr db 'Max Symbol Is: ',0Ah,0Dh,'$'
max db ?
n dw 1Eh
data ends
stak segment stack
dw 30 dup(?)
tos label word
stak ends
code segment
assume cs:code, ds:data, ss:stak
start: mov ax,data
mov ds,ax
mov es,ax
lea di, mystr
cld
mov cx, n
mov bx, 0B800h
push ds
mov ds, bx
xor si, si
m_cpy: mov al, ds:[si]
stosb
add si, 2
loop m_cpy
pop ds
lea si, mystr
mov al, es:[si]
mov max, al
mov cx, n
check: lodsb
cmp max, al
jge next
mov byte ptr max,al
next: loop check
lea si, maxstr
mov al, max
mov es:[si+16], al
mov ah, 9h
lea dx, mystr
int 21h
mov ah, 9h
lea dx, maxstr
int 21h
mov ah,4ch
int 21h
code ends
end start
Результати роботи програми:
Do while me?…
Max Symbol is: W
Висновок: виконавши дану лабораторну роботу я на практиці придбав і закріпив знання в складанні і налагодженні програм асемблера, що включають команди обробки рядків мовою "Асемблер". Також повторив способи застосування безлічі команд мікропроцесора, таких як порівняння, переходи, переміщення даних і т.п.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.