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。肯定有更好的方法来做到这一点,但你明白了。
我做了一个游戏的菜单图片。我想在菜单上做的下一步是突出显示光标漂浮在菜单上的选项。而不是通过加载另一个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。肯定有更好的方法来做到这一点,但你明白了。