Stránka: 1 z 1
| [ Príspevkov: 21 ] | |
Autor | Správa |
---|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
vopred dakujem
Začínal som BASIC trochu assemblerZ80 a potom TURBOPASCAL.Viem aj niečo s C++ ale iba Hello world a kvadr.rovnicu a tak.
Chcem assmebler uz iba.
|
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 | 9 | |
Registrovaný: 21.06.07 Prihlásený: 06.05.13 Príspevky: 421 Témy: 4 | 4 |
Kód: .MODEL SMALL .STACK 100H .DATA text DB 'Hello world !!!$' ; retazec musi koncit znakom '$'
.CODE START: MOV AX,@DATA MOV DS,AX ; do DS <- datovy segment
zadaj_text: lea dx,text ; do DX treba adresu textu mov ah,09h ; do AH funkciu 09 (vypis textu)) int 21h ; Volanie fcie:(INT21/09h): vypis text
koniec: MOV AX,4C00H INT 21H ; koniec programu END START
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
ja som nechcel spam ja len chcem ktory je asi nauniverzalnejsi assembler?mne sa zda masm32 microsoft to je ono.
Chcel by som ten zdrojak v MASM32.Aj s vysvetlením mne to musis dvakrat vysvetlit inak nie
|
|
Registrovaný: 23.01.07 Prihlásený: 14.04.11 Príspevky: 239 Témy: 26 | 26 |
hento mi nešlo. skúste toto: (nepísal som to ja ja som len dopísal tie slovenské veci)
Win32:
Kód: .386 .model flat, stdcall include user32.inc include kernel32.inc .data MsgBoxCaption db "Aplikacia v Assembleri",0 MsgBoxText db "Ahoj Svet!",0 .const NULL equ 0 MB_OK equ 0 .code Main: invoke MessageBoxA, NULL, ADDR MsgBoxText, ADDR MsgBoxCaption, MB_OK invoke ExitProcess, NULL end Main
Konzola: Kód: .386 .model flat,stdcall option casemap:none
include windows.inc include kernel32.inc
.data sConsoleTitle db "Konzolova Aplikacia",0 sWriteText db "Ahoj Svet!",0
.code
Main PROC LOCAL hStdout :DWORD invoke SetConsoleTitleA, offset sConsoleTitle
invoke GetStdHandle, STD_OUTPUT_HANDLE mov hStdout,EAX
invoke WriteConsoleA, hStdout, offset sWriteText, 16d, 0, 0 invoke ExitProcess, 0
Main ENDP end Main
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
martin90 píše: hento mi nešlo. skúste toto: (nepísal som to ja ja som len dopísal tie slovenské veci) Win32: Kód: .386 .model flat, stdcall include user32.inc include kernel32.inc .data MsgBoxCaption db "Aplikacia v Assembleri",0 MsgBoxText db "Ahoj Svet!",0 .const NULL equ 0 MB_OK equ 0 .code Main: invoke MessageBoxA, NULL, ADDR MsgBoxText, ADDR MsgBoxCaption, MB_OK invoke ExitProcess, NULL end Main
Konzola: Kód: .386 .model flat,stdcall option casemap:none
include windows.inc include kernel32.inc
.data sConsoleTitle db "Konzolova Aplikacia",0 sWriteText db "Ahoj Svet!",0
.code
Main PROC LOCAL hStdout :DWORD invoke SetConsoleTitleA, offset sConsoleTitle
invoke GetStdHandle, STD_OUTPUT_HANDLE mov hStdout,EAX
invoke WriteConsoleA, hStdout, offset sWriteText, 16d, 0, 0 invoke ExitProcess, 0
Main ENDP end Main
to mam dat do masm32 a pojde mi to
|
|
Registrovaný: 23.01.07 Prihlásený: 14.04.11 Príspevky: 239 Témy: 26 | 26 |
malo by . ja používam Assembly Studio. šak zkompiluj to a uvidíš
|
|
Registrovaný: 02.12.07 Prihlásený: 09.12.07 Príspevky: 5 Témy: 0 | 0 |
Zdravím.
Nebudem zbytočne zakladať novú tému, keďže mám taktiež taký začiatočnícky problém s assemblerom.
Posielam vám zdroják programu - potrebujem len dopísať príkazy na zistenie počtu riadkov načítaného textu. Skúšal som to už všelijak, ale okrem hŕby zmätených znakov som z toho nič nedostal, prosím o radu.
Vďaka za help
rick
ten zdroják:
Kód: .CODE START: MOV AX,@DATA ;MENO MOV DS,AX MOV AH,09H MOV DX,OFFSET MENO INT 21H
MOV AH,09H ;NOVY RIADOK MOV DX, OFFSET CR INT 21H MOV DX,OFFSET OZNAM ;VYZVA MOV AH,09H INT 21H MOV SIZE_,0
ZADAJ: MOV AH,01H ;NAZOV SUBORU Z KLAVESNICE INT 21H CMP AL,0DH JE ZARIADKUJ MOV SI,OFFSET SUBOR ADD SI,SIZE_ MOV [SI],AL INC SIZE_ JMP ZADAJ ZARIADKUJ: MOV DX,OFFSET CR MOV AH,09H INT 21H
MOV DX,OFFSET SUBOR ;OTVORI SUBOR MOV AL,0 MOV AH,3dH INT 21H MOV HANDLE,AX JC HLASENIE1 JMP LOAD
LOAD: MOV DX,OFFSET ZNAK ;NACITA SUBOR PO ZNAKU MOV CX,1 MOV BX,HANDLE MOV AH,3FH INT 21H CMP AX,0 JNZ WRITE JMP KONIEC WRITE: MOV DX,OFFSET ZNAK ;ZAPISE ZNAKY NA VYSTUP MOV CX,1 MOV BX,1 MOV AH,40H INT 21H JNC LOAD JC HLASENIE2 ...
|
|
Registrovaný: 21.06.07 Prihlásený: 06.05.13 Príspevky: 421 Témy: 4 | 4 |
Tento program Ti spocita pocet riadkov v subore subor.txt
- uprav si citanie nazvu suboru
- cita po jednom znaku a zaroven ho vypisuje
- spocita znaky (13) ... cize znaky noveho riadku
- nakoniec vypise ale blbost, lebo na adrese pocet je cislo (napr. 48) ale Ty to musis prerobit na znaky '4' a '8' a vypisat tie znaky !
Kód: .MODEL SMALL .STACK 100H .DATA udaje_zo_suboru DB '.', '$' file_handle DW 0 dlzka DB 0, 0 text_pocet DB 10,13,"Pocet riadkov: $" pocet DW 1 meno_suboru DB "subor.txt", 0
.CODE START: MOV AX,@DATA MOV DS,AX
fileopen: mov AX, 3D00h ; open file (read only) lea DX, meno_suboru int 21h ; INT21 ... file open mov file_handle, AX ;; toto si musis opravit tak, aby si zadaval meno suboru!!!
fileread: mov BX, file_handle mov CX, 1 ; CX...1 number of bytes to read lea DX, udaje_zo_suboru ; pointer to read buffer mov AH, 3Fh ; file read by filehandle int 21h ; INT21 ... file read cmp AX,0 jz fileclose mov AL, udaje_zo_suboru cmp AL, 13 jne data_out inc pocet
data_out: mov AL, udaje_zo_suboru MOV AH,09H LEA DX, udaje_zo_suboru INT 21h ; vypis textu... (obsah suboru (znak_po_znaku) ) jmp fileread fileclose: mov BX, file_handle mov AH, 3Eh ; file close by filehandle int 21h ; INT21 ... file close
MOV AH,09H LEA DX, text_pocet INT 21h ; vypis textu: Pocet riadkov MOV AH,06H ;; toto si musis opravit mov DX, pocet ;; INT 21h ;; vypis poctu !!!
koniec: MOV AX,4C00H INT 21H ; koniec END START
|
|
Registrovaný: 02.12.07 Prihlásený: 09.12.07 Príspevky: 5 Témy: 0 | 0 |
zdravim,
vďaka za kód, pozrel som ho.
Tú prácu zo súborom mám spravenú tak, že program si vyžiada názov súboru, ktorý má otvoriť.
K tej oprave - to bude asi práve to čo potrebujem vedieť - tiež mi to namiesto čísla vypisovalo všelijaké smajlíky, znaky jak zo žolíkových kariet a iné hieroglify.
Inu - prečo práve 06h? nemohol by som to vypísať klasicky cez 09h, alebo 02h?
Tak ako je to s tým "prerobením" na znaky? Nestačí na to nejaký assemblerovský formát typu "integer"?
vďaka za odpovede
rick
|
|
Registrovaný: 02.12.07 Prihlásený: 09.12.07 Príspevky: 5 Témy: 0 | 0 |
zdravim
tak sa mi podarilo trochu postupit v tom pocte riadkov, ale este stale mi chyba "uzavret" cyklus ktory mi bude zvysovat pocet riadkov a robi mi problem cmp ax, 10 (pri a=0) ide, ale pri ax=10 nie (ax=10 by mal byt LF), tak uz fakt neviem co robim zle, prosim poradte.
rick
Kód: .MODEL SMALL .STACK 100H
.DATA
OZNAM DB "Zadaj nazov suboru: $" CHYBA1 DB "Chyba pri otvarani suboru$" CHYBA2 DB "Chyba pri zapise do suboru$" CHYBA3 DB "Chyba pri zatvarani suboru$" HANDLE DW ? SUBOR DB 128 DUP (?) SIZE_ DW ? CR DB 0AH DB 0DH DB "$" ZNAK DB 1 DUP (?) pocet DW 0
.CODE vypis_cislo proc near ;procedura vypise cislo na obrazovku push ax xor cx, cx wn0: xor dx, dx div bx push dx inc cx test ax, ax jnz wn0 wn2: pop dx or dl, '0' ;nieco s premenou cisla cmp dl, '9' ;do znakov v asci code jbe wn3 add dl, 7 wn3: mov ah, 2 int 21h loop wn2 pop ax ret endp
START: MOV AX,@DATA MOV DS,AX
MOV AH,09H ;NOVY RIADOK MOV DX, OFFSET CR INT 21H MOV DX,OFFSET OZNAM ;VYZVA MOV AH,09H INT 21H MOV SIZE_,0
ZADAJ: MOV AH,01H ;NAZOV SUBORU Z KLAVESNICE INT 21H CMP AL,0DH JE ZARIADKUJ MOV SI,OFFSET SUBOR ADD SI,SIZE_ MOV [SI],AL INC SIZE_ JMP ZADAJ ZARIADKUJ: MOV DX,OFFSET CR MOV AH,09H INT 21H
MOV DX,OFFSET SUBOR ;OTVORI SUBOR MOV AL,0 MOV AH,3dH INT 21H MOV HANDLE,AX JC HLASENIE1
LOAD: MOV DX,OFFSET ZNAK ;NACITA SUBOR PO ZNAKU MOV CX,1 MOV BX,HANDLE MOV AH,3FH ; INT 21H ; CMP AX, 10 ;koniec riadku (LF) jz pc ;jump if zero JNZ WRITE ;jump if not zero WRITE: MOV DX,OFFSET ZNAK ;ZAPISE ZNAKY NA VYSTUP MOV CX,1 MOV BX,1 MOV AH,40H INT 21H JNC LOAD JC HLASENIE2 HLASENIE1: MOV AH,09H ;CHYBA PRI OTVORENI MOV DX,OFFSET CHYBA1 INT 21H JMP ZATVOR
HLASENIE2: MOV AH,09H ;CHYBA PRI ZAPISE MOV DX,OFFSET CHYBA2 INT 21H JMP ZATVOR
HLASENIE3: MOV AH,09H ;CHYBA PRI ZATVARANI MOV DX,OFFSET CHYBA3 INT 21H
ZATVOR: MOV BX,HANDLE ;ZATVORI HANDLE SUBORU MOV AH,3EH INT 21H JC HLASENIE3 JNC KONIEC
pc: inc pocet ;??? ako zvysovat pocet?? mov ax, pocet mov bx, 10 call vypis_cislo ;jmp load
KONIEC: MOV AX,4C00H ;KONIEC PROGRAMU INT 21H END START
|
|
Registrovaný: 02.12.07 Prihlásený: 09.12.07 Príspevky: 5 Témy: 0 | 0 |
staci mi aspon keby niekto vedel ako spravne zapisat cmp ax, (koniec riadku)
|
|
Registrovaný: 21.06.07 Prihlásený: 06.05.13 Príspevky: 421 Témy: 4 | 4 |
Kód: cmp AX, 10 ; alebo cmp AX, 13
|
|
Registrovaný: 02.12.07 Prihlásený: 09.12.07 Príspevky: 5 Témy: 0 | 0 |
ano to som skusal, ale enter sa sklada z oboch znakov nie? CR+LF, tj 10 a 13, ale funguje mi to uz podla predosleho zdrojaku s ax=0dh (13d).
sento vdaka
rick
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
Môžem robiť v MASM32 editore je tam aj kompilator a tak dalej.
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
No toto som dal do assembly studia a nejde mi ti zkompilovať.
sento píše: Kód: .MODEL SMALL .STACK 100H .DATA text DB 'Hello world !!!$' ; retazec musi koncit znakom '$'
.CODE START: MOV AX,@DATA MOV DS,AX ; do DS <- datovy segment
zadaj_text: lea dx,text ; do DX treba adresu textu mov ah,09h ; do AH funkciu 09 (vypis textu)) int 21h ; Volanie fcie:(INT21/09h): vypis text
koniec: MOV AX,4C00H INT 21H ; koniec programu END START
|
|
Registrovaný: 21.06.07 Prihlásený: 06.05.13 Príspevky: 421 Témy: 4 | 4 |
euthanan píše: No toto som dal do assembly studia a nejde mi ti zkompilovať.
... a ja to viem skompilovat
niekedy su vase informacie udivujuce;
a co ja viem, co mas ako nastavene?
vobec si uz daco skompiloval (hocico)?
vacsinou Vam to aj daco vypise, co sa kompilatoru nepaci;
ak si myslis, ze po takej informacii Ti niekto povie co mas robit, tak tazko; iba ak by bol jasnovidec
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
ja neviem este som v assembly studio nič neskompiloval.Pretože v menu na hornrj lisťe nemám povolené vôbec niečo skompilovať.
Nie je to nejaký blbý kód
Veď v kóde nieje data segment text segment nic len seliake stack a org a ine čo mi nič nehovorí Ni ja neviem s assembleru nic ,ale v MASM32 som už niečo skompiloval.
D.
|
|
Registrovaný: 21.06.07 Prihlásený: 06.05.13 Príspevky: 421 Témy: 4 | 4 |
aku priponu ma tvoj zdrojak? (.asm)?
nebude to len nejaky shareware?
mimochodom ten zdrojak je pre 16-bitovy asembler
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
vidim sa mi zdalo ziadne eax a podobne volake divne mi to pripadalo no a ten ass.studio neviem uz sa mi zda ze som tam cosi zkompiloval.ale toto mi nejde kasli na to ja budem v MASM32 a v W32Dasm.ale vsetci tu pisu 16bit a v ass.studio.,nikto to tu nepise v MASM32
no taky problem som mal aj s Cpp a Devcpp a teraz uz mi to ide.aj Devcpp aj kompilovat aj si v tom pisem A TAK.
Neviem ale pisemi ze nemam user32.inc a tak nejake kniznice neviem pozriem sa na to.
|
|
Registrovaný: 20.11.07 Prihlásený: 04.07.12 Príspevky: 405 Témy: 89 | 89 |
No dajte mi niekto druhu lekciu z assembleru!.Zhánam knihu Začíname s assemblerom je to martinuse a chystá sa dotlač a už pekne dlho ,tak kde inde by som ju zohnal?.Majstrovstvá už mám.Je to dosť také že naskoč a choď.Ja by som potreboval nastúpiť normálne a nie trampjumperov robiť.
Keby sa dalo,že by sa dla stiahnúť.To by bolo fajn.A
|
|
Stránka: 1 z 1
| [ Príspevkov: 21 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Assembler, C, C++, Pascal, Java | 5 | 695 | 26.06.2009 18:27 reDo | | v Assembler, C, C++, Pascal, Java | 26 | 737 | 24.11.2014 19:17 F1L1P | | v Predám | 1 | 403 | 25.08.2010 1:57 notfake | | v Modifikácie, návody a projekty | 2 | 1481 | 27.07.2006 20:42 Harlequin | | v Notebooky a netbooky | 17 | 1112 | 11.07.2010 10:59 DeltaForce | | v Operačné systémy Microsoft | 3 | 1150 | 09.10.2015 21:33 Webess | | v Počítačové hry | 7 | 408 | 23.11.2016 17:51 werwest | | v Notebooky a netbooky | 1 | 278 | 05.05.2024 18:36 juro333 | | v Predám | 1 | 400 | 17.03.2018 22:25 Miso122 | | v Antivíry a antispywary | 1 | 677 | 28.08.2011 18:21 44mato44 | | v Pamäte | 0 | 474 | 24.02.2014 13:42 Dulus | | v Operačné systémy Microsoft | 1 | 576 | 13.12.2007 17:14 fuco | | v Audio programy | 2 | 1163 | 09.08.2007 14:15 Dell Ree | | v Počítačové hry | 1 | 459 | 12.01.2013 12:42 german3131997 | | v Assembler, C, C++, Pascal, Java | 1 | 768 | 12.02.2009 11:57 IT_Geek | | v Počítačové hry | 5 | 1007 | 31.07.2011 20:48 cisco4 |
|