Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 2 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.03.10
Prihlásený: 18.04.10
Príspevky: 3
Témy: 3
Príspevok NapísalOffline : 20.03.2010 18:09

Ahojte potrebujem pomôcť .

potrebuje aby vystup bol desiatkovo.

ak niekto vie pls pomôžte potrebujem surne

Kód:
org 1000         

start:   dcx sp         ; inicializacia zasobnika (0FFFFh)
   lxi h,text1      ; do HL adresa textu text1-uvodny
   call print         ; vypis text1
   
st1:   lxi h,txt2         ; do HL adresa textu txt2-Vloz text...
   call print         ; vypis txt2
   lxi d,text       ; nacita adresu navestia text do DE - buffer
   call getline       ; nacita riadok z klavesnice na adresu DE
   call tstline      ; test vstupu, ci bol vobec zadany
   mov a,b         ; do A uloz B pocet znakov bez SPACE
   cpi 0         ; Nula zadaych znakov?
   jnz pokr         ; nie, mozem pokracovat v programe
   lxi h,chyba      ; ano, zle zadany vstup
   call print       ; vypise CHYBU na obrazovku
   jmp st1         ; opakuj nacitavanie

pokr:   call osem         ; volaj podprogram osem
   lxi h,text4       ; do HL adresa textu4-Pocet osmickovych...
   call print       ; vypise text4 na obrazovku
   call vypis      ; volaj vypis  / vstup je v reg.B-pocet
end:   hlt          ; zastavi CPU

tstline:   lxi d,text         ; do DE adresa buffra
   mvi b,0         ; nuluj pocitadlo B
cykl2:   ldax d         ; do A uloz ASCII kod znaku
   cpi 32         ; SPACE?   
   jz preskoc         ; ano, preskoc
   cpi 10         ; LF?
   jz konci         ; ano, koniec
   cpi 13         ; CR?
   jz konci         ; ano, koniec
   inr b         ; zvys B+1, bol to znak

preskoc:   inx d         ; zvys DE+1, dalsi znak
   jmp cykl2         ; opakuj testovanie, kym nie je LF+CR
konci:   ret         ; navrat

vypis:    mov a,b
          adi '0'         ; hodnota a jej ASCII tvar ...
          call putchar
          call newline
          hlt
         
   
osem:   lxi d,text         ; uloz do DE adresu nacitaneho textu
   mvi b,0         ; vynuluj pocitadlo B, pocet osmickovych cisiel
   mvi c,0         ; vynuluj pocitadlo pozicie znaku C
citam:   ldax d         ; do A uloz ASCII kod znaku z adresy v DE
   inr c         ; zvys pocitadlo pozicie znaku
   cpi 10         ; LF?
   jz koniec         ; ano, koniec nacitaneho riadku
   cpi 13         ; CR?
   jz koniec         ; ano, koniec nacitaneho riadku
   cpi 38h         ; >7 ?
   jnc dalsi         ; ano, dalsi znak
   cpi 20h         ; MEDZERA ?
   jz space         ; ano, skok na podmienky medzery
            ; ak nie, pokracuj navestim nula:
nula:   cpi 30h         ; porovnaj, ci je znakom nula
   jnz dalsi         ; ak nie je, skoc na dalsi znak
   mov a,c         ; ak je nula, porovnaj s poziciou   
   cpi 1         ; ci je na prvej
   jnz dalsi         ; ak nie j prva nula, skoc na dalsi znak
opakuj:   inx d         ; zvys DE+1 - dalsi znak
   inr c         ; zvys poziciu znaku
   ldax d         ; do A uloz ASCII kod znaku
   cpi 38h         ; >7 ? (v ASCII kode)
   jnc dalsi         ; ano, dalsi znak, ak nie, pokracuj testovanim
   cpi 58h         ; je dalsim znakom X? (hex cislo v ASCII vstupe)
   jz dalsi         ; ak je, skoc na nacitanie dalsieho znaku
   cpi 'x'         ; je dalsim znakom x? (hex cislo v ASCII vstupe)
   jz dalsi         ; ak je, skoc na nacitanie dalsieho znaku
   cpi 10         ; LF?
   jz pocet1         ; skok na pocet, B+1
   cpi 13         ; CR ?
   jz pocet1         ; skok na pocet, B+1
   cpi 30h         ; dalsia 0?
   jz dalsi         ; Ano, je to potom binary cislo, skoc na dalsi
   cpi 20h         ; SPACE ?
   jz pocet         ; ano, skok na pocet, B+1
   jmp opakuj         ; ak nie, cyklus opakuj kym nie je medzera
