Page 1 of 3

KMLIB (Kolibri Macro Library) v0.08 (22 ДЕКАБРЯ 2012)

Posted: Wed Oct 13, 2010 3:34 am
by Rock_maniak_forever
Доброй всем ночи! Ну вот я и вернулся, давно меня тут небыло... Решил выложить свою библиотеку макро функций. В эту библиотеку, входят только причёсанные макро функции, поэтому она ещё очень маленькая и неэффективная. Непричёсанные, а также новые макро функции, буду постепенно причёсывать и выкладывать здесь. Либа будет обнавляться регулярно. Если не трудно, прошу потестить.

Если кто ни-будь желает помочь (поделиться) одним или двумя макросами, которых нет в либе, обращайтесь - не стесняйтесь.

Внимание! Библиотека не оптимизирована и программист я плохой, поэтому прошу не судить меня слишком строго. Конструктивные советы, предложения и замечания, касающиеся библиотеки, приветствуются.

Убедительная просьба, своевременно сообщать обо всех замечанных багах в либе!

Кому надо, качайте. Image

В папке KMLIB:
Папка %DOC% - содержит краткое описание использования макросов.
Папка %EXAMPLES% - содержит примеры.
Папка %TEMPLATES% - содержит шаблоны.
Остальные папки содержат макросы.

БИБЛИОТЕКА ОБНОВЛЕНА (22 ДЕКАБРЯ 2012)

Хеш суммы:
CRC32 - 10CEA58E
MD5 - B8A92E2C30991C1CA1AD720E458963C2
SHA1 - 18E49C33867B9045FDE671A78CAF8099305B4A82

Библиотека выпускаться больше не будет. В связи с тем, что я покидаю проект.
Rock_maniak_forever wrote:В связи с тем, что у меня нет прав обычного пользователя, и я не могу высказать своё мнение по сабжу одного пользователя-провокатора, и мне затыкают рот, хотя я никого не оскарблял в своём сообщении, я ухожу из проекта навсегда. А затыкают рот, всего лишь потому, что мои политические убеждения, не совпадают с убеждениями пользователя-провокатора данного форума, а модератор защищает этого пользователя-провокатора, и его убеждения. Мне приператься с модератором, надоело. Прошу администратора, удалить все мои аккауты. Раз уж я полностью безправен, я не жилаю участвовать в проекте, дальше.

Re: KMLIB (Kolibri Macro Library)

Posted: Wed Oct 13, 2010 8:55 am
by Mario
Пара мыслей:
1) Это все-же не библиотека, а сборник макросов.
2) Неплохо бы написать как это используется, хотя бы вкратце - не у всех есть прямое подключение к твоему мозгу. :wink:

В целом хорошо, что не забрасываешь работу.

Re: KMLIB (Kolibri Macro Library)

Posted: Wed Oct 13, 2010 6:06 pm
by Rock_maniak_forever
Mario wrote: 1) Это все-же не библиотека, а сборник макросов.
Называй как хочешь, тебе никто не заприщает, а у меня это библиотека. И спорить на эту тему, я не собираюсь!
Mario wrote: 2) Неплохо бы написать как это используется, хотя бы вкратце - не у всех есть прямое подключение к твоему мозгу. :wink:
Для самых недоходчевых! Дока внутри либы, в папке "!DOC". Надо найти и открыть в IE файл, с названием INDEX.Там есть раздел "Введение", в нём вкратце описано как пользоваться либой. Описания макро функций в доке, пока ещё нет, но есть внутри каждого файла с макро функцией.

Товарищи, если ещё что-то непонятно, обращайтесь!

Re: KMLIB (Kolibri Macro Library)

Posted: Wed Oct 13, 2010 7:30 pm
by Mario
Rock_maniak_forever wrote: Называй как хочешь, тебе никто не заприщает, а у меня это библиотека. И спорить на эту тему, я не собираюсь!
Впрочем твоя правда:
http://ru.wikipedia.org/wiki/Статическая_библиотека
Статические библиотеки
Могут быть в виде исходного текста, подключаемого программистом к своей программе на этапе написания (например, для языка Fortran существует огромное количество библиотек для решения разных задач именно в исходных текстах), либо в виде объектных файлов, присоединяемых (линкуемых) к исполняемой программе на этапе компиляции
Признаю - я ошибался.

Re: KMLIB (Kolibri Macro Library)

Posted: Wed Oct 20, 2010 7:15 pm
by Rock_maniak_forever
Добрый всем вечер! Либа немного обнавилась. Находится там же, вначале страницы. Забирайте.

Пожалуйста, сообщайте обо всех замечаных багах в либе.

Re: KMLIB (Kolibri Macro Library)

Posted: Sat Oct 30, 2010 2:04 am
by Rock_maniak_forever
Доброй всем ночи! Либа обновилась до версии 0.03. Качайте! :D

Re: KMLIB (Kolibri Macro Library)

Posted: Fri Nov 05, 2010 4:43 am
by Rock_maniak_forever
Доброй всем ночи! Принимайте пополнение, обнавлено до версии 0.04. Image

Re: KMLIB (Kolibri Macro Library)

Posted: Sun Nov 14, 2010 4:22 am
by Rock_maniak_forever
Доброй всем ночи! Принимайте пополнение, обнавлено до версии 0.05. Image

