Avatar billede krismort Nybegynder
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
Avatar billede soreno Praktikant
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 ? ;-)
Avatar billede chries Nybegynder
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;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester