• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

Asembler --- kto potrebuje pomoct...

Started by totaluser, 16.02.2010, 01:58:35

« predchdzajce - alie »

Raleon

Quote from: BCAA on  21.03.2010, 19:37:50
heh ale to mate vsetci len take zadania ze prevody cisel :)  ci ratate slova ?

ja som mal na zadani triedit riadky suboru so zohladnenim slovenskych znakov (dz, ch  nazov suboru mal byt parametrom prikazoveho riadku)  :) a bolo to zaujimave :)

Nezmiesal si zadanie so zadanim v C ?  (inac toto neviem ci by si zrobil na 8080 emulatore :) )


There is no such bad temper that can not be fixed with some good wine.

ursus

Quote from: ursus on  21.03.2010, 01:09:42
boyz, co secko treba na odovzdanie vlastne? co je to dokumentacia?
bump
So this router walks into the doctor's office...
- Doctor, it hurts when IP.

BCAA

Quote from: Raleon on  21.03.2010, 20:52:44
Quote from: BCAA on  21.03.2010, 19:37:50
heh ale to mate vsetci len take zadania ze prevody cisel :)  ci ratate slova ?

ja som mal na zadani triedit riadky suboru so zohladnenim slovenskych znakov (dz, ch  nazov suboru mal byt parametrom prikazoveho riadku)  :) a bolo to zaujimave :)

Nezmiesal si zadanie so zadanim v C ?  (inac toto neviem ci by si zrobil na 8080 emulatore :) )

no to bolo moje zadanie na SOJ :)  tak neviem ci  assembler==soj

Raleon

Quote from: BCAA on  22.03.2010, 00:15:20
Quote from: Raleon on  21.03.2010, 20:52:44
Quote from: BCAA on  21.03.2010, 19:37:50
heh ale to mate vsetci len take zadania ze prevody cisel :)  ci ratate slova ?

ja som mal na zadani triedit riadky suboru so zohladnenim slovenskych znakov (dz, ch  nazov suboru mal byt parametrom prikazoveho riadku)  :) a bolo to zaujimave :)

Nezmiesal si zadanie so zadanim v C ?  (inac toto neviem ci by si zrobil na 8080 emulatore :) )

no to bolo moje zadanie na SOJ :)  tak neviem ci  assembler==soj

Je je. Ale mari mi nieco ze vtedy este aj so subormi bolo treba robit. Ale to bolo x86.


There is no such bad temper that can not be fixed with some good wine.

BCAA


mucko


org 1000
dcx sp

lxi h, static_text
call putstr

lxi d, vlozeny
call getline

lxi b, vlozeny
mvi d, 0      ; vhodne slova
mvi e, 0      ; nevhodne slova


char_loop:
ldax b
inx b
cpi 10 ;novy riadok
jz checkIfNula
cpi 13 ;enter
jz char_loop
cpi 32 ;space
jz checkIfNula
cpi 120 ;ci je to 'x'
jz char_loop
cpi 0 ;null
jz char_end

cpi '0'
jc error
cpi 'F'+1
jc char_loop

error:
mvi e, 1
jmp char_loop


checkIfNula:
mov a, e
cpi 1
mvi e, 0
jz char_loop

inr d
jmp char_loop

char_end:
lxi h, text2
call putstr

mov a, d
adi '0'
call putchar
call newline

hlt

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

static_text: db '******Pocet slov v sestnastkovom tvare (0x)******',10, 'Slova mozno zapisovat len v tvare 0xFFF! Male znaky nezachytava!', 10,13,10, 'Prehladavany text: ',0
text2: db 10,13,'Vysledny pocet(v tvare 0xFFF): ',0
vlozeny: ds 30


ked robim kontrolu, ktore slova mi zapocita su to tohto typu: 0xFF 0FF xFF
co tam mam prepisat aby mi to uz iba zachytavalo toto 0xFFF?
nejak ma uz nic nenapada  ak:

CLEMENZAAA

prosím poraďte...mám za úlohu vypísať počet slov, kt. obsahujú zátvorky...no mám problém ak sú v slove 2 a viac zátvoriek...napr. pri slove sl()boda mám "počet slov"=2 ... pls help nejako sa neviem pohnúť ďalej  ???

tino8

ved si tam sprav pocitadlo zatvoriek, a ak dojdes na koniec niejakeho slova tak iba over ci sa pocitadlo rovna 0, ak nie tak inkrementuj pocitadlo slov so zatvorkou


karamel je cukr co se uz neuzdravi!

CLEMENZAAA

ešte jedna otázka, ktorou inštrukciou porovnám či sa register B rovná nule?

tommy-sv

Quote from: CLEMENZAAA on  22.03.2010, 17:15:03
ešte jedna otázka, ktorou inštrukciou porovnám či sa register B rovná nule?

mov a, b
cpi 0
jz rovna_sa_nule
"Čím skôr zomrieš, tým dlhšie budeš mŕtvy."
"Radšej viac vypiť, ako menej zjesť."

pooler

nemá niekto prevod do desiatkovej sústavy ? potreboval by som :)


Hezechiel

