z kolegą na programowaniu robimy taki projekcik:

musimy w pascalu napisać translator z assemblera dsm8051 na kod maszynowy w postaci hexadecymalnej i zapiszę do pliku.

myślałem, żeby wszystkie mnemoniki zapisać do jednej tablicy, a odpowiadający im hex w drugiej pod tym samym nr i przeszukiwać tablicę. problemem są np. etykiety. ktoś ma jakieś rady co do realizacji?


#programowanie #pascal
@Analityk: Znaczy muszę to zmieniać na np tim : longint absolute $0040006C; inaczej nie łyknie. Zrobiłem też to trochę inaczej

var p : ^byte;

begin

p := pointer($B8000000);

p^ := 65;

end.

i też jest to samo.

Dobra ale już mam rozwiązanie, wszystko jest oki i ten error też, po prostu jest to taka reakcja na systemach działających w trybie chronionym.
@Maxxtom: Łatwe zadanie, a ty strasznie to sobie skomplikowałeś. Po co komu pętla do obliczania sumy, jak wzór na sumę kolejnych liczb naturalnych jest powszechnie znany. To zwykły ciąg arytmetyczny o różnicy 1. Jeśli l1 jest większe od l2 to zwróć (2*l1+(l2-l1))/2, w przeciwnym przypadku odwrotnie.
#bartuczysieprogramowac #programowanie #pascal

mam taki program w pascalu i chcę go zrozumieć

program demo; - standardowy początek programu

var - deklarowanie zmiennej

n,p:integer; - wypisuje zmienne czyli n i p

begin - początek programu

n:=0; daję "stałe" że n to 0 a p to 2

p:=2;

repeat powtarzam, czyli chcę wywołać pętle?

n:=n+5; - czyli 0+5=5

p:=p+3; czyli 2+3=5

if (p*n>210) then break **5*5=25>210 (i jak to ma być większe od 210?)
@almafater: ja bym zrobił tak:

1. tablica z wylosowanymi liczbami.

2. funkcja sprawdzająca czy liczba jest w tablicy z pkt. 1.

Funkcja zwraca false tylko wtedy, gdy tablica będzie pełna.

3. a później tylko:

while(checkifissetintin_array(rand(0, 5)));

Mniej pamięci zużywasz.