Push ax

mov ax,data;инициализация сегментного

mov ds,ax;регистра

lea bx,aa;занесение в BX адреса формируемого массива

mov cx,10;инициализация счётчика числа вводимых символов

l1: mov ah,0;номер функции прерывания

int 16h;ввод символа

mov dl,al;сохранение введённого символа в DL

not al;инвертирование введённого символа

mov [bx],al;запись в память первого сформированного байта из четвёрки

mov al,dl;восстановление введённого символа из DL

and al,0ach;формирование второго байта из четвёрки путём конъюнкции

mov 1[bx],al;запись в память второго сформированного байта из четвёрки

mov al,dl;восстановление введённого символа из DL

xor a,10100B;формирование третьего байта из четвёрки путём;инвертирования отдельных бит

mov 2 [bx],al;запись в память третьего сформированного байта из четвёрки

mov al,dl;восстановление введённого символа из DL

cmp cx,10;проверка: является ли введённый символ первым, если да -

je l2;переход, иначе

or al,dh;дизъюнкция с ранее введённым символом и формирование;последнего байта из текущей четвёрки

l2: mov 3[bx],al;запись в память 4 – го сформированного байта из четвёрки

mov dh,dl;сохранение в DH введённого символа

add bx,4;смещение указателя на следующую четвёрку байт формируемого;массива

loop l1;

Ввод символа с экрана можно осуществить с помощью прерывания INT16H, как это сделано в выше приведённом примере. При этом в регистр AH заносится номер функции прерывания 0,таким образом, реализуется ввод символа с клавиатуры без эхоповтора. После выполнения команды прерывания в регистре AL находится код введённого символа. Пример:

MOV AH,0

INT 16H.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: