• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadania z assemblera - początkujący

Object Storage Arubacloud
0 głosów
1,535 wizyt
pytanie zadane 27 listopada 2015 w Inne języki przez Kapi2222 Obywatel (1,220 p.)

Witam! Jako ,że jestem początkującym w tym języku mam problem z kilkoma zadaniami. Nie wiem do czego służą różne funkcje. Z racji tego ,że nie mam żadnego kompilatora do assemblera nie znam nawet poprawnego wyniku do tych zadań bo nie wiem jak je sprawdzić. Pomógłbym mi ktoś i powiedział mniej więcej w jaki sposób rozwiązuje sie takie zadania?

Zad. 1

mov ax,3 
mov bx,5 
add ax,bx 
neg bx 
add bx,ax 
sub ax,bx 
int 3  ;wszystkie komendy są dla mnie zrozumiałe oprocz tej, co ona robi w programie?

 

zad. 2 - Podać heksadecymalnie wynik:

mov ax, 3 
loop: cmp ax, 16 
      jge ok 
      add ax, ax 
      jmp loop 
  ok: int 3

I tyle. Chciałbym po prostu poznać schemat rozwiązywania tych zadań. Jak go poznam to myślę ,że z resztą zadań sobie poradzę :) Głównie chodzi mi o zad. 2 bo wiem np. że loop to pętla ale nie wiem jak ona ma tutaj konkretnie zadziałać i jak sie kończy.  Dziękuję i pozdrawiam :)

1 odpowiedź

0 głosów
odpowiedź 27 listopada 2015 przez Krawiec91 Pasjonat (19,600 p.)
1. Te zadania są tak "skomplikowane", że znając instrukcje procesora, można je na kartce albo w głowie "skompilować". Ciężko mi tu powiedzieć o schematyczności w tych zadaniach. Nie podałeś co te programy miałyby robić. Chyba, że tylko fragmenty zamieściłeś, z 6-7 linii w assembly za dużo się nie podziała.

2. "loop" z zadania nr 2. to jest tylko label, który wskazuje na dane miejsce w programie, do którego można się odwołać za pomocą skoków warunkowych (związanych z flagami procesora) lub  skoków bezwarunkowych (na przykład instrukcja JMP). Label może także wskazywać, na stworzoną funkcję, którą można wywołać (instrukcja CALL). W pewnych okolicznościach, label może ograniczać zbiór instrukcji, które będą wykonywane w pętli.
3. Instrukcja int 3 - to przerwanie (wyjątek) Breakpoint Exception.
4. W zadaniu 2 wykonywane jest dodawanie do siebie zawartości akumulatora, do momentu gdy jest mniejsza (zawartość AX) od liczby 16.

Podobne pytania

0 głosów
1 odpowiedź 238 wizyt
pytanie zadane 27 stycznia 2016 w Inne języki przez hubertgz Użytkownik (510 p.)
0 głosów
3 odpowiedzi 1,941 wizyt
pytanie zadane 14 listopada 2015 w Inne języki przez hubot Dyskutant (9,090 p.)
+2 głosów
2 odpowiedzi 3,080 wizyt
pytanie zadane 23 września 2015 w Inne języki przez Omega410 Nowicjusz (140 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...