;prg14_13.asm
;Процедура на ассемблере, которую вызывает
;программа на Pascal.
;Для вывода на экран используются службы BIOS:
;02h - позиционирование курсора.
;09h - вывод символа заданное количество раз.
MASM
MODEL	small
STACK	256
.code
asmproc	proc	near
PUBLIC	asmproc	;объявлена как внешняя
	push	bp	;пролог
	mov	bp,sp
	mov	dh,[bp+6]	;номер строки для вывода
			;символа y - в dh
	mov	dl,[bp+8]	;номер столбца для вывода
			;символа x - в dl
	mov	ah,02h	;номер службы BIOS
	int	10h	;вызов прерывания BIOS
;вызов функции 09h прерывания BIOS 10h:
;вывод символа из al на экран
	mov	ah,09h	;номер службы BIOS
	mov	al,[bp+10]	;символ ch в al
	mov	bl,07h	;атрибут символа - в bl
	xor	bh,bh
	mov	cx,[bp+4]	;количество "выводов"
			;символа - в cx
	int	10h	;вызов прерывания BIOS
	pop	bp	;восстановление bp
;очистка стека и возврат из процедуры
	ret	8
asmproc	endp	;конец процедуры
end

