x-kom hosting

[asm] Problem ze 'znakiem nowej lini'

myart
utworzono
utworzono

Hey,

probuje napisac nastepujacy program w nasm ide:

- kopiuje zawartosc pliku1 do plik2 (.txt)

- w jednej lini powinny byc max 3 wyrazy (wyraz - ciag znakow oddzieliony spacja)

Problem mam nastepujacy: nie moge wpisac 'znaku nowej lini' do plik2.txt

Kod poniżej: [dodawanie entera - etykieta "enterek" - linia 77]

bits 16org 100hsection .bssbufor resb 1;nowalinia resb 4section .dataplik1 db 'plik1.txt', 0plik2 db 'plik2.txt', 0;nowalinia db 0dh, 0section .textmov si, buformov di, 0;tworzymy plik2mov ah, 3chmov dx, plik2mov cx, 00hint 21h;otwieramy plik1mov ah, 3dhmov al, 02hmov dx, plik1int 21h;uchwyt na plik1mov bp, ax;otwieramy plik2mov ah, 3dhmov al, 02hmov dx, plik2int 21h;uchwyt na plik2mov ds, axzapisywanie:;wczytywanie znak˘w z pliku1mov ah, 3fhmov bx, bpmov dx, buformov cx, 1int 21h;zapisujemy do pliku2mov ah, 40hmov bx, dsmov dx, buformov cx, 1int 21h;sprawdzamy czy znak jest spacjacmp byte[si], ' 'je inkrementacjaczy_koniec:;sprawdzamy czy koniec plikucmp byte[si], '!'je zamykaniejne zapisywanieinkrementacja:inc di;mov si, '_';mov [nowalinia], sicmp di, 3je enterekjne czy_koniecenterek:;dodajemy entermov ah, 40hmov bx, ds;mov dx, 0dhmov dx, 0ahmov cx, 2int 21hmov di, 0jmp czy_konieczamykanie:;zamykamy plik1mov ah, 3ehmov bx, bpint 21h;zamykamy plik2mov ah, 3ehmov bx, dsint 21h;zamykamy programmov ax, 4chint 21h

bede wdzieczny za pomoc

tom300
komentarz
komentarz (edytowane)

Dawno już nie pisałem żadnego programu w asmie ale ja bym spróbował zrobić tak:

1. po przerwaniu kończącym program dodałbym tą linię:

enter	db	13, 10

2. po etykiecie enterek zamiast

mov dx, 0ah

dałbym

mov dx, enter

i to powinno przypisywać enter na koniec pliku2 ;) Mam nadzieję, że zadziała bo nie sprawdzałem tego u siebie. :D

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.