Assembler 8086

Programovacie jazyky, rady, poradňa...
inflater
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 470
Registrovaný: 28 mar 2007, 20:55
Bydlisko: Púchov, Slovakia

Príspevok od používateľa inflater »

Kua tak napisem dvom ludom riesenie a uz to tu zacne cele forum sa pytat. Asi si zacnem inkasovat 15€ za kazdu robotu :D:D Tak troska opraste mozgove zavity, sak to je jednoduche... nacitas z klavesnice do buffera, buffer najjednoduchsie deklarujes v kodovom segmente niekde medzi deklarovanymi hodnotami (povedzme resb 255). Nasledne sa uzivatela spytas na vstup, co je dos funkcia 0Ah a v ds:dx mas buffer. A potom uz pomocou string funkcii, lods, scans, movs, pozeras stringy a hras sa s nimi, jesusmaria. ;) Mne sa s tym tez nechce len tak do luftu s tym srat, mam tez svoje povinnosti...
dragoon17
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 19
Registrovaný: 02 okt 2008, 22:27
Bydlisko: Košice, Intrák
Kontaktovať používateľa:

asm

Príspevok od používateľa dragoon17 »

cavte vedel by mi niekto poradit s tymto zadanim?:Určte početnosť a percentuálne zastúpenie jednotlivých znakov malej latinskej abecedy vo vstupnom reťazci. Údaje vypíšte pre všetky tieto znaky, ktoré sa vo vstupe vyskytli aspoň raz. Za odpoved dakujem.
piton
King
King
Používateľov profilový obrázok
Príspevky: 1902
Registrovaný: 02 aug 2005, 0:31
Bydlisko: Hnojisko

Príspevok od používateľa piton »

Presne toto som mal v zimnom semestri, na ftp hypnos to je, mozes si to tam najst...
dragoon17
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 19
Registrovaný: 02 okt 2008, 22:27
Bydlisko: Košice, Intrák
Kontaktovať používateľa:

Príspevok od používateľa dragoon17 »

piton napísal:Presne toto som mal v zimnom semestri, na ftp hypnos to je, mozes si to tam najst...
Dakujem, za radu ale server je nedostupny nemohol by si mi poslat zdrojovy kod toho prikladu?
piton
King
King
Používateľov profilový obrázok
Príspevky: 1902
Registrovaný: 02 aug 2005, 0:31
Bydlisko: Hnojisko

Príspevok od používateľa piton »

server je perfektne dostupny, prave som tam bol, urcite to tam nebudem hladat...
dragoon17
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 19
Registrovaný: 02 okt 2008, 22:27
Bydlisko: Košice, Intrák
Kontaktovať používateľa:

Príspevok od používateľa dragoon17 »

piton napísal:server je perfektne dostupny, prave som tam bol, urcite to tam nebudem hladat...
dakujem za radu uz som to nasiel :-)
Joey_XD
Novice
Novice
Príspevky: 5
Registrovaný: 29 apr 2009, 15:15

inflater

Príspevok od používateľa Joey_XD »

Joey_XD napísal:
Sewas inflater... Nevedel by si mi prosimta spravit programik? Z klávesnice načítajte vstupný retazec ukončený znakom konca riadku a rozhodnite, ci patri do jazyka L={xxR |x€{a,b,c}+}.

//autoeditácia príspevku ( 02 May 2009, 0:01 )
Sewas inflater... Nevedel by si mi prosimta spravit programik? Z klávesnice načítajte vstupný retazec ukončený znakom konca riadku a rozhodnite, ci patri do jazyka L={xxR |x€{a,b,c}+}.
Myslis, ze stredoskolak bude vediet co znamena jazyk L={xxR |x€{a,b,c}+}? Very Happy
Jaj prepac.... x je retazec a xR je opacny retazec retazca x a x je s mnoziny a,b,c kladnych... (s tym by si sa podla mna ani nemusel zaoberat...) Ak by sa ti to podarilo spravit by som ti bol velmi vdacny
Jerrynko
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 14
Registrovaný: 13 dec 2008, 13:09
Bydlisko: Michalovce
Kontaktovať používateľa:

Príspevok od používateľa Jerrynko »

inflater si super vdaka :)
tthomas
Novice
Novice
Príspevky: 2
Registrovaný: 15 máj 2009, 7:50

pls help

Príspevok od používateľa tthomas »

caute chalani pls viete mi niekto pomoct so zadanim???



Napiste program, ktory nacita z klavesnice retazec maximalne 85 znakov, spravi kontrolny vypis retazca na obrazovku , a potom vykona ulohu.
Ulohu realizujte ako externu proceduru. Na spracovanie pola znakov pouzite retazcove instrukcie.

