assembler€86ˆ 9

assembler€86ˆ 9



258


10. Przykłady programów

104

105    0871    DANE ends

106 107

108

• _ — —-t —

f

----------------------

109

110

; deklaracja stosu (256 bajtów)

Å‚

111

112 0000 113 0000

0080[

STOS segment stack dw 128 dup (?)

114

TEST.ASM

115

116

117    0100

118 119

9999 • • • •

]

STOS ends

Page 1-3

120

121

; program główny typu .EXE

122

123    0000

124

PROGRAM segment para

assumc csrPROGRAM, ds:DANE. ssiSTOS

125

126    0000 127 0000

BE 0082

poczÄ…tek proc far start: mov si,82H

: adres parametru wywołania

128 0003

AC

lodsb

129 0004

50

push ax

; schowaj parametr wywołania

130

131    0005

B8 — R

mov ax, dane

; inicjacja rejestru ds

132 0008 8E D8

mov ds,ax

133

134    000A

jakaopcja:

; kontrola parametru wywołania

135    000A 58

136    000B

3C31

pop ax cmp al,"l"

; czy bez wyświetlania liczb ?

137 000D

74 OF

je opcja 1

; tak

138 OOOF

3C32

cmp al."2"

; czy z wyświetlaniem liczb ?

139 0011

74 12

je opcja_2

: tak

140

141    0013

blad: print tekst

; wyświetlenie komunikatu

142

koniec

: wyjście do DOS-u

143

144    001E

C6 06 07D8ROO

opcja l: mov opcja.O

; znacznik opcji

145 0023

EB05

jmp short dalej

146 0025

Có 06 07D8 R FF

opcja_2: mov opcja.OFFH

: znacznik opcji

147

148    002A

33 C9

dalej: xor cx,cx

: przygotowanie rejestrów dla

149 002C

33 D2

xor dx.dx

; ustawienia czasu systemowego

150 002E

B4 2D

mov ah,2DH

151 0030

CD 21

int dos

: czas systemowy = 0:0:0.0

152 0032

BF 07D0

mov di,2*ile_liczb

; indeks dla tablicy liczb

153

154    0035

155    0035

FF 06 07D2 R

następnajiczba:

inc liczba

156 0039

FF OE 07D4 R

dec reszta

; czy tablica jest wypełniona ?

powered by

/. Generator liczb pierwszych - prosty test szybkości komput iaMi sfQl

157 003D

74 2C

jz o_k

: tak, koniec programu

158 003F

SB 85 0000 R

mov ax,pierwsze[di]

; ostatnia liczba z tablicy

159 0043

83 El' 02

sub di.2

; modyfikacja indeksu

160 0046

89 85 0000 R

mov pierwsze[di],ax

161

162 004A

kolej ny test :

163 004A

FF 85 0000 R

inc pierwsze [di]

: test następnej liczby

164 004E

BE 07D0

movxsił2*ile liczb

; indeks na koniec tablicy

165

166 0051

nastepnedzielenie:

167 0051

8B 85 0000 R

mov ax.pierwszc[di]

; dzielenie kolejnej liczby

168 0055

33 D2

xor dx,dx

; przez liczbÄ™ pierwszÄ…

169 0057

F7B4 0000R

div pierwsze[si]

170 005B

83 FA 00

cmp dx,0

; czy reszta z dzielenia = 0 ?

TEST.ASM

Page

1-4

171 005E

74 EA

je kolej ny test

; tak, testuj następną liczbę

172 0060

4E

dec si

; modyfikacja indeksu

173 0061

4E

dec si

; wskazującego następną liczbę

174

; pierwszÄ…

175 0062

3B F7

cmp si,di

; czy ostatnia liczba w tabeli ?

176 0064

77 EB

jnbe nastepne dzielenie

177 0066

E8 0072R

cali wyniki

178 0069

EB CA

jmp następnajiczba

179

180 006B

E8 00D1 R

o_k: cali czassystcmowy

; pobranie czasu systemowego

181

koniec

; wyjście do DOS-u

182

poczÄ…tek endp

183

184

•

1 LT7

185

*

; procedura wyprowadzajÄ…ca liczbÄ™ znalezionych liczb pierwszych

186

; oraz ich wartości

187

•

X / 188

1

189 0072

wyniki proc near

190 0072

57

push di

191

192 0073

A107D2R

mov ax,liczba

; liczba znalezionych liczb pierwszych

193 0076

E8 00A F R

cali konwersja

; konwersja dziesiętna

194

; i wyświetlenie na ekranie

195 0079

BO 3A

moval,V

1%

prinlchar al

197

198 0088

8B 85 0000 R

mov ax,pierwszc[di

; wyprowadzenie liczby pierwszej

199 008C

E8 00AFR

cali konwersja

; konwersja dziesiętna

200

; i wyświetlenie na ekranie

201 008F

BO OD

mov al.cr

; nowy wiersz i powrót kursora

202

print_char al

203 009E

BO OA

moval.lf

204

printcharal

205 00AD

5F

pop di

206 OOAE

C3

ret

207

wyniki endp


Wyszukiwarka

Podobne podstrony:
assembler?86? 9 218 S. Uruchamianie programów asemblerowych z pliku o rozszerzeniu MAP pozwoli to
assembler?86? 8 25610. Przykłady programów z parametrem błędnym (różnym od 1 lub 2) powoduje wyświ
assembler?86? 1 >2 10. Przykłady programów DCZATEK......................... F PROC 0000 PROGR
assembler?86? 4 26810. Przykłady programów 186 01C5 8A D8 mov bl,al 187 01C7 2E: A0 01BER mov
assembler?86? 6 272 W. Przykłady programów INT1CH.............................. L 0004 01B5 PROG
G klejamy wedÅ‚ug rys. zestawieniowego. WedÅ‚ug tego rysunku przyklejamy także części 104, 105 i
104 105 2 104 Programowanie linioweRozwiÄ…zanie optymalne RozwiÄ…zanie zadania otrzymujemy za pomocÄ… p
assembler?86? 9 78 4. Język asemblerowy mikroprocesorów 8086/8088 PROGRAM SEGMENT • • • A DALEKO E
assembler?86? 9 198 7. Wybrane techniki programowania CLD PI:    MOVSB ; modyfikacj
assembler?86? 9 238    9. Wykorzystanie procedur systemowych w programach użytkowyc
assembler?86? 2 264 10. Przykłady programów znaków, wówczas kolejny znak jest ignorowany, przerwan
assembler?86? 3 266 10. PrzykÅ‚ady programów 80    ) 81 82    006C 00
higeina 21 PrzykÅ‚ady programu Å›wietlnego dla kurczÄ…t-brojlerów Wiek Godzin Å›wiatÅ‚a na
img026 (18) 102 - Tablica R.6.11 R .6 102 103 104 105 106 107 108 109 110 D St.M St.M St
0000039 4 180 Przykładowe programy postępowania pacjenta do operacji. Oznacza to nie tylko stosowani

więcej podobnych podstron