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

Asembler

Started by james25, 06.03.2009, 16:02:14

« predchdzajce - alie »

mansory

Už asi nič nebude z tých zadani, všetci ty čo to boli schopný spraviť už sa venujú svojim prácam.  :ohmigod:

ivo261as

Ak by dakto chcel, tak mám toto zadanie:
Zostavte program, ktorý zabezpečí zámenu výmenu vzorky v celom súbore, tak ako to robí predprocesor jazyka C s #define.
+ dokumentácia :)
If you can't finish your work in 24 hours, work at night.
http://www.utfg.net/

Luk1

mam zadanie 99 a podelim sa s nim za 10 eur, keby mal niekto zaujem tak icq alebo pm

Za slovensky narod bije mi srdce v hrudi.

tragedy11

kto este nema zadanie z asembleru 86 a chce nech mi napise a ja sa pokusim poriesit.

tragedy11

posielajte mi cely text ulohy..na cene sa dohodneme
   tragedy11@azet.sk

tragedy11

ten kto mi pisal ze to chce mat do utorka tak nestihnem to lebo mam skusku..az utorok by som mohol riesit ked to nebude velmi tazky oriesok..tak nvm no

Blackwing

Haj, zháňam zadanie 28 : Nejaký reťazec v hexadeci sústave praviesť do desiatkovej sústavy. Ak by niekto vedel pomôcť, tak by som bol vďačný a vedel by som sa aj patrične odmeniť..

tragedy, to som ti písal ja. Počuj a dokedy by si to vedel spraviť? Ja by som to možno s cvičiacou vykecal.. Ale dalo by sa to ešte tento týždeň??

tragedy11

nvm noo ..zajtra skuska uvidim co a ci stihnem poriesit a potom aj stredu mam volnu takze dufam ..ked to budem mat tak hned pisem ludom mail, ked to samozrejme rozlusknem ;D

Marko033

nazdar kto ma zadanie z asemblera č.55 prosim...

Tomi7x7

#109
Všetci ahoj!
Potreboval by som no čo asi asembler 8086 .
Presne zadanie číslo

78.Načítajte z klavesnice reťazec znakov ukončených znakom konca riadku. Slová vo vstupe sú oddelené najmenej jedným zanakom madzera. Uvažujete aj prvé resp. posledné slovo vstupu. Určte počet čísel vacsich ako 1. (prvé) uvedené číslo reprezentovaných slovami. Počet vytlačte šestnástkovo.-alebo dvojkovo

ponkam fin. odmenu

Blackwing

Sakra, čo ja som za debila, že ma nenapadlo, že toto fórum číta aj tá spomínaná cvičiaca... Ale nechala ma prejsť, teda ju chválim  ;D, ale nemenujem  ;D

dEVIANT

ma niekto zadanie 139 ? ide o urcenie poctu slov v ktorych je dvakrat viac malych pismen ako operatorov...pocet vytlacte desiatkovo...

ozvite sa niekto pls...moze to byt vytlacene aj 38mickovo alebo to moze vypisat len ascii znak...len aby to dako fachalo...

cakam nejake PM :)
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

wildwolf

