3552

Интерпретатор введенного кадра или УП

Лабораторная работа

Информатика, кибернетика и программирование

Программа интерпретатор Блок – схема алгоритма Kadr: ClearScreen белый фон PrintXY 0,0,WW Locate 0,2 CursorOn ввод кадра mov di, OFFSET BuferData mov...

Русский

2012-11-03

67 KB

2 чел.

12.5 Программа интерпретатор

Блок – схема алгоритма

Kadr:    ClearScreen  ;белый фон

 PrintXY 0,0,WW  

 Locate 0,2

 CursorOn   ;ввод кадра

 mov di,OFFSET BuferData 

 mov cx,0   ;cчетчик удалений символов

ww: mov ah,01   ;ввод символа с эхом

 int 21h   ;по INT 21h

 cmp al,0  

 jz ww   ;не принимать функц клавиши

 zzz: cmp al,08h  ;это  Backspace?

 jnz @@2  

 cmp cx,0   ;да,обрабатывем удаление, все удалено?

 jz ww   ;да, за новым символом

 Tout 20h  ;нет, надо удалить, пробел на зкран

 Tout 8   ;и шаг назад

 dec cx  ;уменьшить число введенных символов из

    ;за удаления

 dec di  ;и счетчик текущего адреса в буфере УП

 mov [byte ptr di],20h ;код пробела в буфер(косвенно)

 jmp ww   ;за новым символом

@@2: cmp al,13  ;это enter ?

 jnz @@4   

 mov [di],al   ;да, символ в буфер

 inc cx    ;позиция на экране

 jmp short prover  ;да,на завершение  

@@4: mov [di],al   ;нет, символ в буфер

 inc cx    ;позиция на экране

 inc di    ;позиция в буфере

 jmp ww    ;за символом

 prover: mov [Leng],cx

 PrintXY 0,4, Proverka

 Locate 0,5

 mov ah,40h ;вывести на зкран из буфера символов

 mov bx,01   ;в количестве, заданного в сх

 mov dx,OFFSET BuferData  ;из буфера

 int 21h   ;с помощью INT 21H(40)

 KeyWait

; ПРОГРАММА ИНТЕРПРЕТАТОР 

 Locate 10,6

 CursorOn

 mov di,OFFSET BuferData

 dec di

 mov dx,0

intern:

 mov [znak],0  ;проверка по знаку

 inc di 

 inc dx

 mov bl,[byte ptr di]  ;содержимое буфера в bl

 cmp bl,'A'    ;если в буфере А,

 jz AL1   ;то вводим следующий символ

 jmp DD1  ;вводим следующую команду через пробел

 AL1: inc di     ;сдвиг в буфере

 inc dx  ;на одну позицию для следующего символа

 mov bl,[byte ptr di]  ;содержимое буфера в bl

 cmp bl,'L'    ;если в буфере L

 jz zna     ;то на метку zna

 jmp AH1   ;в противном случае на метку AH1

 zna: CharToDec

 Tout 'A'     ;вывод на экран символа А

 BinToDec ax    ;в регистр ах записываем

 AP ax     ;количество дискрет

 jmp probel    ;переход на метку probel

 AH1: cmp bl,'H'    ;если в буфере Н

 jz znah     ;то на метку znah

 jmp A01    ;в противном случае на А01

 znah: CharToDec

 Tout 'A'     ;вывод на экран символа А

 BinToDec ax    ;в регистр ах записываем

 APB ax     ;количество дискрет

 jmp probel    ;переход на метку probel

 A01: cmp bl,'0'    ;если в буфере 0

 jz A011     ;то на метку А011

 jmp exiter   ;в противном случае ошибка

 A011: Tout 'A'   ;вывод на экран А0  

           Tout '0'   ;после отработки перемещения

 Tout ' '   ;через пробел с другими командами

 A0     ;выполнение команды

 jmp probel   ;переход на метку probel

 DD1: cmp bl,'D'               

 jz DL1

 jmp CC1

 DL1: inc di

 inc dx

 mov bl,[byte ptr di]

 cmp bl,'L'

 jz znd

 jmp DH1

znd: CharToDec

 Tout 'D'

 BinToDec ax

 DP ax

 jmp probel

DH1: cmp bl,'H'

 jz zndh

 jmp D01

