1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Nov 2010
    Rep Power

    Assembly language program help

    I need to create two procedures:
    (1) SetColor receives two BYTE parameters: forecolor and backcolor.
    It calls the SetTextColor procedure from the Irvine32 library.
    (2) WriteColorChar receives three byte parameters:
    char, forecolor, and backcolor.
    It displays a single character,using the color attributes specified in forecolor and backcolor.
    It calls the SetColor procedure, and it also calls WriteChar from the Irvine32 library. Both SetColor and WriteColorChar must contain declared parameters. Complete the missing part of the code for the two procedures.
    TITLE SetColor and WriteColorChar
    INCLUDE Irvine32.inc
    SetColor PROTO forecolor:BYTE, backcolor:BYTE
    WriteColorChar PROTO char:BYTE,forecolor:BYTE, backcolor:BYTE
    main PROC
    INVOKE WriteColorChar, 'A', white, blue INVOKE WriteColorChar, 'B', blue, white INVOKE WriteColorChar, 'C', green, black INVOKE WriteColorChar, 'D', yellow, gray INVOKE SetColor, lightGray, black
    call Crlf
    exit main ENDP
    WriteColorChar PROC
    ******************code for writecolor!!*****************
    WriteColorChar ENDP
    SetColor PROC
    ************code for setcolor******************
    SetColor ENDP END main
    Another program in which i have to write a recursive implementation for Euclid's algorithm for finding GCD of 2 non negative integers.

    I have prepared this pseudocode

    algorithm GCD(a,b) //a and b are nonnegative integers if b>0 then
    return (GCD(b,a mod b)
    else // b = 0
    return (a)

    and a rough draft of the program is here-
    I need to write the code for the procedure CalcGCD PROC
    I can not use .IF, .ELSE, . ENDIF directives.

    INCLUDE Irvine32.inc
    CalcGcd PROTO,int1:DWORD, int2:DWORD
    array SDWORD 0,5,7,0,11,7,438,226,26,13
    ;pairs to be tested: 0,5 and 7,0 and 11,7 etc. str1 BYTE "Greatest common divisor is: ",0
    main PROC
    mov	ecx,LENGTHOF array / 2
    mov	esi,OFFSET array
    L1:	INVOKE CalcGcd,[esi],[esi+4]
    mov	edx,OFFSET str1
    call WriteString call WriteDec call Crlf
    add	esi,TYPE array * 2
    loop L1
    exit main ENDP
  2. #2
  3. No Profile Picture
    Contributing User
    Devshed Novice (500 - 999 posts)

    Join Date
    May 2007
    Rep Power
    As I replied to your last thread, you won't get anywhere just dumping your homework here. Ask a questions / show an error message / show an incorrect output vs what you expect to happen and we can help you.

    Also, some newlines are missing in the code you posted. It's important that you copy/paste the exact code you're using. Use the "Preview Post" button to check that everything looks right before submitting.
    sub{*{$::{$_}}{CODE}==$_[0]&& print for(%:: )}->(\&Meh);

IMN logo majestic logo threadwatch logo seochat tools logo