209 |
---—.-------------------------- | ||
210 |
podprogram konwersji z postaci szesnastkowej na dziesiętną: | ||
211 |
(słowo do konwersji w AX) | ||
212 |
przetworzone kolejno cyfry są wyświetlane na ekranie monitora | ||
213 1\A |
za pomocą makroinstrukcji "printchar" | ||
215 | |||
216 00AF |
konwersja proc near | ||
217 OOAF |
33 C9 |
xor cx,cx |
; inicjacja licznika |
218 | |||
219 00B1 |
nastepnaznak: | ||
220 00B1 |
41 |
inccx | |
221 00B2 |
33 D2 |
xor dx.dx |
: przygotowanie do dzielenia |
222 00B4 |
F7 36 07D6R |
div baza |
; dzielenie przez 10 |
223 00B8 |
52 |
push dx |
; reszta - kolejne cyfry na stos |
224 00B9 |
emp ax,0 |
; czy część całkowita wyniku = 0 | |
225 OOBC |
75 F3 |
jne nastepna znak |
: nie. konwersja kolejnych cyfr |
226 | |||
TEST. ASM |
Page |
1-5 | |
227 OOBE |
znak na ekran: | ||
228 OOBE |
58 |
popax |
; pobranie cyfry ze stosu |
229 OOBF |
04 30 |
add a 1.zero |
; konwersja na kod ASCII |
230 |
printcharal |
; wyświetlenie znaku na ekranie | |
231 OOCE |
E2EE |
loop znak_na_ekran ; pętla dla wszystkich cyfr | |
232 | |||
233 OODO |
C3 |
ret | |
234 |
konwersja endp | ||
235 | |||
?36 | |||
237 |
obliczenie i wyprowadzenie na ekran czasu obliczeń | ||
238 | |||
239 | |||
240 00D1 |
czas systemowy proc near | ||
241 00D1 |
C6 06 07D8 R FF |
mov opcja,OFFH |
; czas będzie wyświetlany |
242 | |||
243 00D6 |
B4 2C |
mov ah,2CH |
; pobranie czasu systemowego |
244 00D8 |
CD 21 |
int dos | |
245 | |||
246 OODA |
88 OE 07D9 R |
mov minuty,cl | |
247 OODE |
88 36 07DA R |
mov sekundy.dh | |
248 00 E2 |
88 16 07DB R |
mov setne sek.dl | |
249 | |||
250 00E6 |
32 E4 |
xor ah.ah |
: przygotowanie do konwersji |
251 00E8 |
8AC5 |
mov al.ch |
: i wyświetlenia godziny |
252 OOEA |
E8 00AFR |
cali konwersja | |
253 | |||
254 OOED |
BO 3 A |
mov al,":* | |
255 |
print charal | ||
256 | |||
257 OOFC |
32 E4 |
xor ah.ah |
: jw. dla minut |
258 OOFE |
AO 07D9 R |
mov al,minuty | |
259 0101 |
E8 00AFR |
cali konwersja | |
260 | |||
261 0104 |
B0 3A |
mov al,":" |
10.1. Generator liczb pierwszych - prosty test szybkości komputeS , m
262 263 264 0113 |
32 E4 |
265 0115 |
A0 07DA R |
266 0118 |
E8 00AFR |
267 268 01IB |
B0 2E |
269 270 271 012A |
32 E4 |
272 012C |
A0 07DB R |
273 012F |
E8 00AFR |
274 275 0132 |
C3 |
276 277 278 0133 279 280 281 TEST.ASM |
print_char al
xor ah.ah mov al,sekundy cali konwersja
moval.V printchar al
xor ah.ah mov al.setne_sek cali konwersja
ret
czas_systcmowy endp PROGRAM ends
; jw. dla sekund
; jw. dla setnych części ;sekundy
; koniec segmentu programu
end start Symbols-1
Macros: Namc |
Lines | |
KONIEC................................ |
2 | |
PRINT.................................... |
3 | |
PRINT CHAR...................... |
6 | |
Segments and Groups: Name |
Size Align |
Combine Class |
DANE.................................... |
0871 PARA |
NONĘ |
PROGRAM........................... |
0133 PARA |
NONĘ |
STOS |
0100 PARA |
STA CK |
Symbols: Name |
WIUU A ill\il Type Valuc |
Attr |
BAZA..................................... |
LWORD |
07D6 DANE |
BLAD..................................... |
L NEAR |
0013 PROGRAM |
CR........................................... |
Number |
000D |
CZAS SYSTEMOWY........ |
N PROC |
00D1 PROGRAM |
DALEJ................................... |
LNEAR |
002A PROGRAM |
DOS........................................ |
Number |
0021 |
ILE LICZB........................... |
Number |
03E8 |
JAKA OPCJA...................... |
LNEAR |
000A PROGRAM |
KOLEJNY TEST................ |
L NEAR |
004A PROGRAM |
KONWERSJA...................... |
N PROC |
00AF PROGRAM |
LF............................................ |
Number |
000A |
LICZBA................................. |
LWORD |
07D2 DANE |
MINUTY............................... |
L BYTE |
07D9 DANE |
NASTĘPNA LICZBA........ |
L NEAR |
0035 PROGRAM |
NASTĘPNA ZNAK........... |
LNEAR |
00B1 PROGRAM |
NASTĘPNE DZIELENIE |
L NEAR |
0051 PROGRAM |
OPCJ A................................... |
L BYTE |
07D8 DANE |
OPCJA 1............................... |
LNEAR |
001E PROGRAM |
OPCJA 2............................... |
L NEAR |
0025 PROGRAM |
O K......................................... |
L NEAR |
006B PROGRAM |
PIERWSZE........................... |
LWORD |
0000 DANE |
Length = 0062
Length = 0022
Length = 03E8