mitä tuo imul tekee (en ymmärtänyt oppaita, joten niitä on melko turha antaa)?
Ymmärtääkseni IMUL EAX,EAX,666 on sama kuin EAX = EAX * 666, mutta kun tuon tekee vb:llä niin tulee eri vastaus kuin asmilla eli tuo ei taida olla totta...
Etumerkillinen kertolasku, EAX = EAX * 666, pitäisi olla ihan.
Hyvin samoja lukuja tulee kertolaskusta niin asmilla kuin Pascalillakin. Minulla ei ainakaan näyttänyt mikään menevän edx:ään, tai ei ainakaan liittynyt laskun tulokseen mitenkään.
mov eax, A imul eax, B ; eax = A * B
Kyllä IMULin tulos (32-bittisillä operandeilla) menee EDX:EAX:iin.
Jaa. Kyllä minulla EDX oli itsepintaisesti aivan väärä kertolaskun tulokseen nähden, kun Delphillä testailin tuota.
Edit: Näköjään asiat ovat tänään toisin :) Mikä lie virhe eilen tullut, vaikka mielestäni aivan samaa koodia silloinkin käytin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.