15. september 2002 - 17:52
Der er
1 kommentar og
1 løsning
VC++ og Inline ASM?
Er der en som kan hjælpe mig med at converterer den her random generator til inline ASM ?
m WORD 0
p BYTE 0
a BYTE 0
v1 BYTE 0
v2 BYTE 0
v3 BYTE 0
q1 BYTE 0
q2 BYTE 0
q3 BYTE 0
q4 BYTE 0
cmp m, 0
jnz l1
mov a, 1
mov m, 32000
l1:
dec m
mov dl, a
inc q1
mov al, q1
cmp al, v1
jb l2
mov q1, 0
add p, dl
neg v1
l2:
inc q2
mov al, q2
cmp al, v2
jb l3
mov q2, 0
add p, dl
neg v2
l3:
inc q3
mov al, q3
cmp al, v3
jb l4
mov q3, 0
add p, dl
neg v3
l4:
inc q4
mov al, p
cmp al, q4
jne l5
inc a
and a, 15
l5:
mov al, p
mov v1, al
add al, al
add al, v2
add al, v3
mov p, al
mov al, v2
mov v3, al
mov al, v1
mov v2, al
15. september 2002 - 18:38
#1
hvrofor ikke bruge:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char **argv)
{
srand(time(0));
int randomArray[10];
int MAX_RANDOM = 100;
for(int i=0;i<10;i++)
{
randomArray[i] = rand() % MAX_RANDOM;
}
for(int i=0;i<10;i++)
{
printf("Element %i indeholder: %i\n", i, randomArray[i]);
}
}
der er vel ingen grund til at gøre det sværre end det er ? ;-)
16. september 2002 - 10:26
#2
hvis du vil beholde i asm:
int main(int argc, char* argv[])
{
unsigned short m = 0;
unsigned char p = 0;
unsigned char a = 0;
unsigned char v1 = 0;
unsigned char v2 = 0;
unsigned char v3 = 0;
unsigned char q1 = 0;
unsigned char q2 = 0;
unsigned char q3 = 0;
unsigned char q4 = 0;
__asm
{
cmp m, 0
jnz l1
mov a, 1
mov m, 32000
l1:
dec m
mov dl, a
inc q1
mov al, q1
cmp al, v1
jb l2
mov q1, 0
add p, dl
neg v1
l2:
inc q2
mov al, q2
cmp al, v2
jb l3
mov q2, 0
add p, dl
neg v2
l3:
inc q3
mov al, q3
cmp al, v3
jb l4
mov q3, 0
add p, dl
neg v3
l4:
inc q4
mov al, p
cmp al, q4
jne l5
inc a
and a, 15
l5:
mov al, p
mov v1, al
add al, al
add al, v2
add al, v3
mov p, al
mov al, v2
mov v3, al
mov al, v1
mov v2, al
}
return 0;
}