Zdjęcie w tle

6502

Autorytet
  • 351wpisów
  • 2429komentarzy
6502 userbar

Bardzo, bardzo lubię kotki :3

Zaloguj się aby komentować

Zaloguj się aby komentować

Mamy tu jakiegoś eksperta od assemblera Z80? Chodzi mi o wstawki assemblerowe w sdcc. Funkcja, która ma skoczyć bezwarunkowo pod adres:

void run(char* address){

__asm

pop HL

jp (HL)

__endasm;

}

Kompiluje się prawidłowo, ale nie działa. Ktoś może mi wytłumaczyć dlaczego? Ja to rozumiem w następujący sposób:

-argument przy wywołaniu funkcji jest wrzucany na stos

-instrukcja "pop HL" ściąga argument ze stosu do rejestru HL

-"jp (HL)" skacze bezwarunkowo pod adres przechowywany w rejestrze HL.

program zachowuje się tak, jakby nic się nie wykonało.

#programowanie #naukaprogramowania #retrocomputing

6502 userbar

@ataxbras @MostlyRenegade @inskpektor

Problem częściowo rozwiązany - zerknąłem w pośredni kod asemblera generowany przez sdcc. Parametr nie jest przekazywany przez stos, tylko przez rejestr hl, więc samo "jp (HL)" załatwia sprawę. Nadal działa to tylko w przypadku przekazania wskaźnika na funkcję, przy 0x0000 się wiesza. Edit: jednak działa, problem jest chyba przy powtórnej inicjalizacji UARTa bez soft resetu

@6502 Właściwie, jakby tak pomyśleć, to zdjęcie ze stosu jest rzeczywiście zbędne, skoro w jp wołasz HL bezpośrednio. Nie wiem jak miałoby to psuć kompilację, ale widocznie psuło.

Gratulacje, że Ci działa!

Zaloguj się aby komentować

Zaloguj się aby komentować

@6502 Dla owczarków nazistowskich mojego sąsiada które budzą mnie po nocach kupiłem specjalnie "Achtungi"

Ogólnie to jestem zwiedzony Tuskiem, że nie wprowadził niemieckiego prawa dla psiarzy

Zaloguj się aby komentować

#prawo

Czy istnieje obecnie dla zdrowej osoby jakakolwiek możliwość wyrobienia dowodu osobistego bez danych biometrycznych?

Inb4: nie będę moczył opuszków palców w kwasie xD

6502 userbar

@6502 No ale samo zdjęcie można traktować jako "dane biometryczne" bo przecież po wyglądzie twojej maski można cię zidentyfikować. A można wiedzieć jakie masz obiekcje przeciwko pobraniu odcisku palucha? Zostawiłeś gdzieś narzędzie zbrodni z odciskiem którego służby nie mogą zidentyfikować?

@Trismagist Po prostu jestem złośliwym, upartym kutasem. Im mniej o mnie wiedzą tym lepiej. Zdjęcie i tak już mają, odcisków palców jeszcze nie.

@AdelbertVonBimberstein Robili jakieś problemy z tego powodu, czy po prostu nie dali rady ściągnąć i tyle?

@6502 żadnych. Wszystkie palce po kolei odpadły i jeszcze heheszki leciały.

Generalnie urzędnik wspominał, że ma koleżankę kosmetyczkę i od chemii też jej linie wygładziło.

Zaloguj się aby komentować

#linux

Czy ktoś jest w stanie wyjaśnić mi następujący fenomen?

bash-5.2$ which sh

/usr/bin/sh

bash-5.2$ ls -lah /usr/bin/sh

lrwxrwxrwx 1 root root 20 Dec 12 19:17 /usr/bin/sh -> /etc/alternatives/sh

bash-5.2$ ls -lah /etc/alternatives/sh

lrwxrwxrwx 1 root root 13 Apr 23 2023 /etc/alternatives/sh -> /usr/bin/bash

bash-5.2$ ls -lah /usr/bin/bash

-rwxr-xr-x 1 root root 1.3M Apr 23 2023 /usr/bin/bash

bash-5.2$ sh

sh-5.2$

/usr/bin/sh pośrednio wskazuje na /usr/bin/bash, mimo to po wykonaniu sh zgłasza się sh. Inb4 - tak, doczytałem że korzystanie z update-alternatives do tego to nie jest najlepszy pomysł, ale z tak wyglądającymi symlinkami powinno działać.

6502 userbar

@6502 Powinno działać, ale możesz mieć PATH ze ścieżką bezpośrednio do sh o wyższym priorytecie (zakładam, że /bin). Tak gdybam. I fakt, alternatives może namieszać.

Co do alternatives per se, preferuję asdf, właśnie dlatego, że mniej się może zepsuć

@6502 - sprawdź jakie te binaries mają inodes - jeśli takie same to znaczy, że są zhardlinkowane:

stat -L -c %i /usr/bin/sh

stat -L -c %i /usr/bin/bash

@ataxbras @koszotorobur

Wszystko jasne:

bash-5.2$ sh --version    

GNU bash, version 5.2.15(1)-release (x86_64-pc-linux-gnu)

Copyright (C) 2022 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>


This is free software; you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

To od początku był bash, ale z promptem "sh", zakładam że jest ustawiany na podstawie polecenia uruchamiającego konkretnego shella.

@6502 - w Twoim przypadku, bez względu na to czy uruchomisz /usr/bin/bash czy /usr/bin/sh to uruchomi się to samo, gdyż oba pliki są hardlinkiem do tego samego ionode.

@6502 A to niespodzianka :D. Sprawdziłem u mnie i mam "normalnego" sh (dash). Co ciekawe, dowiedziałem się, że nie mogę sprawdzić jego wersji (o czym wcześniej nie wiedziałem). Próbowałem nawet strings, mając nadzieję, że wersja jest gdzieś w binarce, ale nie.

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

Zaloguj się aby komentować

@gawafe1241 nawiązanie do sceny z drużyny pierścienia.

Frodo: Spóźniłeś się

Gandalf: czarodziej nigdy się nie spóźnia. Przybywa zawsze precyzyjnie wtedy kiedy chciał.


Co brzmi zabawnie jak się tłumaczy dlaczego nie przyjechał do Bree że miał opóźnienie xd

Zaloguj się aby komentować