Obsah fóra
PravidláRegistrovaťPrihlásenie




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

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

Registrovaný: 28.12.09
Prihlásený: 24.05.13
Príspevky: 9
Témy: 3
Príspevok NapísalOffline : 28.12.2009 19:30

používam MASM32. keď chcem použiť inštrukciu ktorá pracuje z reťazcami tak mi vypíše chybové hlásenie.
Citácia:
V aplikaci MyFirstProg.exe došlo k problému a je třeba ji zavřít. Omlouváme se za vzniklé potíže.

napríklad inštrukcia LODSB, alebo STOSB, ale aj ostatné.
treba pouziť nejakú knižnicu? kde môže byť problém?


Offline

Skúsený užívateľ
Skúsený užívateľ
ASSEMBLER inštrukcie pre prácu z reťazcami

Registrovaný: 11.01.09
Prihlásený: 22.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 28.12.2009 20:46

Z tej hlášky usudzujem, že aplikácia je spustená, teda preložila sa bez problémov. Ak by bolo nutné pripojiť knižnicu (to sa týka výlučne funkcií, nie inštrukcií), tak by sa aplikácia nedala preložiť. K problému: tieto inštrukcie pracujú s reťazcami, čiže zjednodušene povedané priamo s pamäťou. Je dosť možné, že bolo zapisované za nejaký reťazec, prípadne nejaká podobná chyba s neustrážením pamäte. Napíš sem aspoň časť kódu, takto ti skôr dokážeme pomôcť.


Offline

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

Registrovaný: 28.12.09
Prihlásený: 24.05.13
Príspevky: 9
Témy: 3
Príspevok Napísal autor témyOffline : 28.12.2009 21:08

Kód:
.586
.model flat, stdcall
option casemap :none

include      \masm32\include\windows.inc
include      \masm32\include\user32.inc
include      \masm32\include\kernel32.inc
includelib   \masm32\lib\user32.lib
includelib   \masm32\lib\kernel32.lib

.data
.code
Start:
   
 lodsb
   
   int 21H

end      Start


ano mas pravdu prg. sa prelozil bez problemov. staci ak pouzijem nejaku instrukciu ohladom retazca a program mi aj v debbugeri zastane na nej.


Offline

Skúsený užívateľ
Skúsený užívateľ
ASSEMBLER inštrukcie pre prácu z reťazcami

Registrovaný: 11.01.09
Prihlásený: 22.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 28.12.2009 21:26

A vieš vôbec, ako sa používa reťazcová inštrukcia? :)
Pred tým, ako sa začne pracovať s takouto inštrukciou, musí byť v registri ESI offset zdrojového reťazca a v registri EDI offset cieľového reťazca.

Ale to je aj tak jedno, pretože z tohto kódu nie je jasné, či sa jedná o 16-bit alebo 32-bit aplikáciu. --> Načítavaš DLL moduly, čo sa smie iba v 32-bitovej aplikácii. Hneď na konci máš ale prerušenie, čo sa zas v 32-bitovej aplikácii už nepoužíva. Teda ako celok sa tento kód nedá použiť. Takže moja otázka znie:
1.) chceš to prerobiť na 16-bitový program
2.) chceš to prerobiť na 32-bitový program
3.) stači ti iba názorný príklad, ako sa používajú reťazcové inštrukcie


Offline

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

Registrovaný: 28.12.09
Prihlásený: 24.05.13
Príspevky: 9
Témy: 3
Príspevok Napísal autor témyOffline : 28.12.2009 21:36

mam nejake priklady o vyuzivani tychto instrukcii. o registroch ktore sa vyuzivaju uz viem ide mi len o to aby mi to nevypisalo uz vyzsie uvedenu chybu.
ak by si bol ochotny tak priklad v 16 bit a 32 bit by mi pomohol.
ospravedlnujem sa ale pred instrukciou prerusenia som mal toto:
Kód:
invoke   ExitProcess,NULL

je mi jasne ze to meni situaciu s tym prerusenim, ale problem ostava.


Offline

Užívateľ
Užívateľ
ASSEMBLER inštrukcie pre prácu z reťazcami

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 28.12.2009 22:48

http://faydoc.tripod.com/cpu/lodsb.htm
Z toho tvojho kodu mi to pripada, ako keby si chcel pomocou lodsb nacitat retazec z klavesnice :). O int 21h sa nevyjadrujem, kedze sa nikdy nevykonal. V oboch linkoch mas pekne vysvetlene co to vlastne robi.
a myslim ze tento priklad hovori za vsetko :
http://www.emu8086.com/assembly_language_tutorial_assembler_reference/8086_instruction_set.html#LODSB
Myslim, ze 32 a 16 bitove priklady su zbytocne, kedze podstata je rovnaka a clovek sa najlepsie uci na vlastnych chybach :)


