[ 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 | 3

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ý: 16.12.24
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova

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 | 3
Napísal autor témyOffline : 28.12.2009 21:08 | ASSEMBLER inštrukcie pre prácu z reťazcami

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ý: 16.12.24
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova

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 | 3
Napísal autor témyOffline : 28.12.2009 21:36 | ASSEMBLER inštrukcie pre prácu z reťazcami

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ý: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...

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 | 3
Napísal autor témyOffline : 28.12.2009 22:58 | ASSEMBLER inštrukcie pre prácu z reťazcami

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ý: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...

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 | 3
Napísal autor témyOffline : 29.12.2009 16:30 | ASSEMBLER inštrukcie pre prácu z reťazcami

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ý: 19.11.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...

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 | 3
Napísal autor témyOffline : 29.12.2009 16:49 | ASSEMBLER inštrukcie pre prácu z reťazcami

parada a ze assembleristi vymreli :)
DIKI MOC


 [ Príspevkov: 11 ] 


ASSEMBLER inštrukcie pre prácu z reťazcami



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

1356

14.08.2008 12:34

stopa27

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

393

03.09.2007 11:15

JanoF

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

Hladam pracu pre webdizajnera

v Ponuka práce

0

905

25.09.2009 19:05

rAse

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

Notebook pre grafickú prácu

v Kôš

1

76

28.04.2016 15:03

JanoF

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

Notebook pre graficku pracu

v Notebooky a netbooky

3

559

26.12.2011 11:03

MyschoVIP

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

USB kľúč pre nonstop prácu

v Ostatné zariadenia

1

381

06.02.2013 14:52

carl65

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

1368

05.06.2011 16:10

piwik

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

PC pre prácu s grafikou

v PC zostavy

5

491

06.08.2012 12:58

R3Z0R

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

938

28.09.2014 13:49

Daron

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

Ntb pre prácu v SolidWorks

v Notebooky a netbooky

7

999

26.09.2021 15:31

123456

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

NB pre pracu a hry

v Notebooky a netbooky

8

583

16.03.2016 18:38

pepkopav

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

NTB okolo 1000E pre pracu

v Notebooky a netbooky

3

526

15.10.2017 8:37

mimpopo

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

notebook pre prácu v AutoCade

v Notebooky a netbooky

3

520

06.11.2008 11:19

tlacitko Enter

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

Tutorialy pre pracu s Gimpom

v Grafické programy

1

1428

20.03.2008 21:25

Triminka

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

Kancelárska zostava pre basic prácu

v PC zostavy

6

389

08.02.2014 1:18

Qpkqkma

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

3258

24.09.2010 14:25

danielson84



© 2005 - 2024 PCforum, edited by JanoF