opticus Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 hvordan i alle dager skal man foreta modulo i x86 assembler? bruker gcc til kompilering Lenke til kommentar
opticus Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 jeg vet nå hvordan jeg skal klare å gjøre dette her, jeg klarer bare ikke kode det and og verdien 15(modulo 10) er et hett tips Lenke til kommentar
opticus Skrevet 30. mars 2005 Forfatter Del Skrevet 30. mars 2005 and er ikke et hett tips alikevell. idivl på et register med det du skal ta modulo av feks 100 mod 10 vil da stapp det du skal ha modulo av inn i %eax cdq # for å sette korrekte verdier i %eax og %edx movl $10, %ecx divl %ecx %eax vil nå inneholde en verdi og %edx en annen, test litt så finner du av det Lenke til kommentar
GeirGrusom Skrevet 2. april 2005 Del Skrevet 2. april 2005 Tror IDIV legger modulus i EDX registeret. (Intel Instruction Set Referance) Quadword/Doubleword: Divident:EDX:EAX Quotient:EAX Remainder:EDX Lenke til kommentar
LonelyMan Skrevet 6. september 2012 Del Skrevet 6. september 2012 (endret) Både DIV og IDIV legger modulus i edx registeret om du opererer med 32 bits tall, DX hvis 16 bit, AH hvis 8 bit tall og RDX hvis 64 bit tall. Men om du skal kalkulere modulus før du linker programmet og ikke under kjøringen av programmet så kan du bruke modulus operatøren som er innebygd i selve assembleren, men da opererer du kun med konstanter. F.eks: mov eax, 15 MOD 2... nå vil eax inneholde verdien 1. Endret 6. september 2012 av LonelyMan Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå