Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C by dEVIANT ( 15 years ago )
org 1000
dcx sp ; inicializacia zasobnika (0FFFFh)
lxi h,text1 ; skopiruj text1 do h
call putstr ; vypis uvodny text
mvi b,0 ;
mvi c,1 ; pomocna promenna boolean typ
lxi h,text1
chloop:
call getchar
cpi 10 ; porovna sa register "a" s backspacom
jz chend ; skoci sa na char_end, ak sa rovna
cpi 13 ; porovna sa register "a" s enterom
jz chend ; skoci sa na char_end, ak sa rovna
cpi 32 ; porovna sa register "a" s medzerou
jz chspac ; skoci sa na char_space, ak sa rovna
cpi '0' ; nacitany znak sa porovna s '+'
jc chadd ; skoci sa na char_add, ak sa rovna
cpi '1'+1 ; nacitany znak sa porovna s '*'
jnc chadd ; skoci sa na char_add, ak sa rovna
jmp chloop ; nacita sa dalsi znak
chadd:
mvi c,0
jmp chloop ; nacita sa dalsi znak
chspac:
mov a,b
add c
mov b,a
mvi c,1
jmp chloop ; nacita sa dalsi znak
chend:
mov a,b
add c
mov b,a
mvi c,1
call print
hlt
del: ; deli a/b Vraci a, zbytek b
mvi d,0;
deleni:
cmp b ; porovna b s a
jc nedel ; ak je a < b skonci
sub b ; odcita b od a
inr d ; zvisi h
jmp deleni
nedel:
mov b,a
mov a, d
ret ; vrati sa spet
prevod:
cpi 0
jz konec
mvi b,10
call del
push psw
mov a,b
adi 48
mov M,a
dcx h
pop psw
jmp prevod
konec:
adi 48
mov M,a
ret
print:
mov a,b
lxi h,vloz+4
call prevod
lxi h,text2 ; skopiruje sa text2 do h
call putstr ; vypise sa text2
call newline ; vypise sa novy riadok
ret
text1: db 'Pocet slov reprezentujucich zapis binarneho cisla ...',10,13,'Vloz text: ',0
text2: db 10,13,'Slov je: '
vloz: db ' ',0
hlt ; ukonci sa program
include 'examples8080includegetline.inc'
include 'examples8080includeputstr.inc'
include 'examples8080includeputchar.inc'
include 'examples8080includegetchar.inc'
include 'examples8080includenewline.inc'
Revise this Paste