zndh: CharToDec

 Tout 'D'

 BinToDec ax

 DPB ax

 jmp probel

D01: cmp bl,'0'

 jz D011

 jmp exiter

D011: Tout 'D'

 Tout '0'

 Tout ' '

 D0

 jmp probel

CC1: cmp bl,'C'

 jz CL1

 jmp WRZV

CL1: inc di

 inc dx

 mov bl,[byte ptr di]

 cmp bl,'L'

 jz znc

 jmp CH1

znc: CharToDec

 Tout 'C'

 BinToDec ax

 CP ax

 jmp probel

CH1: cmp bl,'H'

 jz znch

 jmp C01

znch: CharToDec

 Tout 'C'

 BinToDec ax

 CPB ax

 jmp probel

C01: cmp bl,'0'

 jz C011

 jmp exiter

C011: Tout 'C'

 Tout '0'

 Tout ' '

 C0

 jmp probel

WRZV: cmp bl,'W'

 jz WR1

 jmp BRZV

WR1: inc di

 inc dx

 mov bl,[byte ptr di]

 cmp bl,'R'

 jz WR2

 jmp WZ1

WR2: Tout 'W'

 Tout 'R'

 Tout ' '

 Delay 30000

 RedWer

 Delay 30000

 jmp probel

WZ1: cmp bl,'Z'

 jz WZ2

 jmp WV1

WZ2: Tout 'W'

 Tout 'Z'

 Tout ' '

 Delay 20000

 RedZ

 Delay 30000

 jmp probel

WV1: cmp bl,'V'

 jz WV2

 jmp exiter

WV2: Tout 'W'

 Tout 'V'

 Tout ' '

 Delay 30000

 RedR

 Delay 30000

 jmp probel

BRZV: cmp bl,'B'

 jz BR1

 jmp BZ1

BR1: inc di

 inc dx

 mov bl,[byte ptr di]

 cmp bl,'R'

 jz BR2

 jmp BZ1

BR2: Tout 'B'

 Tout 'R'

 Tout ' '

 Delay 30000

 BlackWer

 Delay 30000

 jmp probel

BZ1: cmp bl,'Z'

 jz BZ2

 jmp BV1

BZ2: Tout 'B'

 Tout 'Z'

 Tout ' '

 Delay 30000

 BlackZ

 Delay 30000

 jmp probel

BV1: cmp bl,'V'

 jz BV2

 jmp exiter

BV2: Tout 'B'

 Tout 'R'

 Tout ' '

 Delay 30000

 BlackR

 Delay 30000

 jmp probel

probel:

 inc di    ;считываем количество символов

 inc dx    ;введенных нами

 cmp dx,[Leng]   ;если все отработано

 jz exitn    ;то на метку exitn

 mov bl,[byte ptr di] ;содержимое буфера в bl

 cmp bl,' '   ;если не пробел

 jnz exiter  ;то вывод сообщения об ошибке  

 jmp intern   ;если да то на ввод символов

 exiter: PrintXY 10,10,F_error   ;сообщение об ошибке

 KeyWait     ;ожидание нажатия клавиши

 exitn:PrintXY 20,20,Kon1   ;вывод сообщения Кon1

 PrintXY 20,21,Kon2   ;вывод сообщения Kon2

 keyn: KeyRead    ;если клавиша нажата

 jz provd     ;то на метку provd

 jmp keyn                     

 provd:KeyWait     ;ожидание нажатия клавиши

 cmp ah,1     ;если клавиша Esc

 jz exitn1    ;выход из покадрового режима
 
jmp Kadr    ;если нет то метку Kadr

 exitn1: jmp menu_reserv  ;выход из покадрового режима

DATASEG     ;сегмент данных

;Включим файл с содержимым меню.

 INCLUDE "rob_menu.dat"

 Proverka db 'vash $'

 F_error db 'Ошибка $'

Kon1  DB 'Введите следующий кадр $'

Kon2  DB 'Нажмите любую клавишу  Esc - выход $'

 WW  db 'Vvedite kadr $'

Znak  DB '+'    ;знак числа.

 znak  DW 0

ENDS

STACK 200h  ;начало или продолжение сегмента стека размером 200h

END Start   ;конец программы


 

