System information

A>ASM, SCAN
CP/M ASSEMBLER - VER 1.0
0122
002H USE FACTOR
END OF ASSEMBLY Assembly complete; look at program listing
A>TYPE SCAN PRN
Code address Source program
0100 ORG 100H ;START OF TRANSIENT AREA
0100 0608 MVI B,LEN ;LENGTH OF VECTOR TO SCAN
0102 0E00 MVI C,O ;LARGEST VALUE SO FAR
0104 211901 LXI H,VECT ;BASE OF VECTOR
0107 7E LOOP: MOV A,M ;GET VALUE
0108 91 SUB C ;LARGER VALUE IN C?
0109 D20D01 JNC NFOUND ;JUMP IF LARGER VALUE NOT
;FOUND
; NEW LARGEST VALUE, STORE IT TO C
010C 4F MOV C,A
010D 23 NFOUND: INX H ;TO NEXT ELEMENT
010E 05 DCR B ;MORE TO SCAN?
010F C20701 JNZ LOOP ;FOR ANOTHER
;
; END OF SCAN, STORE C
0112 79 MOV A,C ;GET LARGEST VALUE
0113 322101 STA LARGE
0116 C30000 JMP 0 ;REBOOT
;
; TEST DATA
0118 0200040305 VECT: DB 2,0,4,3,5,6,1,5
0008 = LEN EQU $-VECT ;LENGTH
0121 LARGE; DS 1 ;LARGEST VALUE ON EXIT
0122 END
4.4 A Sample Program CP/M Operating System Manual
4-14