PUBLIC _poikkeama_ka,_lajittele ;**************************************************************************** ; Kopioi katkoviivojen v„linen osa Turbo C 2.0 p„„ohjelmaan. COMMENT % ;---------------------------------------------------------------------------- extern void poikkeama_ka(int lkm,int vektori[], int *max_poikkeama); extern void lajittele(int lkm,int vektori[]); ;---------------------------------------------------------------------------- % ;**************************************************************************** INCLUDE makrot.asm .MODEL SMALL .CODE ;***************************** poikkeama_ka ********************************* _poikkeama_ka PROC NEAR ; ; void poikkeama_ka(int lkm,int vektori[], int *max_poikkeama); ; ; Aliohjelmalla lasketaan vektorissa olevien alkioiden suurin poikkeama ; alkioiden keskiarvosta (tarkkuudella +/-1). ; ; ; Pinon sis„lt” kutsun MOV BP,SP j„lkeen: ; BP -> old_BP ; [BP+02] paluu_os ; [BP+04] lkm ; [BP+06] vektorin osoite ; [BP+08] max_poikkeaman osoite PUSH BP MOV BP,SP PUSH SI MOV SI,[BP+06] MOV CX,[BP+04] CALL poikkeama MOV SI,[BP+08] MOV [SI],AX POP SI POP BP RET _poikkeama_ka ENDP INCLUDE poikkeam.asm ;***************************** lajittele ************************************ _lajittele PROC NEAR ; ; void lajittele(int lkm,int vektori[]); ; ; Aliohjelmalla lajitellaan vektori nousevaan j„rjestykseen. ; ; Input: lkm, vektori ; Output: vektori ; Muuttuu: CX ; K„ytt„„: lajittelu-aliohjelmaa ; ; Pinon sis„lt” kutsun MOV BP,SP j„lkeen: ; BP -> old_BP ; [BP+02] paluu_os ; [BP+04] lkm ; [BP+06] vektorin osoite ; PUSH BP MOV BP,SP PUSH SI MOV SI,[BP+06] MOV CX,[BP+04] CALL lajittelu POP SI POP BP RET _lajittele ENDP INCLUDE lajittelu.asm END