Offline

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

Registrovaný: 28.12.09
Prihlásený: 24.05.13
Príspevky: 9
Témy: 3
Príspevok Napísal autor témyOffline : 28.12.2009 22:58

je jedno co chcem spravit. PROBLEM je ze mi to nechce zobrat ani samotnu instrukciu, to hlasenie mi to vypisuje stale aj ked som skopiroval ten priklad takze som zasa na zaciatku,


Offline

Užívateľ
Užívateľ
ASSEMBLER inštrukcie pre prácu z reťazcami

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 28.12.2009 23:43

Kód:
.586P
.MODEL FLAT,STDCALL 

EXTERN ExitProcess@4:NEAR
INCLUDELIB c:\MASM32\LIB\KERNEL32.LIB
_DATA SEGMENT   
  retazec DB 'PRIKLAD loooodsb',0
_DATA ENDS
_TEXT SEGMENT
  START:
    lea esi,retazec
    xor edx,edx
    xor eax,eax
    loo:
     lodsb
     add edx,eax
     cmp eax,0
    jne loo
    push 0
    call ExitProcess@4
_TEXT ENDS
END START                 


Tu mas priklad lodsb, spocita to ASCII sucet znakov v retazci.


Offline

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

Registrovaný: 28.12.09
Prihlásený: 24.05.13
Príspevky: 9
Témy: 3
Príspevok Napísal autor témyOffline : 29.12.2009 16:30

diki moc. ide mi to. problem bol jeden jediny. register ESI "MUSI" byt nastaveny. asi idem moc do podrobnosti ale nevies preco MUSI byt nastaveny a preco mu nestaci ak je v nom ulozena nahodna adresa? na com krachne?
ale to nieja az tak dolezite. len pre zaujimavost. problem si mi vyriesil.


Offline

Užívateľ
Užívateľ
ASSEMBLER inštrukcie pre prácu z reťazcami

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 29.12.2009 16:33

nahodna adresa nemoze byt ulozena z dovodu, ze ty nemusis mat pravo citat z tej adresy alebo je to neplatna adresa. V tom pripade program spravi to, co spravil v tvojom prvom poste.


Offline

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

Registrovaný: 28.12.09
Prihlásený: 24.05.13
Príspevky: 9
Témy: 3
Príspevok Napísal autor témyOffline : 29.12.2009 16:49

parada a ze assembleristi vymreli :)
DIKI MOC


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


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Vývojové prostredie pre Assembler

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

10

1318

14.08.2008 12:34

stopa27 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. AMD predstavila SSE5 inštrukcie prvýkrát s 3 operandami

v Novinky

1

362

03.09.2007 11:15

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladam pracu pre webdizajnera

v Ponuka práce

0

868

25.09.2009 19:05

rAse Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Notebook pre graficku pracu

v Notebooky a netbooky

3

519

26.12.2011 11:03

MyschoVIP Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. USB kľúč pre nonstop prácu

v Ostatné zariadenia

1

351

06.02.2013 14:52

carl65 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. NB pre pracu a hry

v Notebooky a netbooky

8

535

16.03.2016 18:38

pepkopav Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. NTB okolo 1000E pre pracu

v Notebooky a netbooky

3

485

15.10.2017 8:37

mimpopo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zostava pre webdesignera na pracu

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PC zostavy

32

1298

05.06.2011 16:10

piwik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PC pre prácu s grafikou

v PC zostavy

5

454

06.08.2012 12:58

R3Z0R Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zaujímavá téma pre ročníkovú prácu

v Vzdelanie, štúdium, škola

4

890

28.09.2014 13:49

Daron Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ntb pre prácu v SolidWorks

v Notebooky a netbooky

7

925

26.09.2021 15:31

123456 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. notebook pre prácu v AutoCade

v Notebooky a netbooky

3

476

06.11.2008 11:19

tlacitko Enter Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Tutorialy pre pracu s Gimpom

v Grafické programy

1

1398

20.03.2008 21:25

Triminka Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kancelárska zostava pre basic prácu

v PC zostavy

6

361

08.02.2014 1:18

Qpkqkma Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Zostava pre 3D pracu do 850€

[ Choď na stránku:Choď na stránku: 1, 2, 3 ]

v PC zostavy

79

3146

24.09.2010 14:25

danielson84 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kupa notebooku pre prácu s Photoshopom

v Notebooky a netbooky

3

373

23.06.2014 17:04

nescafe 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