;Aman's "highest and lowest.85" ;converted to 8086 by DFW ;Finds min and max bytes of N words starting at 1006 ;N at 1004 ;DX max ;CX min ; for (i=1; i DX) DX=M[i] ; if (M[i] < CX) CX=M[i] JMP Start DB 0 ;dummy byte for word alignment DW 6 ;size of data "array" that follows DW 44 DW 12 DW 22 DW 4 DW 41 DW 6 Start: MOV BX,[1004] ;get N MOV SI,1006 ;point to first word of array MOV DX,[SI] ;max=first word MOV CX,[SI] ;min=first word DEC BX ;N-1 ;loop N-1 times NextW: ADD SI,2 ;pointer++ CMP DX,[SI] ;compare max with next data word JNS Skip1 ;if DX>=next data word, jump MOV DX,[SI] ;D=word, a new min value Skip2: DEC BX ;started at N JNZ NextW HLT MICRO-86 KIT v1.2, Sep 18, 2004 ,1:37 PM -------------------------------------------------- ADDR CODE LABEL MNEMONICS -------------------------------------------------- 1000: E9 0F 00 JMP START 1003: 00 1004: 06 00 1006: 44 00 1008: 12 00 100A: 22 00 100C: 04 00 100E: 41 00 1010: 06 00 1012: 8B 1E 04 10 START MOV BX,[1004] 1016: BE 06 10 MOV SI,1006 1019: 8B 14 MOV DX,[SI] 101B: 8B 0C MOV CX,[SI] 101D: 4B DEC BX 101E: NEXTW 101E: 83 C6 02 ADD SI,2 1021: 3B 14 CMP DX,[SI] 1023: 79 02 JNS SKIP1 1025: 8B 14 MOV DX,[SI] 1027: SKIP1 1027: 3B 0C CMP CX,[SI] 1029: 78 02 JS SKIP2 102B: 8B 0C MOV CX,[SI] 102D: SKIP2 102D: 4B DEC BX 102E: 75 EE JNZ NEXTW 1030: F4 HLT 1031: