| | |
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
Autor | Správa |
---|
Registrovaný: 14.04.10 Prihlásený: 04.05.10 Príspevky: 3 Témy: 2 | Napísal pack: 17.04.2010 10:54 | |
|
Zdravim, vedel by niekto prerobit program ktory nacitava retazec z klavesnice a potom ho prevrati a vypise na obrazovku, na program ktory nacitava retazec zo suboru a potom ho prevrateny vypise na obrazovku?
povodny program:
Kód: .MODEL SMALL .STACK 50H .data zadaj DB 13,10,'Zadaj retazec a stlac ENTER: $' vysledok DB 13,10,'Retazec odzadu: $' dlzka DB 0FFh text DB '' ; tu sa bude ukladat "zadavany retazec"
.CODE org 100h START: mov ax,@data MOV DS,AX mov ah,09h lea dx,zadaj int 21h ; zobrazi sa vyzva na zadanie retazca
lea dx, dlzka ;nastavi do dx adresu ulozenej max dlzky retazca ;zaroven od tej adresy bude ukladat nacitany retazec mov ah,0Ah ;sluzba na nacitanie retazca ukonceneho ENTER int 21h
lea bx, text ; do bx adresu data seg. xor CX, CX ; CX <--- 0 mov CL, [bx] ; CL ... dlzka nacitaneho textu MOV DI, CX
lea dx,vysledok mov ah,09h int 21h ; zobrazi text "Retazec odzadu..."
cely_retazec: cmp DI,0 je koniec ; koniec ?
mov AL, [text+DI] mov DL, AL ; mov ah,02h ; int 21h ;vypisanie znaku (cislice) dec DI ; dalsi znak v zdrojovom retazci jmp cely_retazec koniec: MOV AX,4C00H INT 21H ; koniec END START ja som skusal nieco ale nejde mi to vobec rozbehat: Kód: .MODEL SMALL .STACK 50H .data znak db 0 zadaj DB 13,10,'Zadaj retazec a stlac ENTER: $' vysledok DB 13,10,'Retazec odzadu: $' dlzka DB 0FFh text DB '' ;tu sa bude ukladat "zadavany retazec" file_name_in db 'input.txt','$' ;meno vstupneho suboru file_handle_in dw 0 ;handler pre vstupny subor
otvor_vstup db 'Vstupny subor bol otvoreny',10,13,'$' zatvor_vstup db 'Vstupny subor bol zatvoreny',10,13,'$' CHYBA1 db 'Chyba otvarania vstupneho suboru',10,13,'$' CHYBA3 db 'Chyba zatvarania vstupneho suboru',10,13,'$'
OK db 'Citanie a zapis...',10,13,'$'
.CODE org 100h ;------------------------------------------ Macro na vypis retazca --------------------------------------------- vypis MACRO str mov ah,09h mov dx,offset str int 21h ENDM
;--------------------------------------------------------------------------------------------------------------- ;-------------------------------------- Otvorenie suboru na citanie - PROCEDURA --------------------------------
otvorenie1 PROC lea dx, file_name_in ;ulozenie mena vstupneho suboru do dx mov ah, 3dh ;otvorenie daneho suboru mov al, 00000000b ;nastavenie na citanie int 21h ;sluzba prerusenia ret ;navrat otvorenie1 ENDP
;-------------------------------------- Citanie zo suboru - PROCEDURA ------------------------------------------
citanie PROC C USES bx,dx,cx citaj:
mov bx, file_handle_in ;odtialto citame lea dx, znak ;sem ukladame nacitane znaky mov cx, 1 ;nacita sa jeden znak mov ah, 3fh int 21h ;sluzba DOSu na citanie znakov zo suboru mov ah, 02h ; int 21h ;vypisanie znaku (cislice) cmp ax,0 ;porovnanie, ci sme sa na konci suboru je nacitane ;skok na nacitane
jmp citaj ;skok na citanie dalsieho znaku
nacitane: ret
citanie ENDP
;---------------------------------------------------------------------------------------------------------------
START: mov ax,@data MOV DS,AX otvorvstup: call otvorenie1 ;volanie procedury pre otvorenie suboru na citanie jnc citajj ;ak nenastala chyba nastavi sa priznak a skoci na citajj
citajj: vypis otvor_vstup ;vypisanie hlasenia, ze vstupny subor bol otvoreny call citanie ;volanie procedury pre citanie zo suboru
uspesne: vypis OK
lea dx,vysledok mov ah,09h int 21h ; zobrazi text "Retazec odzadu..."
cely_retazec: cmp DI,0 je koniec ; koniec ? mov AL, [text+DI] mov DL, AL ; mov ah,02h ; int 21h ;vypisanie znaku (cislice) dec DI ; dalsi znak v zdrojovom retazci jmp cely_retazec koniec: mov ah, 3eh ;zatvaranie vstupneho suboru mov bx, file_handle_in int 21h jnc koniec2 vypis CHYBA3 koniec2: vypis zatvor_vstup ;zatvaranie vystupneho suboru mov ah, 3eh int 21h mov ax, 4c00h int 21h end start
|
|
| Stránka: 1 z 1
| [ Príspevok: 1 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| pomoc s vytvorenim programu v Assembleri v Assembler, C, C++, Pascal, Java | 0 | 334 | 04.10.2011 17:49 tomik858 | | Naprogramovanie ATmega8 a uprava programu v Elektronika | 17 | 2253 | 03.11.2010 15:32 Fico | | Násobenie a delenie v assembleri v Assembler, C, C++, Pascal, Java | 4 | 2769 | 01.11.2007 20:01 martin90 | | Jednoduchá úloha v assembleri - pomozte v Assembler, C, C++, Pascal, Java | 6 | 2128 | 15.11.2007 20:38 martinezb6 | | Delay aneb mrhanie casom v assembleri v Assembler, C, C++, Pascal, Java | 5 | 790 | 20.10.2009 23:53 stanke | | jednoducha uloha v assembleri pls help v Assembler, C, C++, Pascal, Java | 4 | 665 | 04.05.2008 11:42 snapshot | | Výber programu v Grafické programy | 1 | 384 | 18.01.2012 2:30 jtbs | | Vysvetlenie programu v Assembler, C, C++, Pascal, Java | 11 | 811 | 23.11.2008 20:41 shiro | | názov programu...? v Počítačové hry | 4 | 484 | 25.08.2011 15:32 Mego | | Uzatvaranie programu. v Assembler, C, C++, Pascal, Java | 6 | 721 | 03.10.2009 16:49 arnie16 | | chyba programu v Assembler, C, C++, Pascal, Java | 1 | 421 | 09.05.2009 19:46 fonseka | | tvorba programu v Ostatné | 0 | 542 | 26.01.2010 16:19 ipkis | | odstranenie programu v Ostatné programy | 1 | 801 | 12.01.2008 10:30 Mandy | | Záchrana programu v Ostatné programy | 3 | 279 | 10.11.2014 8:42 kllr007 | | Zdielanie programu v Ostatné programy | 7 | 1547 | 26.11.2018 15:05 patro16 | | vyladenie programu v Assembler, C, C++, Pascal, Java | 1 | 354 | 02.02.2012 9:25 BX |
| 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
|
|