X
Piątek 23 Maj 2025r. Godz 10:03:00      
Postów: 251      

Assembler - Instrukcja CMP


;Linie zaczynajace sie znakiem ; sa ignorowane przy kompilacji.


cseg segment
assume cs:cseg, ds:cseg, es:cseg
org 100h
start:
  jmp start2
oknap db 'Warunek spelniony ',13,10,'$'
OK:     ;Procedura wypisujaca napis o spelnieniu warunku
  push ax
  push dx       ;wrzucamy na stos rejestry, ktorych uzyjemy
;w procedurze - mamy gwarancje, ze nie zakloci nam ona pracy programu glownego
  mov ah,09h
  mov dx,offset(oknap)
  int 21h

  pop dx
  pop ax        ;pobieramy ze stosu w odwrotnej kolejnosci
  ret

nook db 'Warunek nie zostal spelniony ',13,10,'$'
nok:
  push ax
  push dx
  mov ah,09
  mov dx,offset(nook)
  int 21h
  pop dx
  pop ax
  ret

start2:
  mov ax,1
  mov bx,1      ;ax=bx
  cmp ax,bx
  je war1
  call nok
  jmp wy

  war1:
  call ok
  mov ax,2      ;AX > BX
  cmp ax,bx
  ja war2       ;znowu warunek sie spelni
  call nok      ;gdyby jednak nie
  jmp wy

war2:
  call ok
  cmp ax,bx     ;porownujemy jeszcze raz, tym razem z innym warunkiem
                ;nadal wiemy, ze ax > bx
  jna war3      ;teraz sie nie spelni i nie przeskoczy
  call nok
  jmp wy

war3:
  call ok       ;nie udalo sie...
wy:
  mov ax,4c00h
  int 21h
cseg ends
end start

;Jak wiec zadziala nasz program po kompilacji?
;
;                               Powinien dwukrotnie wypisac komunikat o
;spelnieniu warunku, za trzecim razem - o niespelnieniu.
;
;OK, mysle, ze lapiesz istote sprawy - nie chcac sie bawic zbyt wiele
;a jednoczesnie nie zostawiajac tego - kilka przykladow CMP poza
;programem:
;cmp ah,1
;cmp ax,3
;cmp ax,4444H
;cmp al,ah
;cmp ah,al
;- czyli - jak widzisz - kombinacji jest sporo (a i tak nie wszystkie
;wypisalem:)).
;
 

Drogi uzytkowniku!

W trosce o komfort korzystania z naszego serwisu chcemy dostarczac Ci coraz lepsze uslugi. By moc to robic prosimy, abys wyrazil zgode na dopasowanie tresci marketingowych do Twoich zachowan w serwisie. Zgoda ta pozwoli nam czesciowo finansowac rozwoj swiadczonych uslug.

Pamietaj, ze dbamy o Twoja prywatnosc. Nie zwiekszamy zakresu naszych uprawnien bez Twojej zgody. Zadbamy rowniez o bezpieczenstwo Twoich danych. Wyrazona zgode mozesz cofnac w kazdej chwili.

 Tak, zgadzam sie na nadanie mi "cookie" i korzystanie z danych przez Administratora Serwisu i jego partnerow w celu dopasowania tresci do moich potrzeb. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

 Tak, zgadzam sie na przetwarzanie moich danych osobowych przez Administratora Serwisu i jego partnerow w celu personalizowania wyswietlanych mi reklam i dostosowania do mnie prezentowanych tresci marketingowych. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

Wyrazenie powyzszych zgod jest dobrowolne i mozesz je w dowolnym momencie wycofac poprzez opcje: "Twoje zgody", dostepnej w prawym, dolnym rogu strony lub poprzez usuniecie "cookies" w swojej przegladarce dla powyzej strony, z tym, ze wycofanie zgody nie bedzie mialo wplywu na zgodnosc z prawem przetwarzania na podstawie zgody, przed jej wycofaniem.