А также другие работы, которые могут Вас заинтересовать

24938. Право собственности публично-правовых образований 49 KB
  Право собственности публичноправовых образований. Право собственности предоставляет одинаковые возможности всем своим субъектам. Известные ограничения влекущие особенности правового режима отдельных объектов этого права также по общему правилу являются одинаковыми для всех собственников например строго целевой характер использования находящихся в их собственности земли или других природных ресурсов либо жилых помещений; отчуждение и использование вещей ограниченных в обороте и т. В связи с этим отпадают основания для различия форм...
24939. Вещные права на земельные участки 41.5 KB
  Собственник земельного участка вправе использовать по своему усмотрению все что находится над и под поверхностью этого участка если иное не предусмотрено законами о недрах об использовании воздушного пространства иными законами и не нарушает прав других лиц. Гражданин обладающий правом пожизненного наследуемого владения владелец земельного участка имеет права владения и пользования земельным участком передаваемые по наследству. Если из условий пользования земельным участком установленных законом не вытекает иное владелец земельного...
24940. Понятие и виды ограниченных вещных прав 36.5 KB
  Вещное право включает право собственности и ограниченные вещные права. Право собственности является наиболее широким ограниченным правом но не единственным вещным правом. Отличие от права собственности право на чужую вещь. Право на чужую вещь является не вполне точным выражением.
24941. Ограниченные вещные права на хозяйствование с имуществом собственника 26 KB
  Ограниченные вещные права на хозяйствование с имуществом собственника Вещными правами на хозяйствование с имуществом собственника относятся право хозяйственного ведения и право оперативного управления. Данные права используются для характеристики имущественной обособленности унитарных предприятий и учреждений. Субъекты права только юридические лица в форме унитарных предприятий и финансируемых собственником учреждений которые не становятся собственниками имущества т. Собственники как правило публичноправовые образования лишаются права...
24942. Субъекты наследственного правопреемства 37 KB
  Юридические лица могут выступать в качестве наследников только в том случае если в их пользу составлено завещание. Не наследуют ни по закону ни по завещанию граждане которые своими умышленными противоправными действиями направленными против наследодателя коголибо из его наследников или против осуществления последней воли наследодателя выраженной в завещании способствовали либо пытались способствовать призванию их самих или других лиц к наследованию либо способствовали или пытались способствовать увеличению причитающейся им или другим...
24943. Наследование по завещанию 59.5 KB
  Запрет на распоряжение имуществом на случай смерти какимлибо образом кроме совершения завещания предотвращает также заключение притворных сделок или обход строгих правил о форме завещания и т. Составление завещания через представителей поверенных опекунов попечителей не допускается. Не допускаются и совместные завещания известные за рубежом. Взаимные завещания также исключаются.
24944. Наследование по закону 50.5 KB
  Рождение самого наследодателя в это число не входит. Наследниками первой очереди по закону являются дети супруг и родители наследодателя. Внуки наследодателя и их потомки наследуют по праву представления. Наследниками второй очереди являются полнородные и неполнородные братья и сестры наследодателя его дедушка и бабушка как со стороны отца так и со стороны матери.
24945. Принятие наследства и отказ от наследства 67 KB
  Принятие наследства и отказ от наследства Принятие наследства Принятие наследства как и отказ от наследства односторонние сделки совершаемые наследником. И принятие и отказ от наследства действуют с обратной силой во времени. Это означает что наследник принявший наследство приобретает право не только на то имущество которое оказалось в наличии в момент принятия наследства но и на все то имущество которое было в наличии в момент открытия наследства. Принятие наследства под условием и с оговорками не допускается ст.
24946. Ипотека. Отдельные объекты ипотеки 39 KB
  Ипотека Законодательное регулирование: ГК глава 23 3 Залог ФЗ Об ипотеке залоге недвижимости от 16 июля 1998 г. Общие правила о залоге содержащиеся в ГК применяются к отношениям по договору об ипотеке в случаях когда ГК или ФЗ об ипотеке не установлены иные правила. Определение: по договору о залоге недвижимого имущества договору об ипотеке одна сторона залогодержатель являющийся кредитором по обязательству обеспеченному ипотекой имеет право получить удовлетворение своих денежных требований к должнику по этому обязательству...