|
[Grafika]
[WebTip]
[Fotografování]
[Galerie]
[MujMac]
[Printing]
|
|||||||||
![]() |
||||||||||
|
|
|||||||||
Diskuzní forum: AssemblerTéma diskuze: Diskuse o Assembleru x86 a ostatních příbuzných tématech.Tip: nemáte rádi v textu smajlíky? Ruší vaše zdrojové kody? Vypněte si je! (Moje nastavení / Nastavení soukromí) chyba v programu(ale kde?)
Vloženo uživatelem: Neregistrovaný uživatel: Marcel Borna (IP uloženo)
Datum: 03. 02. 2010 11:07
Dobrý den. Mám tento kód:
org 0x100 mov ah,0x0A mov dx,retezec int 0x21 xor ax,ax mov al,[retezec] inc dx add dx,ax mov si,dx std tiskni_dalsi_zn lodsb cmp si,retezec jb konec mov dl,al mov ah,0x02 int 0x21 jmp tiskni_dals konec: mov ah,0x4C mov al,0 int 0x21 SECTION .data retezec db 255, times 253 db ' ;konec programu Po stisknutí enter by měl pokračovat a zapsaný řetězec obrátit.Po enter se ovšem ukončí.Mohl by mi někdo prosím poradit, jak to napsat správně?Jak to napsat tak, aby když by byl na konci řetězce, aby se neukončil? Díky moc za pomoc. M.B. Re: chyba v programu(ale kde?)
Vloženo uživatelem: Neregistrovaný uživatel: luboš (IP uloženo)
Datum: 03. 02. 2010 19:38
Pro pozastavení programu můžete využít službu dosu č.8, která čeká na vstup z klávesnice.
Místo "mov al,[retezec]" by mělo být "mov al,[retezec + 1]". Na této adrese je skutečný počet znaků vrácený službou č.10. A místo "cmp si,retezec" by mělo být "cmp si,retezec + 1". Re: chyba v programu(ale kde?)
Vloženo uživatelem: Neregistrovaný uživatel: Marcel Borna (IP uloženo)
Datum: 04. 02. 2010 07:59
Díky moc.
M.B. Toto fórum je provozováno také jako emailová konference s e-mailovou adresou asm [a] builder.cz. Toto je neredigovaná a nemoderovaná diskuse čtenářů serveru Builder.cz. Redakce ani provozovatel serveru za obsah jednotlivých příspěvků nenese zodpovědnost. |