Przerwanie grafiki - błąd, zrzut pamięci

0

Witam, zapewne mam dość prosty problem do rozwiązania, ale kompletnie nie mam pomysłu.
Wierząc temu źródłu, poniższy kod powinien działać, lecz nie działa u mnie.

; hide blinking text cursor: 
     	mov ch, 32
     	mov ah, 1
     	int 10h

Chciałbym ukryć kursor podczas wprowadzania danych. Błąd to "Naruszenie ochrony pamieci (zrzut pamięci)", system linux.

2

Na moje oko problemem jest to że używasz przerwań dla DOSa i próbujesz to uruchomić na Linuksie. To raczej nie zadziała

Update:
Tu masz wyjaśnienie że Linuks działa w trybie chronionym i nie daje dostępu do przerwań BIOS-a, w przeciwieństwie do DOSa który działał w trybie rzeczywistym i dawał dostęp do wszystkiego

0

Ahh, szkoda. A nie ma żadnej innej możliwości aby to obejść i funkcje ze źródła "wywołać"(nie wiem czy można to tak nazwać)?

2

Możesz uruchomić swoją aplikację w DOSBox, QEMU albo Bochs - tam będziesz miał dostęp do wszystkich niskopoziomowych instrukcji.

0

Pod Linuks w trybie natywnym (zadna emulacja) masz co najmniej trzy tryby - kazdy bedzie wymagal innego podejscia:

  • inicjalizacja systemu (initd/systemd)
  • linuks w trybie tekstowym
  • konsola w trybie graficznym

Oprocz tego masz ww emulacje.
Wiesz w jakim trybie chcesz to zrobic?

1
Kordoba napisał(a):

Ahh, szkoda. A nie ma żadnej innej możliwości aby to obejść i funkcje ze źródła "wywołać"(nie wiem czy można to tak nazwać)?

Trudno mi zgadnąć, jakie masz motywacje do testowania asemblera. Jeśli byś miał jasne przemyślenia, można przypuszczalnie coś wskazać

Tak jak tutaj, wywołanie systemu (pozostawmy, że nie trafiony system), nie da żadnego zysku, jest "o 0,01% szybsze" od C. Czy poprzedni wątek o zmiennych enviromentu.
Wiedzy na ten temat praktycznie nie ma. To nie są lata 1990te.

Poza obszarem "algorytmów intensywnych procesorowo" (szyfrowanie, zipowanie), gdzie można marzyć o zysku, i mało się ma do czynienia z systemowym I/O, na dziś zajmowanie się asm, to zdobywanie wiedzy nie tyle o opcodach (choć też trzeba), ale pazurami szukanie odpowiedników czynności z C.

A tu coś, o czym mówiłem w poprzednim: moduł startowy, czyli to, co wywołuje main() i myślałem że asm będzie choć gram, jednak nie zawiera nic asemblera.
https://github.com/lattera/glibc/blob/master/csu/libc-start.c

2

Dzięki wielkie, w DOSBoxie wszystko pięknie śmiga

1 użytkowników online, w tym zalogowanych: 0, gości: 1