delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/05/08/01:15:26

From: random AT visi DOT net (Michael Bosley)
Newsgroups: comp.os.msdos.djgpp
Subject: Q: Optimize this bit?
Date: Fri, 08 May 1998 04:46:50 GMT
Organization: @Home Network
Lines: 60
Message-ID: <35528c1b.112750235@news>
NNTP-Posting-Host: cx582964-a.nwptn1.va.home.com
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Hello all,

I have this bit of code that repeats an assignment.  It is used to
draw bits to the screen (thus, the vga name).  If someone could
optimize this (or even better, show me/explain to me how!) I would be
extrememly grateful.

3 types of assignments:
1)  Standard single assignment

  VGA[offset + 52] = 254;
  VGA[offset + 59] = 86;
  VGA[offset + 60] = 83;

2) Unrolled loop assignments

  VGA[offset + 711] = 218;
  VGA[offset + 712] = 200;
  VGA[offset + 713] = 241;
  VGA[offset + 714] = 232;
  VGA[offset + 715] = 222;
  VGA[offset + 716] = 222;
  VGA[offset + 717] = 235;
  VGA[offset + 718] = 243;
  VGA[offset + 719] = 245;

3) Unrolled loop/repetitive assignments

  VGA[offset + 1035] = 243;
  VGA[offset + 1036] = 243;
  VGA[offset + 1037] = 243;
  VGA[offset + 1038] = 243;
  VGA[offset + 1039] = 243;
  VGA[offset + 1040] = 243;


I know you can write (terminology?) word length bits in assembly using
something like repstosw (???) but I don't know assembly (and I do want
to learn) and I wouldn't know how to write it.

AFAIK, it would probably be (umm, in, i think, intel format?)...

pop ds ;   save some register (???)
lots of mov and repstosw/repsto... here
mov VGA[offset + 711], 211 ;  move the value 211 into the array
element
push ds ;  restore the saved register (???)

repstosw => repeated store of words?

Thanks all!!!!!

Michael Bosley
random AT N0_-_SPAM DOT visi DOT net



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      Do Not Send Me Unsolicited Email!      
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019