1. fotoaparati
  2. Car Audio & Electronics
  3. Home Audio
  4. Osobni Audio
  5. TV
  6. Pametna kuća
  >> Hrvatska Electronic Technology >  >> Telefoni >> konferencijski stanice

Program u asemblerskom jeziku za faktorijel zadanog broja?

Evo primjera programa u asemblerskom jeziku (NASM sintaksa) za izračunavanje faktorijela zadanog broja:

```

BITOVI 16

; Definirajte segment podataka

SEGMENT PODATAKA

broj:DW ?; Broj za iznalaženje faktorijela

; Definirajte segment koda

SEGMENT KODA

start:

mov sjekira, PODACI; Učitajte DS registar s adresom segmenta podataka

mov dx, broj; Učitajte broj u DX

cmp dx, 0; Provjerite je li broj 0

je zero; Ako je tako, skočite na oznaku "nula".

mov cx, 1; Inicijalizirajte faktorijel (CX) na 1

; Pokrenite petlju izračuna faktorijela

petlja:

imul cx; Pomnožite CX s trenutnim brojem u DX

inc dx; Povećaj trenutni broj

cmp dx, broj; Usporedite DX s izvornim brojem

jb petlja; Ako je DX manji od broja, skočite natrag na petlju

; Prikažite faktorijel

nula:

mov ah, 4Ch; AH =4Ch za DOS prekid "Ispiši niz".

lea dx, str_rezultat; Učitajte adresu niza "rezultata" u DX

int 21h; Pozovite DOS prekid 21h za prikaz niza

ret; Povratak na operativni sustav

; Definirajte niz "rezultata".

str_result:DB "Faktorijel je:$"

; Kraj programa

KRAJ početak

; Definirajte segment stoga

SEGMENT STOGA

; Definirajte podatke za stog

DW 0

KRAJEVI STOGA

```

Objašnjenje programa:

1. Segment podataka:

- `num:` definira riječnu (16-bitnu) varijablu koja se zove `num` u segmentu podataka. Ova varijabla će pohraniti broj za koji želimo pronaći faktorijel.

2. Segment koda:

- `start:` je ulazna točka programa.

3. Inicijalizacija:

- `mov ax, DATA`:Učitava adresu segmenta podataka u AX registar.

- `mov dx, num`:učitava vrijednost `num` u DX registar.

4. Provjerite nulu:

- `cmp dx, 0`:Uspoređuje vrijednost u DX-u s 0.

- `je zero`:Ako je DX jednak 0, skočite na oznaku `zero`.

5. Petlja izračuna faktorijela:

- `petlja`:

- `imul cx`:Množi trenutnu vrijednost u CX s trenutnim brojem u DX.

- `inc dx`:Povećava vrijednost u DX-u.

- `cmp dx, num`:uspoređuje DX s izvornim brojem.

- `jb petlja`:ako je DX manji od broja, vraća se na oznaku `petlja` za nastavak izračuna.

6. Prikažite faktorijel:

- `nula:` (oznaka)

- `mov ah, 4Ch`:postavlja AH na 4Ch, što je DOS prekid za ispis niza.

- `lea dx, str_result`:Učitava adresu niza "rezultata" u DX.

- `int 21h`:poziva DOS prekid 21h za prikaz niza.

7. Povratak:

- `ret`:Povratak na operativni sustav.

8. Segment hrpe:

- Segment stoga definiran je veličinom jedne dvostruke riječi (2 bajta) i inicijaliziran na 0.

Napomena:Ovaj program koristi DOS operativni sustav za ispis rezultata, tako da će raditi samo u DOS okruženju ili emulatoru koji podržava DOS.

  1. PABX Tehnologija
  2. Kako postaviti vremensku & Datum na Moj Uniden POWERMAX 5.8Ghz telefon ?
  3. Kako mogu povezati i850 na računalo ?
  4. Da li iDump rad s iPod Touch ?
  5. Kako snimiti glasovnu poruku