Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 317 → Rev 109

/programs/develop/h2d2b/trunk/h2d2b.asm
1,6 → 1,3
;; hex2dec2bin 0.2 by Alexei Ershov ;;
;; 16.11.2006 ;;
 
use32 ; âêëþ÷èòü 32-áèòíûé ðåæèì àññåìáëåðà
org 0x0 ; àäðåñàöèÿ ñ íóëÿ
 
13,7 → 10,8
dd 0x0 ; àäðåñ áóôåðà äëÿ ïàðàìåòðîâ (íå èñïîëüçóåòñÿ)
dd 0x0 ; çàðåçåðâèðîâàíî
 
include 'MACROS.INC' ; ìàêðîñû îáëåã÷àþò æèçíü àññåìáëåðùèêîâ!
include 'lang.inc'
include 'macros.inc' ; ìàêðîñû îáëåã÷àþò æèçíü àññåìáëåðùèêîâ!
 
 
START:
111,13 → 109,8
jmp next_digit
 
.done:
mov [num], eax ; ñîõðàíÿåì ââåäåííîå ÷èñëî
xor eax, eax
mov al, ' '
mov edi, string1
mov [index], edi
mov ecx, string1_end-string1
rep stosb ; ñòèðàåì ââåäåííóþ ñòðîêó
mov [num], eax
 
jmp red
 
;---------------------------------------------------------------------
125,66 → 118,48
button:
mcall 17 ; 17 - ïîëó÷èòü èäåíòèôèêàòîð íàæàòîé êíîïêè
cmp ah, 1 ; åñëè ÍÅ íàæàòà êíîïêà ñ íîìåðîì 1,
jne @f
mcall -1
@@:
cmp ah, 2
jne @f
shl [num], 1
jmp red
@@:
cmp ah, 3
jne @f
shr [num], 1
jmp red
@@:
cmp ah, 4
jne still
sar [num], 1
jmp red
jne still ; âåðíóòüñÿ
 
;------------------------------------------------
.exit:
mcall -1 ; èíà÷å êîíåö ïðîãðàììû
 
draw_window:
;------------------------------------------------
mcall 12, 1
mcall 0, 200*65536+300, 200*65536+175, 0x13AABBCC,,header
mcall 0, 200*65536+300, 200*65536+120, 0x02AABBCC, 0x805080D0, 0x005080D0
mcall 4, 8*65536+8, 0x10DDEEFF, header, header_e - header
mcall , 15*65536+100, 0, numstr, 7
mcall , 15*65536+72, , hexstr, 4
mcall , 15*65536+44, , decstr,
mcall , 15*65536+30, , binstr,
mcall , 15*65536+58, ,sdecstr, 10
 
mcall 8, 15 *65536+ 38, 90*65536+ 15, 2, 0x6688DD ; êíîïêà shl
mcall , ,110*65536+ 15, , ; êíîïêà sal
mcall , (300-53)*65536+ 38, 90*65536+ 15, 3, ; êíîïêà shr
mcall , ,110*65536+ 15, 4, ; êíîïêà sar
 
mcall 4, 15*65536+30, 0x80000000, binstr,
mcall , 15*65536+44, , decstr,
mcall , 15*65536+58, ,sdecstr,
mcall , 15*65536+72, , hexstr,
mcall , 15*65536+150, , numstr,
mcall 8, (300-19)*65536+ 12, 5*65536+ 12, 1, 0x6688DD
 
mcall , 25*65536+93,0x10000000,shlstr,3
mcall , (300-43)*65536+93, , shrstr,
mcall , 25*65536+113, , salstr,
mcall , (300-43)*65536+113, , sarstr,
mov ecx, [num]
 
mcall 47, 8*65536+256,,240*65536+72,0 ; 16-íàÿ
 
mcall , 10*65536, ,228*65536+44, ; 10-íàÿ
 
mcall , 8*65536+512,,240*65536+30, ; 2-íàÿ
ror ecx, 8
mcall , ,,(240-56)*65536+30,
mcall , 8*65536+512,,(240-56)*65536+30,
ror ecx, 8
mcall , ,,(240-56*2)*65536+30,
mcall , 8*65536+512,,(240-56*2)*65536+30,
ror ecx, 8
mcall , ,,(240-56*3)*65536+30,
mcall , 8*65536+512,,(240-56*3)*65536+30,
ror ecx, 8
mov [minus], '+'
mov byte [minus], '+'
jnc @f
mov [minus], '-'
mov byte [minus], '-'
neg ecx
@@:
mcall , 10*65536,,228*65536+58, ; 10-íàÿ ñî çíàêîì
mcall 4, 222*65536+58, 0, minus, 1
mcall 38, 15*65536+300-15, 137*65536+137, 0x006688DD
call Draw_String
 
 
mcall 12, 2 ; ôóíêöèÿ 12: ñîîáùèòü ÎÑ îá îòðèñîâêå îêíà
 
ret
192,9 → 167,18
;-------------------------------------------------
Draw_String:
;-------------------------------------------------
mov eax, 13
mov ebx, 60*65536+ 6*33
mov ecx, 100*65536+ 9
mov edx, 0x02AABBCC
int 0x40
 
mcall 4, 60*65536+150, 0x40A40473, \
string1,string1_end-string1,0x00AABBCC
mov eax,4
mov ebx,60*65536+100
mov ecx,0xA40473
mov edx,string1
mov esi,33
int 0x40
ret
 
;-------------------------------------------------
239,16 → 223,13
num dd 0
 
 
header db 'hex2dec2bin 0.2',0
header db 'hex2dec2bin'
header_e:
minus db '-'
numstr db 'Number:',0
hexstr db 'hex:',0
binstr db 'bin:',0
decstr db 'dec:',0
sdecstr db 'signed dec:',0
shlstr db 'shl'
salstr db 'sal'
shrstr db 'shr'
sarstr db 'sar'
numstr db 'Number:'
hexstr db 'hex:'
binstr db 'bin:'
decstr db 'dec:'
sdecstr db 'signed dec:'
 
I_END: ; ìåòêà êîíöà ïðîãðàììû