;exercise 3-4

.model small

data segment

  A1	dw	432,654,765,876, \
  		123,234,345,456, \
  		222,333,444,555
  		
  A2	dw	12 dup(?)

data ends

code segment

	assume cs:code, ds:data

start:
	mov ax,data
	mov ds,ax

	mov si, 0
loopi:
	mov di, 0
loopj:
	mov ax, si
	mov bx, 4
	mul bx
	add ax, di
	add ax, ax
	mov bx, ax
	mov cx, a1[bx]
	
	mov ax, di
	mov bx, 3
	mul bx
	add ax, si
	add ax, ax
	mov bx, ax
	mov a2[bx], cx
	
	inc di
	test di, 4
	jl loopj
	inc si
	test si, 3
	jl loopi
	
	mov ax,4c00h
	int 21h

code ends

end start