Respuesta :
INCLUDE Irvine32.inc
.data
msgIntro  byte "This is Your Name's fourth assembly extra credit program. Will randomly",0dh,0ah
    byte "choose between three different colors for displaying twenty lines of text,",0dh,0ah
    byte "each with a randomly chosen color. The color probabilities are as follows:",0dh,0ah
    byte "White=30%,Blue=10%,Green=60%.",0dh,0ah,0
msgOutput byte "Text printed with one of 3 randomly chosen colors",0
.code
main PROC
;
//Intro Message
   mov edx,OFFSET msgIntro  ;intro message into edx
   call WriteString     ;display msgIntro
   call Crlf         ;endl
   call WaitMsg       ;pause message
   call Clrscr        ;clear screen
   call Randomize      ;seed the random number generator
   mov edx, OFFSET msgOutput;line of text
   mov ecx, 20        ;counter (lines of text)
   L1:;//(Loop - Display Text 20 Times)
   call setRanColor     ;calls random color procedure
   call SetTextColor     ;calls the SetTextColor from library
   call WriteString     ;display line of text
   call Crlf         ;endl
   loop L1
exit
main ENDP
;--
setRanColor PROC
;
; Selects a color with the following probabilities:
; White = 30%, Blue = 10%, Green = 60%.
; Receives: nothing
; Returns: EAX = color chosen
;--
   mov eax, 10        ;range of random numbers (0-9)
   call RandomRange     ;EAX = Random Number
   .IF eax >= 4      ;if number is 4-9 (60%)
   mov eax, green      ;set text green
   .ELSEIF eax == 3     ;if number is 3 (10%)
   mov eax, blue       ;set text blue
   .ELSE           ;number is 0-2 (30%)
   mov eax, white      ;set text white
   .ENDIF          ;end statement
   ret
setRanColor ENDP