135k views
0 votes
write a program that draws an 8 8 chess board, with alternating gray and white squares. you can use the settextcolor and gotoxy procedures from the irvine32 library. avoid the use of glo- bal variables, and use declared parameters in all procedures. use short procedures that are focused on a single task.

User Lscmaro
by
8.1k points

1 Answer

5 votes

Answer:Here's a program in Assembly language that draws an 8x8 chessboard with alternating gray and white squares using Irvine32 library's SetTextColor and gotoxy procedures:

Explanation:

sql

Copy code

INCLUDE Irvine32.inc

ChessBoard MACRO row, col, color

mov edx, row

mov ecx, col

call gotoxy

mov eax, color

call SetTextColor

mov ah, 20h

mov dl, ' '

call WriteChar

ENDM

; main program

main PROC

mov ecx, 8 ; number of rows and columns

mov ebx, 0 ; counter

mov edx, 1 ; start row

mov eax, 0 ; start col

nextrow:

cmp edx, ecx ; compare row counter to total rows

jg done ; exit loop if all rows have been drawn

nextcol:

cmp eax, ecx ; compare column counter to total columns

jg newrow ; move to next row if all columns have been drawn

; draw square

ChessBoard edx, eax, 7 ; white square

add eax, 1 ; increment column counter

ChessBoard edx, eax, 8 ; gray square

add eax, 1 ; increment column counter

jmp nextcol

newrow:

mov eax, 0 ; reset column counter

add edx, 1 ; increment row counter

jmp nextrow

done:

exit

main ENDP

In this program, the ChessBoard macro is used to draw a square of a given color at a specific row and column position. The main procedure uses nested loops to iterate over each row and column, calling ChessBoard to draw each square in alternating gray and white colors.

Note that the colors used are specified using their VGA color codes (7 for white and 8 for gray). You can adjust these values to use different colors if desired.

SPJ11

User Lost Crotchet
by
8.7k points