
Here's a simple MASM program that calculates the average of two arrays without using a loop:
```
.model flat, stdcall
.stack 100h
.data
pointsEarned DWORD 80, 65, 90, 75
pointsPossible DWORD 100, 100, 100, 100
.code
main PROC
mov eax, pointsEarned
mov edx, pointsPossible
; calculate the sum of points earned and points possible
add eax, DWORD PTR [eax+4]
add eax, DWORD PTR [eax+8]
add eax, DWORD PTR [eax+12]
add edx, DWORD PTR [edx+4]
add edx, DWORD PTR [edx+8]
add edx, DWORD PTR [edx+12]
; calculate the average
mov ebx, 100
mul ebx
div edx
; store the result in eax
mov eax, edx
ret
main ENDP
END main
```
This program first loads the addresses of the two arrays into `eax` and `edx`. It then adds up the values in both arrays using `add` instructions. After that, it multiplies the sum of points earned by 100, and divides it by the sum of points possible using the `mul` and `div` instructions. Finally, it stores the result in `eax` and returns.
Note that the program assumes that the arrays are stored in consecutive memory locations, with each value taking up 4 bytes. If your arrays are stored differently, you'll need to adjust the code accordingly.