Wednesday, March 16, 2011

Sunday, March 13, 2011

ну, вы должны себе это хорошо представлять: половина второго ночи, все спят уже, тихонечко сижу, пишу на ассемблере какую-то совершенно никому не нужную хуергу: изобретаю велосипед. отлаживаю ее прямо на железе. очень круто: точки останова, просмотр памяти, регистров служебных. и все это прямо вот в этом IDE от ST, блядь, Microelectronics. очень круто и прямо даже почти удобно.

семья спит.
кот лежит на диване.
и тут я такой задаю адрес переменной отладчику, и ошибаюсь одной буквой (шестнадцатиричное число [0-9a-fA-F]*.). и жму ентер.
колонки не выключены, потому что зачем их выключать, если они молчат себе тихо под столом.
ёбаная среда разработки выдувает мне в колонки звук сирены от грузовика!

вот так примерно: ПФАААААП! ТЫ УКАЗАЛ НЕПРАВИЛЬНЫЙ АДРЕС!

пиздец. сраные индусы. лучше бы они, незнаю, баги в компиляторе не все пофиксили.
в общем, седых волос у меня прибавилось.


; X = integer
; Y = pointer to string
.itoa
push A
pushw X
pushw Y

ld A, XH
and A, #$80
jreq positive_number
negw X
ld A, #$2D
ld (Y), A
incw Y

positive_number

next_digit
ld A, #10
div X, A
push A
inc digits_count
tnzw X
jrne next_digit

next_symbol
pop A
add A, #$30
ld (Y), A
incw Y
dec digits_count
jrne next_symbol

popw Y
popw X
pop A
ret