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   ;конец программы


 

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

35103. Политология. Шпаргалки к госекзамену. Государство и личность 710.61 KB
  Законе Российской Федерации О безопасности национальная безопасность трактуется как состояние защищенности жизненно важных интересов личности общества государства от внутренних и внешних угроз. Конституционные основы организации публичной власти в Российской Федерации. Государственную власть в РФ осуществляют Президент РФ Федеральное Собрание парламент состоит из двух палат: Совета Федерации и Государственной Думы Правительство РФ суды РФ существует единая судебная система РФ ее высшими звеньями являются Конституционный Суд РФ...
35104. Заболевания носоглотки 98.5 KB
  Врожденные аномалии наружного носа в виде полного его отсутствия расщепления кончика носа двойного носа и пр. встречаются крайне редко и не имеют такого практического значения как врожденные и приобретенные изменения в полости носа ведущие к нарушению проходимости носовой полости для вдыхаемого и выдыхаемого воздуха. Сужение и зарастание полости носа.
35105. Заболевания голосовых связок и глотки 74.5 KB
  Отмечено что чаще всего узелки голосовых складок появляются у женщин в возрасте 20 – 50 лет. Перегрузка голосовых складок приводит к формированию на них небольших уплотнений. Обычно узелки на голосовых складках расположены симметрично.
35106. Причины и проблемы заболеваний слуха 37.31 KB
  Врождённые аномалии наружного уха. Врожденные пороки развития наружного уха: анотия врождённое отсутствие ушной раковины; микротия – недоразвитие ушной раковины например нет только мочки; деформация ушной раковины например обезьяньи уши – оттопырены; атрезия – заращение наружного слухового прохода. Врожденные пороки развития среднего уха: заполнение барабанной полости косной тканью; отсутствие слуховых косточек; сращение слуховых косточек.
35107. Обзор международного опыта применения сделок РЕПО. Операции РЕПО на российском рынке 1.63 MB
  Операции по кредитованию ценными бумагами и операции РЕПО: понятие и классификация. Обзор международного опыта применения сделок РЕПО. Операции РЕПО на российском рынке Операции РЕПО и операции кредитования ценными бумагами составляющие мощнейший сегмент международного финансового рынка в российской практике появились относительно недавно. Среди основных причин такого роста необходимо выделить следующие: вопервых без рынка РЕПО без финансирования позиций...
35108. Важнейшие пропорции и диспропорции мирового рынка прямых инвестиций. Привлечение прямых инвестиций 1.1 MB
  Мировая практика статистического учёта прямых инвестиций в понятиях 1. Важнейшие пропорции и диспропорции мирового рынка прямых инвестиций 2. Создание универсального индекса для качественной оценки потенциала страны в получении прямых иностранных инвестиций 2. Индекс реальной динамики ввоза прямых иностранных инвестиций 2.
35109. Дифференциальные уравнения 4.15 MB
  Обыкновенные дифференциальные уравнения. Обыкновенными дифференциальными уравнениями о. называются уравнения вида: 1 где известная функция – независимая переменная – неизвестная функция. Порядком дифференциального уравнения д.
35110. ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА 3.33 MB
  В традиционных областях математическими моделями служат функции производные интегралы дифференциальные уравнения. Значения этой функции при каждом фиксированном x можно получить измерениями или вычислениями. Для запоминания этой функции в памяти компьютера необходимо приближенно описать ее таблицей значений на некотором конечном множестве отдельных точек . Это – простейший пример дискретизации задачи: от задачи запоминания функции на отрезке [0 1] мы перешли к задаче запоминания таблицы значений на дискретном множестве точек из этого...
35111. МЕХАНИКА 1.35 MB
  Кинематика вращательного движения 1 Виды движения твердого тела. Основные понятия по теме При описании вращательного движения в кинематике удобно пользоваться угловыми кинематическими величинами: и Если за время тело совершает поворот на малый угол то углу формально ставиться в соответствие вектор модуль которого равен углу поворота тела за время . Существуют такие системы отсчета в которых материальная точка тело сохраняет состояние покоя или равномерного прямолинейного движения до тех пор пока взаимодействие с другими...