vypise pozicie prvych dvoch velkych pismen v retazci

neviem vobec pouzit tie retazove instrukcie...


pls help
citro
Novice
Novice
Príspevky: 2
Registrovaný: 16 dec 2008, 15:24
Kontaktovať používateľa:

Príspevok od používateľa citro »

Program nacita retazec a hlada slovo ktore som definoval v programe. Moze mi niekto poradit ako a kde mam dat slucku, aby nehladalo len jedno slovo ale viac (napr. 10) ?

Kód: Vybrať všetko

; -----------------------------
; Startovacia hlavicka pre TASM
; -----------------------------

.model small
.stack 100h

.data

zadaj_retazec	db 'Zadajte retazec : $' 
pocet_slov	db 'Pocet slov : $'
z1		db 0
z2		db 0
z3		db 0
z4		db 0
z5		db 0

.code

put_char proc
mov ah, 02h
int 21h
ret
put_char endp

put_string proc
mov ah, 09h
int 21h
ret
put_string endp

get_char proc
mov ah, 01h
int 21h
ret
get_char endp

new_line proc
mov dl, 10
call put_char
mov dl, 13
call put_char
ret
new_line endp

start:

mov ax, @data		; inicializacia data segmetu
mov ds, ax
mov ah, 0h
mov al, 7h
int 10h			; vymazanie obrazovky, nastavenie 80x25

mov dx, offset zadaj_retazec
call put_string
call new_line

mov cl, 0h 		; cl 	- pocitadlo spravnych slov

next_word:

mov ch, 0h		; ch    - stavove slovo
			;  0    - nic nie je nacitane
			;  1	- neobsahuje retazec
			;  2    - obsahuje retazec

mov z1, ch		; vynulujeme nacitane znaky
mov z2, ch
mov z3, ch
mov z4, ch
mov z5, ch

read_char:		; nacitanie znaku & jeho vyhodnotenie

cmp cl, 255		; mame uz plny register
je write_result

call get_char
cmp al,13		; test na koniec riadku 13 = '\n'
je end_of_read

cmp al,32		; test na koniec slova 32 = ' '
je end_of_word

mov ah, z2		; prehodime znaky 2 -> 1, 3 -> 2, 4 -> 3, 4 ->4
mov z1, ah
mov ah, z3
mov z2, ah		
mov ah, z4
mov z3, ah
mov ah, z5
mov z4, ah
mov z5, al		; nacitany znak -> 5

cmp ch, 0h		; ak sme este nic nenacitali
jne detect_word
mov ch, 1h		; zmenime stav

detect_word:

cmp z1, 'b'		; ak mame nacitane pismena b, r, e ,a, k
jne read_char
cmp z2, 'r'
jne read_char
cmp z3, 'e'
jne read_char
cmp z4, 'a'
jne read_char
cmp z5, 'k'
jne read_char
mov ch, 2h		; zmenime stav
jmp read_char

end_of_word:    	; koniec slova

cmp ch, 2		; je spravne ?
jne next_word		; ak nie, citame dalsie slovo
inc cl			; inak zaratame dalsie dobre slovo
jmp next_word

end_of_read:            ; koniec riadku

cmp ch, 2		; posledne slovo musime tiez ohodnotit na spravnost - bolo spravne ?
jne write_result	; tak nie :)
inc cl			; zaratame dalsie slovo

write_result:		; vypis vysledku

call new_line
mov dx, offset pocet_slov
call put_string
			; vypis poctu slov na obrazovku
			; musime previest hodnotu na desiatkovu
mov ch, 16		; ulozime si najvacsi zaklad

convert:
mov ah, 00h             ; ulozime si hodnotu do ax
mov al, cl

div ch			; vydelime zakladom
mov cl, ah		; zvysok si ulozime ako pocet slov
mov dl, al		
cmp dl, 9		; ak je hodnota < 9
jg alpha_value
add dl, '0'		; posunieme tak, aby 0 bola ASCII '0'
jmp write_char
alpha_value:
add dl, 'A' - 9		; inak tak, aby 0 bola ASCII 'A'
write_char:
call put_char		; nasobok vytlacime

cmp ch, 1		; ak je uz zaklad = 1 => uz sme previedli vsetky cifry
je end_of_write

mov ah, 0h		; teraz musime zmensit zaklad
mov al, ch
mov dl, 16		; 16x
div dl
mov ch, al		; zvysok si ulozime
jmp convert		; a pokracujeme

end_of_write:

call new_line

mov ax, 4c00h
int 21h
end start
Napísať odpoveď