BUFFER_LENGTH EQU 16

.186
.model small, stdcall
.stack 256
INCLUDE util.inc

.code

.data 
Temp WORD ?
.code
;------------------------------------
ax_out 	PROC		USES dx cx
; Выводит в текущую позицию содержимое AX
;------------------------------------


ax_out ENDP
;------------------------------------
printString PROC	USES ,
			ptrstring: WORD,
			slength: WORD
; Выводит на экран строку, начало строки по адресу ptrstring, длина slength
;------------------------------------


printString ENDP
				

;------------------------------------
execString PROC		USES ax dx cx 
; Обрабатывает строчку, сравнивая её с одной
; из предопределённых строк
;------------------------------------

.data 
	welcomeCommand BYTE "Type a command: "
	Unrecognized BYTE "Unrecognized command"

	buff BYTE BUFFER_LENGTH DUP(0h)			;сюда считывается строка
	axstring BYTE "ax="				;первая команда
	quibuff BYTE "quit"				;вторая команда
	
.code

begin:

	call newline
	INVOKE PrintString, OFFSET WelcomeCommand, LENGTHOF WelcomeCommand
	
	cld
	mov di, OFFSET buff
	mov cx, BUFFER_LENGTH

loopget:
	 			; Забираем символ с клавиатуры, ASCII код в AL
	 
	 
					; Символ отправляется в строку buff
				; Печатаем этот же символ в консоль
	
	
				; Если это <ENTER> (или Ctrl+M), то обрабатываем строчку
	

loop loopget

endread:
			;новая строка
	
			; | Сравниваем полученную строку с axstring
			; если равны (не считая следующих в buff символов) то переходим на вывод ax
	
			; | Сравниваем полученную строку с quitstring
			; если равны (не считая следующих в buff символов) то переходим на вывод ax

; печатаем "Unrecognized command" и предлагаем повторить ввод


call_ax:
	; напишем ax=<значение>
	; Запросим следующее значение
quit:

	ret

execString ENDP

;------------------------------------
newline PROC 		USES ax dx
; Перевод на новую строку
;------------------------------------

ret
newline ENDP

;------------------------------------
Terminate PROC 		ExitCode:BYTE
; Корректно завершает программу
;------------------------------------



ret
Terminate ENDP

END