· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.HELHEIM —› Вопрос к компу!

Посл.отвђт Сообщенiе


Дата: Май 6, 2004 19:44:03

Спросил компа какой сегодня год:
mov ah,2ah
int 21h
А он мне "сегодня 7d4h years" ладно я врублюсь что это в хексе, но ведь юзер увидав 7d4 в ужас придет и надумал я кинуть 32303034, типа аски, но зараза голова отказывается думать как из cx:03d4 сделать cx:2004.

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


Дата: Май 6, 2004 19:46:20

Твою налево, позорище...


Дата: Май 6, 2004 19:50:15

volodya
ну, не будь так суров я целый день в эти мат.формулы врубался а ты ... эх где же старая хакерская доброта?
Перевелись остались злыдни! Пардон ежели обидел!


Дата: Май 6, 2004 19:52:08 · Поправил: Безпощадный даос

Да какие здесь мат-формулы, гра. Это ж перевод из одной системы счисления в другую. Ты по форуму вообще искал хоть что-то? Я ж тебе говорю - пойди проспись, а потом, как протрезвеешь, приходи и вопросы задавай.


Дата: Май 6, 2004 19:53:31

volodya
Учту, видно пиво вредно, но ежели обидел пардон, кстати чо за хрень такая семафор?


Дата: Май 6, 2004 19:57:14 · Поправил: Безпощадный даос

Так гра. Хватит. Тема улетает в хельхейм, где ей самое место. По поводу семафора сначала гугли, а только потом задавай вопросы. По делу. А не ля-ля.


Дата: Май 13, 2004 03:24:13

Вот тебе кусок моей либы
коментарии в ОЕМ\DOS


;‚бпЄ п дЁЈ­п ¤«п stdio (console)
;Ј®в®ў® ¤«п бв вЁзҐбЄ®© (lib) Ё«Ё ¤Ё­ ¬ЁзЁбЄ®© (dll) ЎЁЎ«Ё®вҐЄЁ

.486
.model flat
include kernel32.inc
.code

;вгЇ® аЁбгҐв ЎҐ«го Ї®«®бЄг
;edi: ЎгдҐа
PLine proc near public
push eax
push ecx
sub eax,eax
mov al,0c4h
mov ecx,77
rep stosb
mov dword ptr [edi],0a0dh
add edi,2
pop ecx
pop eax
ret
PLine endp
;Ї®¤Ј®в®ўЄ  жЁда ¤«п ўлў®¤  stdout
;edx:
;edi: ЎгдҐа Єг¤  бЄЁ¤лў Ґвбп Ј®в®ўлҐ жЁдал
;eax: д« Ј - ;Є®«ЁзҐбвў® Ў ©в®ў 1,2,4
;10h ЇҐаҐЄ®¤Ёа® вм hex->dec
;100h ®вЄЁ­гвм ЇҐаҐ¤­ЁҐ ­г«Ё
;- ЏаЁ¬Ґа: 2+10h+100h -> ¤ў  Ў ©в  DEC ЎҐ§ ­г«Ґ©
num4out proc near public
locbuffer = 10 ;«®Є «м­л© ЎгдҐа
push ebx
mov ebx,esp
sub esp,locbuffer
push ecx
push esi
push eax
push edi
mov edi,edx
mov esi,eax
and eax,0fh
add edx,eax
push edx
mov ecx,eax
xor edx,edx
dec edi
beru_byte:
rol edx,8
mov dl,byte ptr [edi+eax]
dec eax
jnz beru_byte
lea edi,[ebx-locbuffer]
test esi,10h ;perkodirovat hex->dec ?
jnz transcode
add ecx,ecx
push ecx
rozpodil:
mov al,dl
and al,0fh
cmp al,0ah
jb nex
add al,7
nex:
stosb
ror edx,4
loop rozpodil
pop ecx
jmp final
transcode:
xor ecx,ecx
mov esi,10
mov eax,edx
ce_she_ne_vse:
xor edx,edx
div esi
xchg eax,edx
stosb
mov eax,edx
inc ecx
test eax,eax
jnz ce_she_ne_vse
final:
pop edx
pop edi
mov eax,[esp] ;sdes sidit flag
xor eax,100h ;otseit perednie nuli?
skiday:
mov al,byte ptr [ebx-locbuffer+ecx-1]
test eax,eax
jz otsey_nol
add al,30h
or ah,1
stosb
otsey_nol:
loop skiday
pop eax
pop esi
pop ecx
add esp,locbuffer
pop ebx
ret
num4out endp
;⮦Ґ Ї®¤Ј®в®ўЄ  жЁда ¤«п stdout
;бв ўЁв ­®«м ᯥ।Ё Ё ЎгЄўг h ў Є®­жҐ
;ўе®¤­лҐ ¤ ­­лҐ ў бвнЄҐ
;edi: ЎгдҐа Єг¤  бЄЁ¤лў Ґвбп Ј®в®ўлҐ жЁдал
hex4outw proc near
rol dword ptr [esp+4],10h
push ecx
mov ecx,4
jmp idisuda
hex4outw endp
hex4outb proc near
rol dword ptr [esp+4],1ch
push ecx
mov ecx,2
jmp idisuda
hex4outb endp
hex4outd proc near
push ecx
mov ecx,8
idisuda::
push ebx
mov ebx,[esp+12]
push eax
mov al,30h
stosb
@@:
rol ebx,4
mov al,bl
and al,0fh
cmp al,0ah
jb nex
add al,7
nex:
add al,30h
stosb
loop @b
mov al,'h'
stosb
pop eax
pop ebx
pop ecx
ret 4


