코드를 변경해도 전에 실행시켰던 값이 게속 나옴.

조회수 648회
 INCLUDE Irvine32.inc
.data
str1 BYTE "Color output is easy!",0
.code
main PROC
    mov eax, yellow + (blue * 16)
    call SetTextColor
    mov edx, OFFSET str1
    call WriteString
    call Crlf
exit
main ENDP
END main

Color output is easy!


이렇게 나오고 yellow를 red로 바꿔도 색깔이 red로 안되고 게속 yellow로 나옴

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 몇가지 색상 변경해서 해봤는데 잘 됩니다.

    원하는대로 색상변경이 안된다면 SetTextColor를 작성한 해당 라이브러리 저작자한테 질의를 해봐야 합니다.

    유명한 어셈블리 서적 저작자이죠.

    Crlf Proto      ; output carriage - return / linefeed
    WriteString Proto       ; write null - terminated string to output
    SetTextColor Proto      ; set console text color
    
    Delay Proto
    black        = 0000b
    blue         = 0001b
    green        = 0010b
    cyan         = 0011b
    red          = 0100b
    magenta      = 0101b
    brown        = 0110b
    lightGray    = 0111b
    gray         = 1000b
    lightBlue    = 1001b
    lightGreen   = 1010b
    lightCyan    = 1011b
    lightRed     = 1100b
    lightMagenta = 1101b
    yellow       = 1110b
    white        = 1111B
    
    .Const
    
    .Data?
    
    .Data
        str1 Byte "Color output is easy!", 0
    
    hInst       HINSTANCE   NULL
    
    
    .Code
    
    start:
        Invoke GetModuleHandle, NULL
        Mov hInst, Eax
    
        Mov Eax, lightRed + (lightGreen * 16)
        Call SetTextColor
        Mov Edx, Offset str1
        call WriteString
        Call Crlf
        Mov Eax, 5000    ; 5초 
        Call Delay            ; 결과확인용
        Invoke ExitProcess, 0
    End start
    
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)