String analyser

Use any programming language to display "AWSALILAND" in such a way, so that each letter is in a new line and repeated as many times as its position in the English alphabet. For example letter, (A) should be displayed just once because it is the first letter of the alphabet. Letter D should be displayed 4 times because it is the 4th letter of the alphabet.

So, the output should be this:

A
WWWWWWWWWWWWWWWWWWWWWWW
SSSSSSSSSSSSSSSSSSS
A
LLLLLLLLLLLL
IIIIIIIII
LLLLLLLLLLLL
A
NNNNNNNNNNNNNN
DDDD

• Are lower-case letters OK? Oct 17, 2018 at 12:05
• IMHO, this challenge would have been more interesting if the text was given as input/argument.
Oct 17, 2018 at 12:48
• @Adám IMHO that wouldn't even be a very interesting challenge anyway. Oct 17, 2018 at 13:27
• @PostLeftGhostHunter At least it would omit the unrelated challenge of compressing AWSALILAND.
Oct 17, 2018 at 13:29
• is a list of lines an acceptable output format? Oct 18, 2018 at 13:31

CSASM v2.2.1.2, 162 bytes

func main:
lda 0
sta $1 lda "AWSALILAND" .lbl a push$a
conv ~arr:char
ldelem $1 dup conv i32 push 64 sub pop$2
conv str
push $2 mul print.n inc$1
push $1 push 10 sub brtrue a ret end  Commented and ungolfed: func main: ; Initialize$1 to zero and $a to the string "AWSALILAND" lda 0 sta$1
lda "AWSALILAND"

.lbl loop
; Get the iteration char in the string
push $a conv ~arr:char ldelem$1

; Duplicate it.  The first will be used as the string to print and the
;   second will be used for the string repetitions with "mul"
dup

; Get the index in the alphabet (1..26) and put it in $2 conv i32 push 64 sub pop$2

; Convert the character to a string, then perform the built-in string
;   repetitions with "mul"
conv str
push $2 mul ; Print it with a newline appended print.n ; Truthy is non-zero, so the loop ends when ($1 + 1) - 10 == 0
inc $1 push$1
push 10
sub
brtrue loop
ret
end