PLEASE mail na Atilu N. Kovacsa, alebo ako sa odovzdava zadanie, na cd, mailom alebo staci doniest vlastny notas a ukazat mu ze to ide...  >:(
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(


Hezechiel

Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

ursus

7. Určte počet slov reprezentujúcich zápis šestnástkového čísla (začína znakmi 0x, napr. 0x15) podľa
syntaxe jazyka C.

moze mi niekto vysvetlit ako sa toto mysli, ze podla syntaxe Ccka? mam pisat program v cecku si asm? nechapem.
So this router walks into the doctor's office...
- Doctor, it hurts when IP.

Hezechiel

Quote from: ursus on  23.03.2010, 04:12:18
7. Určte počet slov reprezentujúcich zápis šestnástkového čísla (začína znakmi 0x, napr. 0x15) podľa
syntaxe jazyka C.

moze mi niekto vysvetlit ako sa toto mysli, ze podla syntaxe Ccka? mam pisat program v cecku si asm? nechapem.
cisto nahodou som toto zadanie spravil, a mas jedno ako to pochopis hlavne ze to nakodis, ale ma to vyzerat asi tak ze zerie vsetky slova ktore vyzeraju takto: 0xF9 0x009455ADBF 0x00 0xB9 takze ak sa slovo zacne inak ako '0x' a zatymto pojde nieco ine nez 0-9, A-F alebo ich kombinacie nevyhovuje to podmienke ;)
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

ursus

jj, dik, to chapem ale ako sa to mysli ze podla syntaxe C ? ved to ma byt program v asm predsa, nie?
So this router walks into the doctor's office...
- Doctor, it hurts when IP.

Hezechiel

no to len je povedane ze v jazyku C sa zapisuje 16ckove cislo zapisom 0xXXX ktore Ty mas vediet zapocitat, to len pre definovanie zadania. inde sa napriklad zapisuje 16Fh (h ako hexadecimal) takze kodis v asm, neviem jak Ta napadlo ze na predmete Assembler by si mal kodit v Ccku  :ohmigod:
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

ursus

no veru, asi budem klamat ak poviem ze je mi to jasne zo zadania ;D
So this router walks into the doctor's office...
- Doctor, it hurts when IP.

neucilasom

Neviete otazky akeho typu sa pytaju ? ked odovzdavate zadanie

ursus

okej, este raz pre blbych...cize to ze syntax C, tak to sa vztahuje len na syntax zapisu sestnastkoveho cisla, ktory je podla C tych 0x..?

inac, uz sa citim jak spamer... co je to ta dokumentacia? ;D
So this router walks into the doctor's office...
- Doctor, it hurts when IP.

jardo

preco mi tott vyhodi stale 5???
Quoteorg 1000

dcx sp         ;inicializacia zasobnika (0FFFFh)

lxi h,text      ;vypis text
call putstr


lxi d,vlozeny      ;adresa pre vstup retazca
call getline

lxi b,vlozeny
mvi d,0      ;pocet vsetkych znakov v slove
mvi e,0         ;pocet malych pismen v slove
mvi b,0
jmp char_loop

char:
mvi e,0
mvi d,0        ;vynulovanie pocitadla

char_loop:         ;citanie znakov a pocitanie pismen
ldax b         ;nacitanie znaku z retazca
inr d
inx b         ;posun v retazci doprava
cpi 13         ;porovnanie pre koniec nacitavania, enter
jz koniec_nacitania      ;
cpi 32          ;porovnanie na koniec slova, space=medzera
jz pocet_slov     
cpi 'a'         
jc char_loop     ;mensie  ako a
cpi 'z' + 1      ;mensie ako 'z' + 1
jnc char_loop
inr e         ;zvysenie poctu pismen o 1
jmp char_loop


pocet_slov:   ;pocitanie vyhovujucich slov
mov a,d      ;presun hodnoty z registra D do akumulatora
cmp e      ;porovnanie akumulatora a registra E
jz char      ;ak je pismen malej abecedy menej skoc na char
      ;vyber zo zasobnika do akumulatora
inr b         ;zvysenie poctu vyhovujucich slov
         ;vlozenie z akumulatora do zasobnika
jmp char

koniec_nacitania:    ;osetrenie ak sme spracovali posledne slovo
mov a,d
cmp e         
jz vypis
inr b         ;zvysenie poctu vyhovujucich slov
jmp vypis

vypis:
lxi h, text2
call putstr

mov a,b
adi '0'
call putchar
call newline

hlt

include 'examples\8080\include\getline.inc'
include 'examples\8080\include\putstr.inc'
include 'examples\8080\include\putchar.inc'
include 'examples\8080\include\newline.inc'
text: db 'Program vypise pocet slov(v dekadickom tvare) , ktore obshuju pismena malej abecedy', 10,13,10, 'Zadaj retazec: ',0
text2: db 10,13,'Vysledny pocet: ',0
vlozeny: ds 30

Hezechiel

Quote from: ursus on  23.03.2010, 13:46:05
okej, este raz pre blbych...cize to ze syntax C, tak to sa vztahuje len na syntax zapisu sestnastkoveho cisla, ktory je podla C tych 0x..?

inac, uz sa citim jak spamer... co je to ta dokumentacia? ;D
presne to ten "syntax C" je len pre oficialne znenie zadania, aby si vedel ako ma vyzerat spravne slovo 0xXXX.. dokumentacia ma asi obsahovat len znenie zadanie popis algoritmu a vyvojak, ale este som neodovzdaval tak uvidim ci mam dobru az v stvrtok.
Never argue with idiots. They'll drag you down to their level, then beat you with experience. (GILAMONSTER)
I miss WoW so much :(

Raleon

Quote from: jardo on  23.03.2010, 16:11:13
preco mi tott vyhodi stale 5???
pretoze nulujes register B tam , kde by si nemal!

lxi b,vlozeny
mvi d,0      ;pocet vsetkych znakov v slove
mvi e,0         ;pocet malych pismen v slove
mvi b,0

teda das do BC adresu vlozeny
potom nulujes d, e, a aj B!!
teda tu:

ldax b         ;nacitanie znaku z retazca

uz neberes hodnotu do A  z adresy vlozeny, ale od  adresy  co obsahuje C (bo si B znuloval)

pouzi ine registre na pocitanie spravnych slov atd, ako BC.  (mas na vyber D E H L , a aj zasobnik, keby to nestacilo )


There is no such bad temper that can not be fixed with some good wine.