Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 1 odgovor
  • 3.225 pregleda

Najnovija ↓

poredjenje dva karaktera u stringu 30.03.2011. u 23:53 · pre 190 meseci #1
Poz ekipa...Da li mi neko moze reci kako da uporedim dva karaktera u stringu u x86 arhitekturi na asembleru.....
Dva pristupa memoriji nisu dozvoljena pa ne mogu da koristim indeksno adresiranje...
Da li ikako moze da se karakter preseli u registar?
Re: poredjenje dva karaktera u stringu 14.04.2011. u 14:14 · pre 189 meseci
izmenjeno 1 put, poslednji put q3dalibor 14.04.2011. u 22:02
  1. q3dalibor14.04.2011. u 22:02zapis iz teksta poruke
#2
nisam bash pro shto se tiche assembly-a ali mislim da mozesh da ubacish string u registre
probaj ovako

mov ax,[string1]
mov bx,[string2]
cmp ax,bx

kockaste zagrade na string1 i 2 oznachavaju da se u registar prenosi vrednost stringa a ne adresa u memoriji

ne znam sa kakvim string vrednostima radish, ali ax i bx mogu da prihvate 16bit-ne vrednosti u hexadecimalnom zapisu.
cmp (compare) ce da uradi uporedjivanje dve heksadecimalne vrednosti, mislim da oduzima drugu od prve. cmp ax,bx = ax-bx
ne menja same vrednosti registara, ali ostavlja vrednosti u FLAGS na osnovu usporedbe.
eax i ebx su ti extended registri za 32bit-ne vrednosti
nakon cmp, mozesh da koristish jump komande da bi proverio vrednosti registara

jz label nakon cmp ax,bx bi u sluchaju da su vrednosti iste skochilo do procedure label
jz proverava da li je ZF(zero flag) u FLAGS, 1 ili 0... ako su vrednosti iste, ZF je 1 i skok se odradjuje, ako su razlichite ZF je 0 i skok se ignorishe

ako greshim ispravite me
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme