Робота з рядками мовою асемблера. Складання і налагодження програм мовою асемблера, що включають команди обробки рядків

Страницы работы

Содержание работы

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

Виконав студент гр. АП-31б

Комарьов Р. Ю.

Тема:«Робота з рядками мовою асемблера»

Мета: Придбання і закріплення практичних навичок у складанні і налагодженні програм мовою асемблера, що включають команди обробки рядків мовою "Асемблер".

Індивідуальне завдання: У рядок 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

Висновок: виконавши дану лабораторну роботу я на практиці придбав і закріпив знання в складанні і налагодженні програм асемблера, що включають команди обробки рядків мовою "Асемблер". Також повторив способи застосування безлічі команд мікропроцесора, таких як порівняння, переходи, переміщення даних і т.п.

Похожие материалы

Информация о работе