je tu nekdo kto vie prerobit toto do 10-tkovej sustavy  :(

JUMPS ; toto je direktíva pre podporu dlhých skokov
.MODEL SMALL ; tu som nadefinoval dátový model
.STACK 100H ; tu zasa veľkosť zásobníka
.DATA ; táto oblasť sa nastaví ako dátový segment - obsahuje premenné programu

ZNAK       DB 0 ; tu sa uklada nacitany znak
VELKE      DW 0
CISLA      DW 0
JESLOVO    DB 0
POCET      DW 0
OZNAM      DB "Napiste text a potvrdte ho Enterom:",10,13,"$"
TEXTIK     DB 10,13,"Pocet slov s rovnakym poctom cislis a velkych znakov je: $"

.CODE ; kódovy segment - obsahuje všetky inštrukcie

; vypíše v osmickovej sústave obsah registra AX
PROC Vypis
PUSH AX BX DX ; vloží obsahy registrov do zásobníka

MOV DX,AX ; DX <- AX
MOV BX,32768 ; BX <- 32768
SKOK:
MOV AX,DX ; AX <- DX
MOV DX,0 ; DX <- 0
DIV BX ; AX <- DX:AX / BX, DX <- DX:AX MOD BX

PUSH BX ; uloží obsah registra BX do zásobníka
MOV BX,AX ; BX <- AX
MOV AH,02H ; číslo funkcie pre výpis znaku
PUSH DX ; uloží slovo zo zásobníka do registra DX
MOV DL,'0' ; DL <- ASCII kód '0'
ADD DL,BL ; DL <- DL + BL
INT 21H ; vykonanie funkcie
POP DX ; uloží slovo zo zásobníka do registra DX
POP BX ; a BX

PUSH AX DX ; uloží obsahy registrov do zásobníka
MOV DX,0 ; DX <- 0
MOV AX,BX ; AX <- BX
MOV BX,8 ; BX <- 8
DIV BX ; AX <- DX:AX / BX, DX <- DX:AX MOD BX
MOV BX,AX ; BX <- AX
POP DX AX ; uloží slová zo zásobníka do registrov

CMP BX,0 ; porovná BX a 0
JNZ SKOK ; a ak sa nerovnajú skočí na SKOK

POP DX BX AX ; uloží slová zo zásobníka do registrov
RET ; návrat na miesto volania funkcie
ENDP Vypis

; testuje, ci dane slovo splna podmienku
PROC Testuj
PUSH AX

CMP JESLOVO,0
JZ TESTUJ2
MOV AX,CISLA
CMP AX,VELKE
JNZ TESTUJ2

INC POCET
TESTUJ2:
MOV JESLOVO,0
MOV VELKE,0
MOV CISLA,0

POP AX
RET
ENDP Testuj


START:
MOV AX,@DATA ; AX = segment oblasti DATA
MOV DS,AX ; ten som nasledne uložil do DS

MOV AH,09H ; AH = číslo funkcie pre výpis reťazca
MOV DX,OFFSET OZNAM ; DX = offset OZNAM
INT 21H ; vykonanie funkcie
CITANIE:
; nacitam znak z klavesnice do AL
MOV AH,00H
INT 16H

; a ulozim ho do premennej ZNAK
MOV ZNAK,AL

; porovná AL so znakmi konca slova (medzera, koniec riadku)
CMP ZNAK,32
JZ TEST
CMP ZNAK,10
JZ KONIEC
CMP ZNAK,13
JZ KONIEC

; ak bol nacitany nevyditelny znak tak sa neberie v uvahu
CMP ZNAK,32
JL CITANIE

MOV AH,02H ; chcem vypisat dany znak
MOV DL,ZNAK ; DL = ASCII hodnota tohto znaku
INT 21H ; vypis znaku

MOV JESLOVO,1

CMP ZNAK,48 ; ak je znak mensi ako znak 0
JL CITANIE ; skoci sa na navestie CITANIE
CMP ZNAK,90 ; ak je znak vacsi ako znak Z
JG CITANIE ; tak je to to iste

CMP ZNAK,58
JL PRIDCIS
CMP ZNAK,64
JG PRIDVEL


JMP CITANIE
PRIDCIS:
INC CISLA

JMP CITANIE
PRIDVEL:
INC VELKE

JMP CITANIE
TEST:
MOV AH,02H ; chcem vypisat dany znak
MOV DL,32 ; DL = ASCII hodnota medzery
INT 21H ; vypis znaku

CALL Testuj

JMP CITANIE
KONIEC:
        CALL Testuj
       
MOV AH,09H ; AH = číslo funkcie pre výpis reťazca
MOV DX,OFFSET TEXTIK ; DX = offset TEXTIK
INT 21H ; vykonanie funkcie

MOV AX,POCET
CALL Vypis

MOV AX,4C00H ; AX = číslo funkcie pre ukončenie programu
INT 21H ; vykonanie funkcie
END START
:metal::metal::metal: metaaal :metal: :metal: :metal:

Luk1

ma niekto zadanie 99 skompilovatelne v nasm ?

Za slovensky narod bije mi srdce v hrudi.

wildwolf

aky je rozdiel medzi tasm a nasm ?     vsimne si to cviciaci ?
:metal::metal::metal: metaaal :metal: :metal: :metal:

JCube

asi taky ako rozdiel prekladat C subor cez gcc alebo tcc
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

wildwolf

Quote from: JCube on  14.05.2009, 02:29:12
asi taky ako rozdiel prekladat C subor cez gcc alebo tcc

aha hned je mi to jasne   :hammer:
:metal::metal::metal: metaaal :metal: :metal: :metal:

JCube

ty pises program v jazyku symbolickych instrukcii (podobne ako keby si pisal program v C)...assembler je taka vec co ti to prelozi do strojoveho kodu (podobne ako prekladac jazyka C ti take spravi)...rovnako ako jazyk C moze mat viacero prekladacov (spominane gcc tcc ine cc borland c++ compiler atd)  tak aj assembly jazyk(teda jazyk symbolickych instrukcii) je mozne prekladat viacerymi prekladacmi...masm tasm ine asm a tak...

sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

wildwolf

aha  ... vidis ted normalne ze aj rozumiem
:metal::metal::metal: metaaal :metal: :metal: :metal:

JCube

no vidis...a co by ti pomohlo? wikipedia alebo google
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

wildwolf

tak zadanie je uz hotove v tasm    aj ked ho mame mat  nasm  ale to uz sa mozem vy....

dufam ze asembler uz nebudem mat... bu
:metal::metal::metal: metaaal :metal: :metal: :metal:

JCube

tak na urovni toho zadania nemyslim ze je az tolko odlisnosti v jazyku ktore ten ktory assembler ponuka...cize malo by to byt prakticky jedno co pouzijes
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

Luk1

caute neviete preco to nepracuje spravne ? malo by vypisat pocet slov, ktore maju 2x viac operatorov ako malych pismen
.MODEL small
.STACK 100h
.DATA 
    oz DB "Zadaj retazec:",10,13,"$"
    retazec DB "Zadaj retazec : $"
    male_znaky DB 0
    operatory DB 0
    vyhovujuce_slova DB 0
    text     DB 10,13,"Pocet slov : $"
.CODE

       
start:       
       
    mov ax, @data
    mov ds, ax
    mov dx,OFFSET oz
    int 21h
    lea dx, retazec   ; nacitanie retazca
    mov ah, 0Ah
    int 21h

    lea bx, retazec
    xor cx, cx   
    mov cl, [bx+1]
    mov si, bx
    add si, 2
   
main_loop:

    cmp WORD PTR [si], 20h     ; medzera = nove slovo
    je kontrola
   
    cmp WORD PTR [si], 61h     ; kontrola, ci sa jedna o male pismeno
    jl operator
    cmp WORD PTR [si], 7Ah
    jg operator
   
    inc male_znaky
    jmp dalsi_znak
   
operator:

    cmp WORD PTR [si], 2Ah      ; kontrola, ci sa jedna o operator
    jl dalsi_znak
    cmp WORD PTR [si], 2Fh
    jg dalsi_znak
   
    inc operatory
    jmp dalsi_znak
                     
kontrola:                 ; vyhovuje podmienka (operatory = 2 * male_znaky) ?
                     
    call skontroluj
   
   
dalsi_znak:

    inc si
    loop main_loop
   
    call skontroluj
   
koniec:

    mov ah,09h
    mov dx,offset text
    int 21h
    mov ah,vyhovujuce_slova
    mov ax, 4C00h
    int 21h         





skontroluj PROC
   
    mov al, male_znaky
    mov ah, 2
    mul ah
    cmp al, operatory
    jne zmaz
   
    inc vyhovujuce_slova

zmaz:   

    mov male_znaky, 0
    mov operatory, 0
   
    ret 0     
   
skontroluj ENDP




END start

dik :)

Za slovensky narod bije mi srdce v hrudi.

Buici

cawko ludia....
zadani 56 ma niekto hotove?? ak mi niekto spravi odmenim sa stedro :D
ale fakt ludia assembler je koko*ina ktoru chcem mat z krku takze smelo sa nebojte napisat ICQ 403930853
:banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar: :banana_guitar:

JCube

ja len vam tu hodim pekne veci co sa daju nakodit v assembly jazyku :)

http://conspiracy.hu/get.php?id=1
http://www.pouet.net/prod.php?which=51125
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"