Дата: Май 13, 2004 03:50:35

zzzyab
Исправить комментарии на читабельные и воспользоваться тегом для оформления кода религия не позволяет?


Дата: Май 14, 2004 14:58:40 · Поправил: zzzyab

;для вывода(console)
;собирается как lib

.486
.model	flat
include kernel32.inc
.code

;Линия
;edi: буфер консоли
PLine	proc near public
	push	eax
	push	ecx
	sub	eax,eax
	mov	al,0c4h
	mov	ecx,77
	rep	stosb
	mov	dword ptr [edi],0a0dh
	add	edi,2
	pop	ecx
	pop	eax
	ret
PLine	endp
;числа в ASCII а также HEX->DEC
;байты берутся из памяти по edx и он увеличевается по их количеству
;по флагу в еax выбор:
;1,2,4 cоответсвенно 1,2,4 байта числа
;10h HEX->DEC 100h откинуть передние нули
;edi место назначения
num4out	proc near public
locbuffer	=	10
		push	ebx
		mov	ebx,esp
		sub	esp,locbuffer
		push	ecx
		push	esi
		push	eax
		push	edi
		mov	edi,edx
		mov	esi,eax
		and	eax,0fh
		add	edx,eax
		push	edx
		mov	ecx,eax
		xor	edx,edx
		dec	edi
beru_byte:
		rol	edx,8
		mov	dl,byte ptr [edi+eax]
		dec	eax
		jnz	beru_byte
		lea	edi,[ebx-locbuffer]
		test	esi,10h		;perkodirovat hex->dec ?
		jnz	transcode
		add	ecx,ecx
		push	ecx
rozpodil:					
		mov	al,dl
		and	al,0fh
		cmp	al,0ah
		jb	nex
		add	al,7
nex:
		stosb
		ror	edx,4
		loop	rozpodil		
		pop	ecx
		jmp	final
transcode:		
		xor	ecx,ecx
		mov	esi,10
		mov	eax,edx
ce_she_ne_vse:
		xor	edx,edx
		div	esi
		xchg	eax,edx
		stosb
		mov	eax,edx
		inc	ecx
		test	eax,eax
		jnz	ce_she_ne_vse
final:		
		pop	edx
		pop	edi
		mov	eax,[esp] ;sdes sidit flag
		xor	eax,100h ;otseit perednie nuli?
skiday:
		mov	al,byte ptr [ebx-locbuffer+ecx-1]
		test	eax,eax
		jz	otsey_nol
		add	al,30h
		or	ah,1
		stosb
otsey_nol:
		loop	skiday
		pop	eax
		pop	esi
		pop	ecx
		add	esp,locbuffer
		pop	ebx
		ret	
num4out	endp

;HEX числа в АSCII (добавляет в конец букву h)
;данние из стека, возврат еdi
hex4outw	proc near
		rol	dword ptr [esp+4],10h
		push	ecx
		mov	ecx,4
		jmp	idisuda
hex4outw	endp
hex4outb	proc near
		rol	dword ptr [esp+4],1ch
		push	ecx
		mov	ecx,2
		jmp	idisuda
hex4outb	endp
hex4outd	proc near
		push	ecx
		mov	ecx,8
idisuda::
		push	ebx
		mov	ebx,[esp+12]
		push	eax
		mov	al,30h
		stosb
@@:
		rol	ebx,4
		mov	al,bl
		and	al,0fh
		cmp	al,0ah
		jb	nex
		add	al,7
nex:
		add	al,30h
		stosb
		loop	@b
		mov	al,'h'
		stosb
		pop	eax
		pop	ebx
		pop	ecx
		ret	4
hex4outd	endp


Новичек я еще не умею я ползоватся весми этими тегами


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.072