.stack 100h .data video_buffer WORD 0b000h ; segment address of monochrome video buffer WORD 0h ; offset within the buffer WORD 2 ; video array element is 2 bytes WORD 25 ; rows = 25 WORD 80 ; columns = 80 normal WORD 07 ; normal display mode for characters .code clear proc far ; fill in the logic!! ret clear endp code ends end clear
Lookup tables are very important in increasing the speed of a program and the cost of space.
P#2: Simulate the following C program segment in assembly language using a lookup table:
for(i=0;i<=1;i++) for(j=0;j<=39;j++) { gotoxy(i,j); printf("*"); }
Remember, the upper left corner is (0,0).
Q#1: What is the starting and ending address of line 1 of the video buffer?
Q#2: What is the starting and ending address of line 2 of the video buffer?
.stack 100h .data lookuphi db 0b0h,0b0h lookuplow db 00h, 0ah .code fill proc far push ds sub ax,ax push ax ret fill endp code ends end fill