1. Kamere
  2. Avto avdio in elektronika
  3. Domači avdio
  4. Osebni avdio
  5. Televizorji
  6. Pametni dom
  >> Elektronska Tehnologija >  >> Telefoni >> Konferenčne postaje

Program v zbirnem jeziku za faktoriel danega števila?

Tukaj je primer programa v zbirnem jeziku (sintaksa NASM) za izračun faktoriala danega števila:

```

BITSI 16

; Določite segment podatkov

PODATKOVNI SEGMENT

št.:DW ?; Število, za katerega najdemo faktorijel

; Določite segment kode

KODA SEGMENT

začetek:

mov sekira, PODATKI; Naložite register DS z naslovom segmenta podatkov

mov dx, num; Naloži številko v DX

cmp dx, 0; Preverite, ali je številka 0

je zero; Če je tako, skočite na oznako "nič".

mov cx, 1; Inicializirajte faktorial (CX) na 1

; Zaženite zanko izračuna faktorjev

zanka:

imul cx; Pomnožite CX s trenutno številko v DX

inc dx; Povečaj trenutno številko

cmp dx, št.; Primerjajte DX z izvirno številko

jb zanka; Če je DX manjši od števila, skočite nazaj v zanko

; Prikažite faktorijel

nič:

mov ah, 4Ch; AH =4Ch za prekinitev DOS "Print string".

lea dx, str_rezultat; Naložite naslov niza "result" v DX

int 21h; Za prikaz niza pokličite prekinitev DOS 21h

ret; Vrnite se v operacijski sistem

; Določite niz "rezultat".

str_result:DB "Faktorial je:$"

; Konec programa

KONEC začetek

; Določite segment sklada

SEGMENT SKLADA

; Določite podatke za sklad

DW 0

KONCI SKLOPOV

```

Razlaga programa:

1. Podatkovni segment:

- `num:` definira besedno (16-bitno) spremenljivko, imenovano `num` v segmentu podatkov. Ta spremenljivka bo shranila število, za katerega želimo najti faktorial.

2. Segment kode:

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

3. Inicializacija:

- `mov ax, DATA`:Naloži naslov segmenta podatkov v register AX.

- `mov dx, num`:naloži vrednost `num` v register DX.

4. Preverite nič:

- `cmp dx, 0`:primerja vrednost v DX z 0.

- `je zero`:Če je DX enak 0, skoči na oznako `zero`.

5. Faktorska računska zanka:

- `zanka`:

- `imul cx`:pomnoži trenutno vrednost v CX s trenutnim številom v DX.

- `inc dx`:Poveča vrednost v DX.

- `cmp dx, num`:Primerja DX z izvirno številko.

- `jb loop`:Če je DX manjši od števila, skoči nazaj na oznako `loop` za nadaljevanje izračuna.

6. Prikaži faktorial:

- `zero:` (oznaka)

- `mov ah, 4Ch`:Nastavi AH na 4Ch, kar je prekinitev DOS za tiskanje niza.

- `lea dx, str_result`:Naloži naslov niza "result" v DX.

- `int 21h`:kliče prekinitev DOS 21h za prikaz niza.

7. Vrnitev:

- `ret`:vrne se v operacijski sistem.

8. Segment sklada:

- Segment sklada je definiran z velikostjo ene dvojne besede (2 bajta) in inicializiran na 0.

Opomba:Ta program za tiskanje rezultatov uporablja operacijski sistem DOS, zato bo deloval samo v okolju DOS ali emulatorju, ki podpira DOS.

  • --热点Elektronske tehnologije Online
  1. Ali lahko spletna mesta za mentorje sledijo vašemu naslovu ip?
  2. Kako se imenuje internet s hitrimi podatkovnimi linijami, ki povezujejo glavne računalnike po vsem svetu?
  3. Kako se širokopasovni usmerjevalnik razlikuje od brezžičnega?
  4. Kaj določa širokopasovne internetne povezave?
  5. Kateri so trije načini sprejema signala?