Реферат: Разработка программы на Ассемблере

     push ds;совместить адреса

     pop es;сегментов ds и es

     mov cx,len;длину строки dst переслать в cx

     lea di,dst;загрузить адрес(смещение) строки dst в DI

     lea si,src

repe cmpsb;сравнивать побайтно

     je equal;если все байты совпали, то перейти к метке

     not cx;если нет - вычислить номер несовпадающих байт

     add cx,len;

     jmp notequal;

equal:    ....

          ....

notequal: ....

В конце этого примера номер первого несовпадающего байта (CX) = 5.

 КОМАНДЫ УПРАВЛЕНИЯ МИКРОПРОЦЕССОРОМ

1. CLC; сбросить флаг переноса (CF) = 0.

2. STC; установить флаг переноса (CF) = 1.

3. CMC; инвертировать флаг пнреноса.

4. CLD; очистить флаг направления (DF) = 0, в этом случае операции над строками (цепочками байтов) будут производиться от младшего адреса к старшему.

5. STD; установить флаг направления (DF) = 1,обработка цепочек байтов производится от старшего адреса к младшему.

6. STI; установить флаг прерываний (IF) = 1, разрешить прерывания от внешних устройств.

7.CLI; очистить флаг прерываний.

8. NOP; холостая операция.

КОМАНДЫ ПРЕРЫВАНИЙ

1. INT INUM; эта команда вызывает программное прерывание, то есть переход к ячейке памяти с адресом хранящимся в четырех байтах, начиная с адреса INUM * 4, где INUM = (0...255). Это 4-х байтовое число является указателем подпрограммы обработчика данного прерывания, и иначе называется вектором прерывания.Таким образом первый килобайт памяти 256 * 4 отводится под векторы прерываний.

Операции инициируемые программными прываниями определяются кодом в регистре AH, например:

 

   ....

    mov ah,14d;функция вывода символа на дисплей,с последующимм

    mov al,31h;продвижением курсора на одну позицию вправо.

    int 10h;на  экран будет выведена цифра '1'(ASCII код 31h).

К-во Просмотров: 492
Бесплатно скачать Реферат: Разработка программы на Ассемблере