Re: KMLIB (Kolibri Macro Library) v0.05

Posted: Sun Nov 14, 2010 2:48 pm
by ChE
Rock_maniak_forever,
я бы хотел иметь под рукой макросы/процедуры такие как перевод числа в строку и перевод строки из различных кодировок в cp866.

p.s. за хотелку сильно не пинайте :)

Re: KMLIB (Kolibri Macro Library) v0.05

Posted: Mon Nov 15, 2010 1:16 am
by Rock_maniak_forever
ChE wrote:Rock_maniak_forever,
я бы хотел иметь под рукой макросы/процедуры такие как перевод числа в строку и перевод строки из различных кодировок в cp866.

p.s. за хотелку сильно не пинайте :)
1) Если чего-то очень хочешь, сделай сам или помоги другим! Только без обид!
2) Признаться я сам недавно думал об этом. Поэтому сделаю обязательно, и возможно к следующей версии, но ничего не обещаю.

Re: KMLIB (Kolibri Macro Library) v0.05

Posted: Mon Nov 15, 2010 1:45 am
by IgorA
Rock_maniak_forever wrote:Признаться я сам недавно думал об этом. Поэтому сделаю обязательно, и возможно к следующей версии, но ничего не обещаю
Данный кусок кода может быть пригодится, он переводит строку с числом в числовой вид. Строка может быть в 10 и 16-ричном виде. Дробные числа не преобразуются.

Code: Select all

;input:
; buf - указатель на строку, число должно быть в 10 или 16 ричном виде
;output:
; eax - число
align 4
proc conv_str_to_int, buf:dword
	xor eax,eax
	push ebx esi
	xor ebx,ebx
	mov esi,[buf]
	cmp word[esi],'0x'
	je .load_digit_16

	.load_digit_10: ;считывание 10-тичных цифр
		mov bl,byte[esi]
		cmp bl,'0'
		jl @f
		cmp bl,'9'
		jg @f
			sub bl,'0'
			imul eax,10
			add eax,ebx
			inc esi
			jmp .load_digit_10
	jmp @f

	.load_digit_16: ;считывание 16-ричных цифр
		add esi,2
	.cycle_16:
		mov bl,byte[esi]
		cmp bl,'0'
		jl @f
		cmp bl,'f'
		jg @f
		cmp bl,'9'
		jle .us1
			cmp bl,'A'
			jl @f ;отсеиваем символы >'9' и <'A'
		.us1: ;составное условие
		cmp bl,'F'
		jle .us2
			cmp bl,'a'
			jl @f ;отсеиваем символы >'F' и <'a'
			sub bl,32 ;переводим символы в верхний регистр, для упрощения их последущей обработки
		.us2: ;составное условие
			sub bl,'0'
			cmp bl,9
			jle .cor1
				sub bl,7 ;convert 'A' to '10'
			.cor1:
			shl eax,4
			add eax,ebx
			inc esi
			jmp .cycle_16
	@@:

	pop esi ebx
	ret
endp

Re: KMLIB (Kolibri Macro Library) v0.05

Posted: Mon Nov 15, 2010 2:54 am
by Rock_maniak_forever
IgorA
Большое спасибо! Обязательно пригодится. Image

Re: KMLIB (Kolibri Macro Library) v0.05

Posted: Mon Nov 15, 2010 11:45 am
by ChE
Вот код для перевода целого числа в строку:

Code: Select all

dword_to_STR:
;на входе: 
;         EAX число 32 бит
;         ESI указатель на строку
;         EBX разрядность результата (от 2 до 16)
;на выходе:
;         [ESI] ASCIIZ строка
	pushad
	cmp	ebx, 16
	ja	.end
	cmp	eax, 7FFFFFFFh
	jna	.sign_plus
	mov	byte [esi], '-'
	inc	esi
	not	eax
	inc	eax
.sign_plus:
	xor	ecx, ecx
	jmp	.repeat
     
.mesto	db 32 dup (0)
     
.repeat:
	xor	edx, edx
	div	ebx
	mov	edi, eax
	mov	al, dl
	cmp	al, 10
	sbb	al, 69h
	das
	mov	byte [.mesto+ecx], al
	mov	eax, edi
     
	inc	ecx
	cmp	eax, 0
	jz	.endrep
	jmp	.repeat
.endrep:
	mov	edi, .mesto
	add	edi, ecx
.copyrep:
	dec	edi
	mov	dl, byte [edi]
	mov	byte [esi], dl
	inc	esi

	loop	.copyrep

	mov	byte [esi], 0
.end:
	popad
	ret

Re: KMLIB (Kolibri Macro Library) v0.05

Posted: Mon Nov 15, 2010 1:25 pm
by ChE
Вот ещё, перевёл часть листинга из книжки Кулакова на FASM.
Есть перевод целых, дробных чисел в строку и обратно (в десятичной системе счисления). Думаю, можно использовать как основу.

p.s. Код сильно не проверял, но вроде работает. 8)

Re: KMLIB (Kolibri Macro Library) v0.05

Posted: Mon Nov 15, 2010 7:40 pm
by Rock_maniak_forever
ChE
Ну вот с этого и надо было начинать! Спасибо. :D

P.S. К следующей версии будет готово.