x86-突出显示 BMP 图片上特定区域的最佳方式?

x86- Best way to highlight specific area on a BMP pic?

我做了一个游戏的菜单图片。我想在菜单上做的下一步是突出显示光标漂浮在菜单上的选项。而不是通过加载另一个bmp文件,只改变特定区域的颜色,并且return操作后它就正常了。那么最好的方法是什么?如果可以,请添加代码。

我正在研究 DosBox(针对 windows),8086 ASM。并且我在菜单中使用了 graphic mide。

菜单:

最基本的方法是计算视频内存中的开始和结束地址,并替换此块中的所有菜单点背景字节值:

  mov si, start_address
  mov dx, end_address
lbl_loop:
  lodsb
  cmp al, src_color_value
  jne @next
  mov byte ptr [si-1], dst_color_value
next:
  cmp si, dx
  jl(e) lbl_loop       ; depends on if end_address is included or excluded

DS 必须设置为 video_segment。肯定有更好的方法来做到这一点,但你明白了。