pocet:   inr b         ; predpoklad osmickoveho cisla, b+1
   jmp space         ; skok na nacitanie dalsieho znaku po SPACE
pocet1:   inr b         ; predpoklad osmickoveho cisla, b+1
   jmp koniec         ; skok na koniec
dalsi:   inx d         ; zvys DE
   jmp citam         ; skok na nacitanie znaku z HL
space:   mvi c,0         ; ak bola znakom medzera, nuluj
   jmp dalsi         ; citaj dalsi znak
koniec:   ret

print:    mov a, m       ; nacitanie znaku z pamate
   inx h       ; posunutie ukazovatela
   cpi 0       ; je znak 0 ?
   rz       ; ak ano, navrat z podprogramu
   out 11h       ; inak vypis znaku
   jmp print       ; a opakovanie cinnosti
text1:    db 'Pocet osmickovych cislic vo vstupe.',10,13,0
text:    ds 255   ; tu sa ulozi nacitany text (buffer)
txt2:   db 'Vloz text (max.255 znakov vratane medzier): ',10,13,0
text4:    db 10,13,'Pocet osmickovych cisel je: ',0
text5:    db 10,13,'Bolo zadanych prave 255 znakov! ',10,13,0   ; chybova hlaska1
chyba:    db 10,13,'Bol zadany prazdny vstup alebo len medzery! ',10,13,0 ; chybova hlaska2

include 'examples\8080\include\getline.inc'
include 'examples\8080\include\putstr.inc'
include 'examples\8080\include\putchar.inc'
include 'examples\8080\include\getchar.inc'
include 'examples\8080\include\newline.inc'


Offline

Skúsený užívateľ
Skúsený užívateľ
Asembler- vystup desiatkovo---pls surne

Registrovaný: 11.01.09
Prihlásený: 20.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 20.03.2010 20:42

1.) Výstup desiatkovo je, takže buď nevieš, čo je desiatková sústava, alebo nevieš, že ten, kto ti zadanie spravil, predpokladá prvú cifru 0 (napr 0236, 012, ...)
2.) Silne pochybujem, že toto zadanie dokážeš obhájiť. Ak o tom začínaš pochybovať aj ty, dal som ti ľahšie riešenie --> http://www.pcforum.sk/asm-pocet-slov-reprezentujucich-zapis-osmickoveho-cisla-vt87586.html


Odpovedať na tému [ Príspevkov: 2 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Plis,asembler help:(surne

v Assembler, C, C++, Pascal, Java

2

906

25.08.2007 15:01

cinges Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vystup na sluchadla Výstup pro sluchátka (1xS/PDIF)

v Notebooky a netbooky

1

585

29.06.2011 19:20

rhonin37 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ext USB zvukovka 5.1 vystup a SPDIF vstup/vystup

v Zvuk

5

1478

20.01.2010 15:39

kolacek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Asembler prevod

v Assembler, C, C++, Pascal, Java

4

2126

21.04.2010 9:45

dadesk8 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Asembler zrychlenie vykonavania cyklu

v Assembler, C, C++, Pascal, Java

6

443

05.03.2013 19:25

n0sf3ratus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pascal,Asembler a Win XP

v Assembler, C, C++, Pascal, Java

1

1565

14.11.2005 22:01

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [Asembler] pocet malych a velkych pismen

v Assembler, C, C++, Pascal, Java

5

502

13.04.2015 20:31

TieSTiK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SURNE! Potrebujem pomoct s vylepsenim internetu SURNE!

v Siete

15

503

01.03.2013 14:43

shiro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ASEMBLER:Určte počet slov obsahujúcich reťazec ASM alebo asm

v Assembler, C, C++, Pascal, Java

7

1419

25.03.2011 10:07

dury26 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. hdmi vystup

v nVidia čipové sady

1

1411

26.12.2010 13:18

brmbo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Mŕtvy výstup

v Audio programy

2

479

08.05.2010 22:12

Victorious_ Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. xml vystup

v PHP, ASP

6

581

21.08.2008 16:07

MKI-Miro Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. double vystup

v Zvuk

3

488

21.01.2010 14:29

Tech Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. optický výstup

v Zvuk

5

1246

01.11.2007 17:18

apet Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Coaxial vystup

v Ostatné

13

1558

18.09.2011 15:27

BIO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vystup z funkcie

v PHP, ASP

15

829

13.09.2010 19:56

php30 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra